# Generated by Django 3.0.6 on 2020-05-26 12:57

import ckeditor.fields
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import filer.fields.image
import taggit.managers


class Migration(migrations.Migration):
    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
        ("taggit", "0003_taggeditem_add_unique_index"),
    ]

    operations = [
        migrations.CreateModel(
            name="Category",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "title",
                    models.CharField(max_length=64, verbose_name="title"),
                ),
                ("slug", models.SlugField(max_length=64, verbose_name="slug")),
            ],
            options={
                "verbose_name": "Category",
                "verbose_name_plural": "Categories",
            },
        ),
        migrations.CreateModel(
            name="Diffusion",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "type",
                    models.SmallIntegerField(
                        choices=[
                            (0, "on air"),
                            (1, "not confirmed"),
                            (2, "cancelled"),
                        ],
                        default=0,
                        verbose_name="type",
                    ),
                ),
                ("start", models.DateTimeField(verbose_name="start")),
                ("end", models.DateTimeField(verbose_name="end")),
                (
                    "initial",
                    models.ForeignKey(
                        blank=True,
                        help_text="mark as rerun of this %(model_name)",
                        limit_choices_to={"initial__isnull": True},
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="rerun_set",
                        to="aircox.Diffusion",
                        verbose_name="initial schedule",
                    ),
                ),
            ],
            options={
                "verbose_name": "Diffusion",
                "verbose_name_plural": "Diffusions",
                "permissions": (
                    ("programming", "edit the diffusion's planification"),
                ),
            },
        ),
        migrations.CreateModel(
            name="Page",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(max_length=100)),
                (
                    "slug",
                    models.SlugField(
                        blank=True,
                        max_length=120,
                        unique=True,
                        verbose_name="slug",
                    ),
                ),
                (
                    "status",
                    models.PositiveSmallIntegerField(
                        choices=[
                            (0, "draft"),
                            (16, "published"),
                            (32, "trash"),
                        ],
                        default=0,
                        verbose_name="status",
                    ),
                ),
                (
                    "content",
                    ckeditor.fields.RichTextField(
                        blank=True, null=True, verbose_name="content"
                    ),
                ),
                ("pub_date", models.DateTimeField(blank=True, null=True)),
                (
                    "featured",
                    models.BooleanField(
                        default=False, verbose_name="featured"
                    ),
                ),
                (
                    "allow_comments",
                    models.BooleanField(
                        default=True, verbose_name="allow comments"
                    ),
                ),
                (
                    "category",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="aircox.Category",
                        verbose_name="category",
                    ),
                ),
                (
                    "cover",
                    filer.fields.image.FilerImageField(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.FILER_IMAGE_MODEL,
                        verbose_name="cover",
                    ),
                ),
                (
                    "parent",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="child_set",
                        to="aircox.Page",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="Sound",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("name", models.CharField(max_length=64, verbose_name="name")),
                (
                    "type",
                    models.SmallIntegerField(
                        choices=[
                            (0, "other"),
                            (1, "archive"),
                            (2, "excerpt"),
                            (3, "removed"),
                        ],
                        verbose_name="type",
                    ),
                ),
                (
                    "position",
                    models.PositiveSmallIntegerField(
                        default=0,
                        help_text="position in the playlist",
                        verbose_name="order",
                    ),
                ),
                (
                    "path",
                    models.FilePathField(
                        blank=True,
                        match="(\\.ogg|\\.flac|\\.wav|\\.mp3|\\.opus)$",
                        max_length=255,
                        null=True,
                        path="/media/data/courants/projets/aircox/static/media/programs",
                        recursive=True,
                        unique=True,
                        verbose_name="file",
                    ),
                ),
                (
                    "embed",
                    models.TextField(
                        blank=True,
                        help_text="HTML code to embed a sound from an external plateform",
                        null=True,
                        verbose_name="embed",
                    ),
                ),
                (
                    "duration",
                    models.TimeField(
                        blank=True,
                        help_text="duration of the sound",
                        null=True,
                        verbose_name="duration",
                    ),
                ),
                (
                    "mtime",
                    models.DateTimeField(
                        blank=True,
                        help_text="last modification date and time",
                        null=True,
                        verbose_name="modification time",
                    ),
                ),
                (
                    "is_good_quality",
                    models.BooleanField(
                        blank=True,
                        help_text="sound meets quality requirements",
                        null=True,
                        verbose_name="good quality",
                    ),
                ),
                (
                    "is_public",
                    models.BooleanField(
                        default=False,
                        help_text="if it can be podcasted from the server",
                        verbose_name="public",
                    ),
                ),
            ],
            options={
                "verbose_name": "Sound",
                "verbose_name_plural": "Sounds",
            },
        ),
        migrations.CreateModel(
            name="Article",
            fields=[
                (
                    "page_ptr",
                    models.OneToOneField(
                        auto_created=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        parent_link=True,
                        primary_key=True,
                        serialize=False,
                        to="aircox.Page",
                    ),
                ),
                (
                    "is_static",
                    models.BooleanField(
                        default=False,
                        help_text="Should this article be considered as a page instead of a blog article",
                        verbose_name="is static",
                    ),
                ),
            ],
            options={
                "verbose_name": "Article",
                "verbose_name_plural": "Articles",
            },
            bases=("aircox.page",),
        ),
        migrations.CreateModel(
            name="Episode",
            fields=[
                (
                    "page_ptr",
                    models.OneToOneField(
                        auto_created=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        parent_link=True,
                        primary_key=True,
                        serialize=False,
                        to="aircox.Page",
                    ),
                ),
            ],
            options={
                "verbose_name": "Episode",
                "verbose_name_plural": "Episodes",
            },
            bases=("aircox.page",),
        ),
        migrations.CreateModel(
            name="Program",
            fields=[
                (
                    "page_ptr",
                    models.OneToOneField(
                        auto_created=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        parent_link=True,
                        primary_key=True,
                        serialize=False,
                        to="aircox.Page",
                    ),
                ),
                (
                    "active",
                    models.BooleanField(
                        default=True,
                        help_text="if not checked this program is no longer active",
                        verbose_name="active",
                    ),
                ),
                (
                    "sync",
                    models.BooleanField(
                        default=True,
                        help_text="update later diffusions according to schedule changes",
                        verbose_name="syncronise",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
            bases=("aircox.page",),
        ),
        migrations.CreateModel(
            name="Track",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "position",
                    models.PositiveSmallIntegerField(
                        default=0,
                        help_text="position in the playlist",
                        verbose_name="order",
                    ),
                ),
                (
                    "timestamp",
                    models.PositiveSmallIntegerField(
                        blank=True,
                        help_text="position in seconds",
                        null=True,
                        verbose_name="timestamp",
                    ),
                ),
                (
                    "title",
                    models.CharField(max_length=128, verbose_name="title"),
                ),
                (
                    "artist",
                    models.CharField(max_length=128, verbose_name="artist"),
                ),
                (
                    "info",
                    models.CharField(
                        blank=True,
                        help_text="additional informations about this track, such as the version, if is it a remix, features, etc.",
                        max_length=128,
                        null=True,
                        verbose_name="information",
                    ),
                ),
                (
                    "sound",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Sound",
                        verbose_name="sound",
                    ),
                ),
                (
                    "tags",
                    taggit.managers.TaggableManager(
                        blank=True,
                        help_text="A comma-separated list of tags.",
                        through="taggit.TaggedItem",
                        to="taggit.Tag",
                        verbose_name="tags",
                    ),
                ),
                (
                    "episode",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Episode",
                        verbose_name="episode",
                    ),
                ),
            ],
            options={
                "verbose_name": "Track",
                "verbose_name_plural": "Tracks",
                "ordering": ("position",),
            },
        ),
        migrations.CreateModel(
            name="Station",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("name", models.CharField(max_length=64, verbose_name="name")),
                (
                    "slug",
                    models.SlugField(
                        max_length=64, unique=True, verbose_name="slug"
                    ),
                ),
                (
                    "path",
                    models.CharField(
                        blank=True,
                        help_text="path to the working directory",
                        max_length=256,
                        verbose_name="path",
                    ),
                ),
                (
                    "default",
                    models.BooleanField(
                        default=True,
                        help_text="use this station as the main one.",
                        verbose_name="default station",
                    ),
                ),
                (
                    "active",
                    models.BooleanField(
                        default=True,
                        help_text="whether this station is still active or not.",
                        verbose_name="active",
                    ),
                ),
                (
                    "hosts",
                    models.TextField(
                        blank=True,
                        help_text="specify one url per line",
                        max_length=512,
                        null=True,
                        verbose_name="website's urls",
                    ),
                ),
                (
                    "audio_streams",
                    models.TextField(
                        blank=True,
                        help_text="Audio streams urls used by station's player. One url a line.",
                        max_length=2048,
                        null=True,
                        verbose_name="audio streams",
                    ),
                ),
                (
                    "default_cover",
                    filer.fields.image.FilerImageField(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="+",
                        to=settings.FILER_IMAGE_MODEL,
                        verbose_name="Default pages cover",
                    ),
                ),
                (
                    "logo",
                    filer.fields.image.FilerImageField(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.FILER_IMAGE_MODEL,
                        verbose_name="Logo",
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="StaticPage",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(max_length=100)),
                (
                    "slug",
                    models.SlugField(
                        blank=True,
                        max_length=120,
                        unique=True,
                        verbose_name="slug",
                    ),
                ),
                (
                    "status",
                    models.PositiveSmallIntegerField(
                        choices=[
                            (0, "draft"),
                            (16, "published"),
                            (32, "trash"),
                        ],
                        default=0,
                        verbose_name="status",
                    ),
                ),
                (
                    "content",
                    ckeditor.fields.RichTextField(
                        blank=True, null=True, verbose_name="content"
                    ),
                ),
                (
                    "view",
                    models.SmallIntegerField(
                        blank=True,
                        choices=[
                            (0, "Home Page"),
                            (1, "Schedule Page"),
                            (2, "Log Page"),
                            (3, "Programs list"),
                            (4, "Episodes list"),
                            (5, "Articles list"),
                        ],
                        help_text="display this page content to related element",
                        null=True,
                        verbose_name="attach to",
                    ),
                ),
                (
                    "cover",
                    filer.fields.image.FilerImageField(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.FILER_IMAGE_MODEL,
                        verbose_name="cover",
                    ),
                ),
                (
                    "parent",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="child_set",
                        to="aircox.StaticPage",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="Port",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "direction",
                    models.SmallIntegerField(
                        choices=[(0, "input"), (1, "output")],
                        verbose_name="direction",
                    ),
                ),
                (
                    "type",
                    models.SmallIntegerField(
                        choices=[
                            (0, "jack"),
                            (1, "alsa"),
                            (2, "pulseaudio"),
                            (3, "icecast"),
                            (4, "http"),
                            (5, "https"),
                            (6, "file"),
                        ],
                        verbose_name="type",
                    ),
                ),
                (
                    "active",
                    models.BooleanField(
                        default=True,
                        help_text="this port is active",
                        verbose_name="active",
                    ),
                ),
                (
                    "settings",
                    models.TextField(
                        blank=True,
                        help_text="list of comma separated params available; this is put in the output config file as raw code; plugin related",
                        null=True,
                        verbose_name="port settings",
                    ),
                ),
                (
                    "station",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Station",
                        verbose_name="station",
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="NavItem",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("menu", models.SlugField(max_length=24, verbose_name="menu")),
                (
                    "order",
                    models.PositiveSmallIntegerField(verbose_name="order"),
                ),
                (
                    "text",
                    models.CharField(max_length=64, verbose_name="title"),
                ),
                (
                    "url",
                    models.CharField(
                        blank=True,
                        max_length=256,
                        null=True,
                        verbose_name="url",
                    ),
                ),
                (
                    "page",
                    models.ForeignKey(
                        blank=True,
                        limit_choices_to={"view__isnull": True},
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.StaticPage",
                        verbose_name="page",
                    ),
                ),
                (
                    "station",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Station",
                        verbose_name="station",
                    ),
                ),
            ],
            options={
                "verbose_name": "Menu item",
                "ordering": ("order", "pk"),
            },
        ),
        migrations.CreateModel(
            name="Log",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "type",
                    models.SmallIntegerField(
                        choices=[
                            (0, "stop"),
                            (1, "start"),
                            (2, "cancelled"),
                            (3, "on air"),
                            (4, "other"),
                        ],
                        verbose_name="type",
                    ),
                ),
                (
                    "date",
                    models.DateTimeField(
                        db_index=True,
                        default=django.utils.timezone.now,
                        verbose_name="date",
                    ),
                ),
                (
                    "source",
                    models.CharField(
                        blank=True,
                        help_text="identifier of the source related to this log",
                        max_length=64,
                        null=True,
                        verbose_name="source",
                    ),
                ),
                (
                    "comment",
                    models.CharField(
                        blank=True,
                        max_length=512,
                        null=True,
                        verbose_name="comment",
                    ),
                ),
                (
                    "diffusion",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="aircox.Diffusion",
                        verbose_name="Diffusion",
                    ),
                ),
                (
                    "sound",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="aircox.Sound",
                        verbose_name="Sound",
                    ),
                ),
                (
                    "station",
                    models.ForeignKey(
                        help_text="related station",
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Station",
                        verbose_name="station",
                    ),
                ),
                (
                    "track",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="aircox.Track",
                        verbose_name="Track",
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Comment",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "nickname",
                    models.CharField(max_length=32, verbose_name="nickname"),
                ),
                (
                    "email",
                    models.EmailField(max_length=32, verbose_name="email"),
                ),
                ("date", models.DateTimeField(auto_now_add=True)),
                (
                    "content",
                    models.TextField(max_length=1024, verbose_name="content"),
                ),
                (
                    "page",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Page",
                        verbose_name="related page",
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Stream",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "delay",
                    models.TimeField(
                        blank=True,
                        help_text="minimal delay between two sound plays",
                        null=True,
                        verbose_name="delay",
                    ),
                ),
                (
                    "begin",
                    models.TimeField(
                        blank=True,
                        help_text="used to define a time range this stream isplayed",
                        null=True,
                        verbose_name="begin",
                    ),
                ),
                (
                    "end",
                    models.TimeField(
                        blank=True,
                        help_text="used to define a time range this stream isplayed",
                        null=True,
                        verbose_name="end",
                    ),
                ),
                (
                    "program",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Program",
                        verbose_name="related program",
                    ),
                ),
            ],
        ),
        migrations.AddField(
            model_name="sound",
            name="episode",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="aircox.Episode",
                verbose_name="episode",
            ),
        ),
        migrations.AddField(
            model_name="sound",
            name="program",
            field=models.ForeignKey(
                blank=True,
                help_text="program related to it",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="aircox.Program",
                verbose_name="program",
            ),
        ),
        migrations.CreateModel(
            name="Schedule",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "date",
                    models.DateField(
                        help_text="date of the first diffusion",
                        verbose_name="date",
                    ),
                ),
                (
                    "time",
                    models.TimeField(
                        help_text="start time", verbose_name="time"
                    ),
                ),
                (
                    "timezone",
                    models.CharField(
                        choices=[
                            ("Africa/Abidjan", "Africa/Abidjan"),
                            ("Africa/Accra", "Africa/Accra"),
                            ("Africa/Addis_Ababa", "Africa/Addis_Ababa"),
                            ("Africa/Algiers", "Africa/Algiers"),
                            ("Africa/Asmara", "Africa/Asmara"),
                            ("Africa/Asmera", "Africa/Asmera"),
                            ("Africa/Bamako", "Africa/Bamako"),
                            ("Africa/Bangui", "Africa/Bangui"),
                            ("Africa/Banjul", "Africa/Banjul"),
                            ("Africa/Bissau", "Africa/Bissau"),
                            ("Africa/Blantyre", "Africa/Blantyre"),
                            ("Africa/Brazzaville", "Africa/Brazzaville"),
                            ("Africa/Bujumbura", "Africa/Bujumbura"),
                            ("Africa/Cairo", "Africa/Cairo"),
                            ("Africa/Casablanca", "Africa/Casablanca"),
                            ("Africa/Ceuta", "Africa/Ceuta"),
                            ("Africa/Conakry", "Africa/Conakry"),
                            ("Africa/Dakar", "Africa/Dakar"),
                            ("Africa/Dar_es_Salaam", "Africa/Dar_es_Salaam"),
                            ("Africa/Djibouti", "Africa/Djibouti"),
                            ("Africa/Douala", "Africa/Douala"),
                            ("Africa/El_Aaiun", "Africa/El_Aaiun"),
                            ("Africa/Freetown", "Africa/Freetown"),
                            ("Africa/Gaborone", "Africa/Gaborone"),
                            ("Africa/Harare", "Africa/Harare"),
                            ("Africa/Johannesburg", "Africa/Johannesburg"),
                            ("Africa/Juba", "Africa/Juba"),
                            ("Africa/Kampala", "Africa/Kampala"),
                            ("Africa/Khartoum", "Africa/Khartoum"),
                            ("Africa/Kigali", "Africa/Kigali"),
                            ("Africa/Kinshasa", "Africa/Kinshasa"),
                            ("Africa/Lagos", "Africa/Lagos"),
                            ("Africa/Libreville", "Africa/Libreville"),
                            ("Africa/Lome", "Africa/Lome"),
                            ("Africa/Luanda", "Africa/Luanda"),
                            ("Africa/Lubumbashi", "Africa/Lubumbashi"),
                            ("Africa/Lusaka", "Africa/Lusaka"),
                            ("Africa/Malabo", "Africa/Malabo"),
                            ("Africa/Maputo", "Africa/Maputo"),
                            ("Africa/Maseru", "Africa/Maseru"),
                            ("Africa/Mbabane", "Africa/Mbabane"),
                            ("Africa/Mogadishu", "Africa/Mogadishu"),
                            ("Africa/Monrovia", "Africa/Monrovia"),
                            ("Africa/Nairobi", "Africa/Nairobi"),
                            ("Africa/Ndjamena", "Africa/Ndjamena"),
                            ("Africa/Niamey", "Africa/Niamey"),
                            ("Africa/Nouakchott", "Africa/Nouakchott"),
                            ("Africa/Ouagadougou", "Africa/Ouagadougou"),
                            ("Africa/Porto-Novo", "Africa/Porto-Novo"),
                            ("Africa/Sao_Tome", "Africa/Sao_Tome"),
                            ("Africa/Timbuktu", "Africa/Timbuktu"),
                            ("Africa/Tripoli", "Africa/Tripoli"),
                            ("Africa/Tunis", "Africa/Tunis"),
                            ("Africa/Windhoek", "Africa/Windhoek"),
                            ("America/Adak", "America/Adak"),
                            ("America/Anchorage", "America/Anchorage"),
                            ("America/Anguilla", "America/Anguilla"),
                            ("America/Antigua", "America/Antigua"),
                            ("America/Araguaina", "America/Araguaina"),
                            (
                                "America/Argentina/Buenos_Aires",
                                "America/Argentina/Buenos_Aires",
                            ),
                            (
                                "America/Argentina/Catamarca",
                                "America/Argentina/Catamarca",
                            ),
                            (
                                "America/Argentina/ComodRivadavia",
                                "America/Argentina/ComodRivadavia",
                            ),
                            (
                                "America/Argentina/Cordoba",
                                "America/Argentina/Cordoba",
                            ),
                            (
                                "America/Argentina/Jujuy",
                                "America/Argentina/Jujuy",
                            ),
                            (
                                "America/Argentina/La_Rioja",
                                "America/Argentina/La_Rioja",
                            ),
                            (
                                "America/Argentina/Mendoza",
                                "America/Argentina/Mendoza",
                            ),
                            (
                                "America/Argentina/Rio_Gallegos",
                                "America/Argentina/Rio_Gallegos",
                            ),
                            (
                                "America/Argentina/Salta",
                                "America/Argentina/Salta",
                            ),
                            (
                                "America/Argentina/San_Juan",
                                "America/Argentina/San_Juan",
                            ),
                            (
                                "America/Argentina/San_Luis",
                                "America/Argentina/San_Luis",
                            ),
                            (
                                "America/Argentina/Tucuman",
                                "America/Argentina/Tucuman",
                            ),
                            (
                                "America/Argentina/Ushuaia",
                                "America/Argentina/Ushuaia",
                            ),
                            ("America/Aruba", "America/Aruba"),
                            ("America/Asuncion", "America/Asuncion"),
                            ("America/Atikokan", "America/Atikokan"),
                            ("America/Atka", "America/Atka"),
                            ("America/Bahia", "America/Bahia"),
                            (
                                "America/Bahia_Banderas",
                                "America/Bahia_Banderas",
                            ),
                            ("America/Barbados", "America/Barbados"),
                            ("America/Belem", "America/Belem"),
                            ("America/Belize", "America/Belize"),
                            ("America/Blanc-Sablon", "America/Blanc-Sablon"),
                            ("America/Boa_Vista", "America/Boa_Vista"),
                            ("America/Bogota", "America/Bogota"),
                            ("America/Boise", "America/Boise"),
                            ("America/Buenos_Aires", "America/Buenos_Aires"),
                            ("America/Cambridge_Bay", "America/Cambridge_Bay"),
                            ("America/Campo_Grande", "America/Campo_Grande"),
                            ("America/Cancun", "America/Cancun"),
                            ("America/Caracas", "America/Caracas"),
                            ("America/Catamarca", "America/Catamarca"),
                            ("America/Cayenne", "America/Cayenne"),
                            ("America/Cayman", "America/Cayman"),
                            ("America/Chicago", "America/Chicago"),
                            ("America/Chihuahua", "America/Chihuahua"),
                            ("America/Coral_Harbour", "America/Coral_Harbour"),
                            ("America/Cordoba", "America/Cordoba"),
                            ("America/Costa_Rica", "America/Costa_Rica"),
                            ("America/Creston", "America/Creston"),
                            ("America/Cuiaba", "America/Cuiaba"),
                            ("America/Curacao", "America/Curacao"),
                            ("America/Danmarkshavn", "America/Danmarkshavn"),
                            ("America/Dawson", "America/Dawson"),
                            ("America/Dawson_Creek", "America/Dawson_Creek"),
                            ("America/Denver", "America/Denver"),
                            ("America/Detroit", "America/Detroit"),
                            ("America/Dominica", "America/Dominica"),
                            ("America/Edmonton", "America/Edmonton"),
                            ("America/Eirunepe", "America/Eirunepe"),
                            ("America/El_Salvador", "America/El_Salvador"),
                            ("America/Ensenada", "America/Ensenada"),
                            ("America/Fort_Nelson", "America/Fort_Nelson"),
                            ("America/Fort_Wayne", "America/Fort_Wayne"),
                            ("America/Fortaleza", "America/Fortaleza"),
                            ("America/Glace_Bay", "America/Glace_Bay"),
                            ("America/Godthab", "America/Godthab"),
                            ("America/Goose_Bay", "America/Goose_Bay"),
                            ("America/Grand_Turk", "America/Grand_Turk"),
                            ("America/Grenada", "America/Grenada"),
                            ("America/Guadeloupe", "America/Guadeloupe"),
                            ("America/Guatemala", "America/Guatemala"),
                            ("America/Guayaquil", "America/Guayaquil"),
                            ("America/Guyana", "America/Guyana"),
                            ("America/Halifax", "America/Halifax"),
                            ("America/Havana", "America/Havana"),
                            ("America/Hermosillo", "America/Hermosillo"),
                            (
                                "America/Indiana/Indianapolis",
                                "America/Indiana/Indianapolis",
                            ),
                            ("America/Indiana/Knox", "America/Indiana/Knox"),
                            (
                                "America/Indiana/Marengo",
                                "America/Indiana/Marengo",
                            ),
                            (
                                "America/Indiana/Petersburg",
                                "America/Indiana/Petersburg",
                            ),
                            (
                                "America/Indiana/Tell_City",
                                "America/Indiana/Tell_City",
                            ),
                            ("America/Indiana/Vevay", "America/Indiana/Vevay"),
                            (
                                "America/Indiana/Vincennes",
                                "America/Indiana/Vincennes",
                            ),
                            (
                                "America/Indiana/Winamac",
                                "America/Indiana/Winamac",
                            ),
                            ("America/Indianapolis", "America/Indianapolis"),
                            ("America/Inuvik", "America/Inuvik"),
                            ("America/Iqaluit", "America/Iqaluit"),
                            ("America/Jamaica", "America/Jamaica"),
                            ("America/Jujuy", "America/Jujuy"),
                            ("America/Juneau", "America/Juneau"),
                            (
                                "America/Kentucky/Louisville",
                                "America/Kentucky/Louisville",
                            ),
                            (
                                "America/Kentucky/Monticello",
                                "America/Kentucky/Monticello",
                            ),
                            ("America/Knox_IN", "America/Knox_IN"),
                            ("America/Kralendijk", "America/Kralendijk"),
                            ("America/La_Paz", "America/La_Paz"),
                            ("America/Lima", "America/Lima"),
                            ("America/Los_Angeles", "America/Los_Angeles"),
                            ("America/Louisville", "America/Louisville"),
                            ("America/Lower_Princes", "America/Lower_Princes"),
                            ("America/Maceio", "America/Maceio"),
                            ("America/Managua", "America/Managua"),
                            ("America/Manaus", "America/Manaus"),
                            ("America/Marigot", "America/Marigot"),
                            ("America/Martinique", "America/Martinique"),
                            ("America/Matamoros", "America/Matamoros"),
                            ("America/Mazatlan", "America/Mazatlan"),
                            ("America/Mendoza", "America/Mendoza"),
                            ("America/Menominee", "America/Menominee"),
                            ("America/Merida", "America/Merida"),
                            ("America/Metlakatla", "America/Metlakatla"),
                            ("America/Mexico_City", "America/Mexico_City"),
                            ("America/Miquelon", "America/Miquelon"),
                            ("America/Moncton", "America/Moncton"),
                            ("America/Monterrey", "America/Monterrey"),
                            ("America/Montevideo", "America/Montevideo"),
                            ("America/Montreal", "America/Montreal"),
                            ("America/Montserrat", "America/Montserrat"),
                            ("America/Nassau", "America/Nassau"),
                            ("America/New_York", "America/New_York"),
                            ("America/Nipigon", "America/Nipigon"),
                            ("America/Nome", "America/Nome"),
                            ("America/Noronha", "America/Noronha"),
                            (
                                "America/North_Dakota/Beulah",
                                "America/North_Dakota/Beulah",
                            ),
                            (
                                "America/North_Dakota/Center",
                                "America/North_Dakota/Center",
                            ),
                            (
                                "America/North_Dakota/New_Salem",
                                "America/North_Dakota/New_Salem",
                            ),
                            ("America/Nuuk", "America/Nuuk"),
                            ("America/Ojinaga", "America/Ojinaga"),
                            ("America/Panama", "America/Panama"),
                            ("America/Pangnirtung", "America/Pangnirtung"),
                            ("America/Paramaribo", "America/Paramaribo"),
                            ("America/Phoenix", "America/Phoenix"),
                            (
                                "America/Port-au-Prince",
                                "America/Port-au-Prince",
                            ),
                            ("America/Port_of_Spain", "America/Port_of_Spain"),
                            ("America/Porto_Acre", "America/Porto_Acre"),
                            ("America/Porto_Velho", "America/Porto_Velho"),
                            ("America/Puerto_Rico", "America/Puerto_Rico"),
                            ("America/Punta_Arenas", "America/Punta_Arenas"),
                            ("America/Rainy_River", "America/Rainy_River"),
                            ("America/Rankin_Inlet", "America/Rankin_Inlet"),
                            ("America/Recife", "America/Recife"),
                            ("America/Regina", "America/Regina"),
                            ("America/Resolute", "America/Resolute"),
                            ("America/Rio_Branco", "America/Rio_Branco"),
                            ("America/Rosario", "America/Rosario"),
                            ("America/Santa_Isabel", "America/Santa_Isabel"),
                            ("America/Santarem", "America/Santarem"),
                            ("America/Santiago", "America/Santiago"),
                            ("America/Santo_Domingo", "America/Santo_Domingo"),
                            ("America/Sao_Paulo", "America/Sao_Paulo"),
                            ("America/Scoresbysund", "America/Scoresbysund"),
                            ("America/Shiprock", "America/Shiprock"),
                            ("America/Sitka", "America/Sitka"),
                            ("America/St_Barthelemy", "America/St_Barthelemy"),
                            ("America/St_Johns", "America/St_Johns"),
                            ("America/St_Kitts", "America/St_Kitts"),
                            ("America/St_Lucia", "America/St_Lucia"),
                            ("America/St_Thomas", "America/St_Thomas"),
                            ("America/St_Vincent", "America/St_Vincent"),
                            ("America/Swift_Current", "America/Swift_Current"),
                            ("America/Tegucigalpa", "America/Tegucigalpa"),
                            ("America/Thule", "America/Thule"),
                            ("America/Thunder_Bay", "America/Thunder_Bay"),
                            ("America/Tijuana", "America/Tijuana"),
                            ("America/Toronto", "America/Toronto"),
                            ("America/Tortola", "America/Tortola"),
                            ("America/Vancouver", "America/Vancouver"),
                            ("America/Virgin", "America/Virgin"),
                            ("America/Whitehorse", "America/Whitehorse"),
                            ("America/Winnipeg", "America/Winnipeg"),
                            ("America/Yakutat", "America/Yakutat"),
                            ("America/Yellowknife", "America/Yellowknife"),
                            ("Antarctica/Casey", "Antarctica/Casey"),
                            ("Antarctica/Davis", "Antarctica/Davis"),
                            (
                                "Antarctica/DumontDUrville",
                                "Antarctica/DumontDUrville",
                            ),
                            ("Antarctica/Macquarie", "Antarctica/Macquarie"),
                            ("Antarctica/Mawson", "Antarctica/Mawson"),
                            ("Antarctica/McMurdo", "Antarctica/McMurdo"),
                            ("Antarctica/Palmer", "Antarctica/Palmer"),
                            ("Antarctica/Rothera", "Antarctica/Rothera"),
                            ("Antarctica/South_Pole", "Antarctica/South_Pole"),
                            ("Antarctica/Syowa", "Antarctica/Syowa"),
                            ("Antarctica/Troll", "Antarctica/Troll"),
                            ("Antarctica/Vostok", "Antarctica/Vostok"),
                            ("Arctic/Longyearbyen", "Arctic/Longyearbyen"),
                            ("Asia/Aden", "Asia/Aden"),
                            ("Asia/Almaty", "Asia/Almaty"),
                            ("Asia/Amman", "Asia/Amman"),
                            ("Asia/Anadyr", "Asia/Anadyr"),
                            ("Asia/Aqtau", "Asia/Aqtau"),
                            ("Asia/Aqtobe", "Asia/Aqtobe"),
                            ("Asia/Ashgabat", "Asia/Ashgabat"),
                            ("Asia/Ashkhabad", "Asia/Ashkhabad"),
                            ("Asia/Atyrau", "Asia/Atyrau"),
                            ("Asia/Baghdad", "Asia/Baghdad"),
                            ("Asia/Bahrain", "Asia/Bahrain"),
                            ("Asia/Baku", "Asia/Baku"),
                            ("Asia/Bangkok", "Asia/Bangkok"),
                            ("Asia/Barnaul", "Asia/Barnaul"),
                            ("Asia/Beirut", "Asia/Beirut"),
                            ("Asia/Bishkek", "Asia/Bishkek"),
                            ("Asia/Brunei", "Asia/Brunei"),
                            ("Asia/Calcutta", "Asia/Calcutta"),
                            ("Asia/Chita", "Asia/Chita"),
                            ("Asia/Choibalsan", "Asia/Choibalsan"),
                            ("Asia/Chongqing", "Asia/Chongqing"),
                            ("Asia/Chungking", "Asia/Chungking"),
                            ("Asia/Colombo", "Asia/Colombo"),
                            ("Asia/Dacca", "Asia/Dacca"),
                            ("Asia/Damascus", "Asia/Damascus"),
                            ("Asia/Dhaka", "Asia/Dhaka"),
                            ("Asia/Dili", "Asia/Dili"),
                            ("Asia/Dubai", "Asia/Dubai"),
                            ("Asia/Dushanbe", "Asia/Dushanbe"),
                            ("Asia/Famagusta", "Asia/Famagusta"),
                            ("Asia/Gaza", "Asia/Gaza"),
                            ("Asia/Harbin", "Asia/Harbin"),
                            ("Asia/Hebron", "Asia/Hebron"),
                            ("Asia/Ho_Chi_Minh", "Asia/Ho_Chi_Minh"),
                            ("Asia/Hong_Kong", "Asia/Hong_Kong"),
                            ("Asia/Hovd", "Asia/Hovd"),
                            ("Asia/Irkutsk", "Asia/Irkutsk"),
                            ("Asia/Istanbul", "Asia/Istanbul"),
                            ("Asia/Jakarta", "Asia/Jakarta"),
                            ("Asia/Jayapura", "Asia/Jayapura"),
                            ("Asia/Jerusalem", "Asia/Jerusalem"),
                            ("Asia/Kabul", "Asia/Kabul"),
                            ("Asia/Kamchatka", "Asia/Kamchatka"),
                            ("Asia/Karachi", "Asia/Karachi"),
                            ("Asia/Kashgar", "Asia/Kashgar"),
                            ("Asia/Kathmandu", "Asia/Kathmandu"),
                            ("Asia/Katmandu", "Asia/Katmandu"),
                            ("Asia/Khandyga", "Asia/Khandyga"),
                            ("Asia/Kolkata", "Asia/Kolkata"),
                            ("Asia/Krasnoyarsk", "Asia/Krasnoyarsk"),
                            ("Asia/Kuala_Lumpur", "Asia/Kuala_Lumpur"),
                            ("Asia/Kuching", "Asia/Kuching"),
                            ("Asia/Kuwait", "Asia/Kuwait"),
                            ("Asia/Macao", "Asia/Macao"),
                            ("Asia/Macau", "Asia/Macau"),
                            ("Asia/Magadan", "Asia/Magadan"),
                            ("Asia/Makassar", "Asia/Makassar"),
                            ("Asia/Manila", "Asia/Manila"),
                            ("Asia/Muscat", "Asia/Muscat"),
                            ("Asia/Nicosia", "Asia/Nicosia"),
                            ("Asia/Novokuznetsk", "Asia/Novokuznetsk"),
                            ("Asia/Novosibirsk", "Asia/Novosibirsk"),
                            ("Asia/Omsk", "Asia/Omsk"),
                            ("Asia/Oral", "Asia/Oral"),
                            ("Asia/Phnom_Penh", "Asia/Phnom_Penh"),
                            ("Asia/Pontianak", "Asia/Pontianak"),
                            ("Asia/Pyongyang", "Asia/Pyongyang"),
                            ("Asia/Qatar", "Asia/Qatar"),
                            ("Asia/Qostanay", "Asia/Qostanay"),
                            ("Asia/Qyzylorda", "Asia/Qyzylorda"),
                            ("Asia/Rangoon", "Asia/Rangoon"),
                            ("Asia/Riyadh", "Asia/Riyadh"),
                            ("Asia/Saigon", "Asia/Saigon"),
                            ("Asia/Sakhalin", "Asia/Sakhalin"),
                            ("Asia/Samarkand", "Asia/Samarkand"),
                            ("Asia/Seoul", "Asia/Seoul"),
                            ("Asia/Shanghai", "Asia/Shanghai"),
                            ("Asia/Singapore", "Asia/Singapore"),
                            ("Asia/Srednekolymsk", "Asia/Srednekolymsk"),
                            ("Asia/Taipei", "Asia/Taipei"),
                            ("Asia/Tashkent", "Asia/Tashkent"),
                            ("Asia/Tbilisi", "Asia/Tbilisi"),
                            ("Asia/Tehran", "Asia/Tehran"),
                            ("Asia/Tel_Aviv", "Asia/Tel_Aviv"),
                            ("Asia/Thimbu", "Asia/Thimbu"),
                            ("Asia/Thimphu", "Asia/Thimphu"),
                            ("Asia/Tokyo", "Asia/Tokyo"),
                            ("Asia/Tomsk", "Asia/Tomsk"),
                            ("Asia/Ujung_Pandang", "Asia/Ujung_Pandang"),
                            ("Asia/Ulaanbaatar", "Asia/Ulaanbaatar"),
                            ("Asia/Ulan_Bator", "Asia/Ulan_Bator"),
                            ("Asia/Urumqi", "Asia/Urumqi"),
                            ("Asia/Ust-Nera", "Asia/Ust-Nera"),
                            ("Asia/Vientiane", "Asia/Vientiane"),
                            ("Asia/Vladivostok", "Asia/Vladivostok"),
                            ("Asia/Yakutsk", "Asia/Yakutsk"),
                            ("Asia/Yangon", "Asia/Yangon"),
                            ("Asia/Yekaterinburg", "Asia/Yekaterinburg"),
                            ("Asia/Yerevan", "Asia/Yerevan"),
                            ("Atlantic/Azores", "Atlantic/Azores"),
                            ("Atlantic/Bermuda", "Atlantic/Bermuda"),
                            ("Atlantic/Canary", "Atlantic/Canary"),
                            ("Atlantic/Cape_Verde", "Atlantic/Cape_Verde"),
                            ("Atlantic/Faeroe", "Atlantic/Faeroe"),
                            ("Atlantic/Faroe", "Atlantic/Faroe"),
                            ("Atlantic/Jan_Mayen", "Atlantic/Jan_Mayen"),
                            ("Atlantic/Madeira", "Atlantic/Madeira"),
                            ("Atlantic/Reykjavik", "Atlantic/Reykjavik"),
                            (
                                "Atlantic/South_Georgia",
                                "Atlantic/South_Georgia",
                            ),
                            ("Atlantic/St_Helena", "Atlantic/St_Helena"),
                            ("Atlantic/Stanley", "Atlantic/Stanley"),
                            ("Australia/ACT", "Australia/ACT"),
                            ("Australia/Adelaide", "Australia/Adelaide"),
                            ("Australia/Brisbane", "Australia/Brisbane"),
                            ("Australia/Broken_Hill", "Australia/Broken_Hill"),
                            ("Australia/Canberra", "Australia/Canberra"),
                            ("Australia/Currie", "Australia/Currie"),
                            ("Australia/Darwin", "Australia/Darwin"),
                            ("Australia/Eucla", "Australia/Eucla"),
                            ("Australia/Hobart", "Australia/Hobart"),
                            ("Australia/LHI", "Australia/LHI"),
                            ("Australia/Lindeman", "Australia/Lindeman"),
                            ("Australia/Lord_Howe", "Australia/Lord_Howe"),
                            ("Australia/Melbourne", "Australia/Melbourne"),
                            ("Australia/NSW", "Australia/NSW"),
                            ("Australia/North", "Australia/North"),
                            ("Australia/Perth", "Australia/Perth"),
                            ("Australia/Queensland", "Australia/Queensland"),
                            ("Australia/South", "Australia/South"),
                            ("Australia/Sydney", "Australia/Sydney"),
                            ("Australia/Tasmania", "Australia/Tasmania"),
                            ("Australia/Victoria", "Australia/Victoria"),
                            ("Australia/West", "Australia/West"),
                            ("Australia/Yancowinna", "Australia/Yancowinna"),
                            ("Brazil/Acre", "Brazil/Acre"),
                            ("Brazil/DeNoronha", "Brazil/DeNoronha"),
                            ("Brazil/East", "Brazil/East"),
                            ("Brazil/West", "Brazil/West"),
                            ("CET", "CET"),
                            ("CST6CDT", "CST6CDT"),
                            ("Canada/Atlantic", "Canada/Atlantic"),
                            ("Canada/Central", "Canada/Central"),
                            ("Canada/Eastern", "Canada/Eastern"),
                            ("Canada/Mountain", "Canada/Mountain"),
                            ("Canada/Newfoundland", "Canada/Newfoundland"),
                            ("Canada/Pacific", "Canada/Pacific"),
                            ("Canada/Saskatchewan", "Canada/Saskatchewan"),
                            ("Canada/Yukon", "Canada/Yukon"),
                            ("Chile/Continental", "Chile/Continental"),
                            ("Chile/EasterIsland", "Chile/EasterIsland"),
                            ("Cuba", "Cuba"),
                            ("EET", "EET"),
                            ("EST", "EST"),
                            ("EST5EDT", "EST5EDT"),
                            ("Egypt", "Egypt"),
                            ("Eire", "Eire"),
                            ("Etc/GMT", "Etc/GMT"),
                            ("Etc/GMT+0", "Etc/GMT+0"),
                            ("Etc/GMT+1", "Etc/GMT+1"),
                            ("Etc/GMT+10", "Etc/GMT+10"),
                            ("Etc/GMT+11", "Etc/GMT+11"),
                            ("Etc/GMT+12", "Etc/GMT+12"),
                            ("Etc/GMT+2", "Etc/GMT+2"),
                            ("Etc/GMT+3", "Etc/GMT+3"),
                            ("Etc/GMT+4", "Etc/GMT+4"),
                            ("Etc/GMT+5", "Etc/GMT+5"),
                            ("Etc/GMT+6", "Etc/GMT+6"),
                            ("Etc/GMT+7", "Etc/GMT+7"),
                            ("Etc/GMT+8", "Etc/GMT+8"),
                            ("Etc/GMT+9", "Etc/GMT+9"),
                            ("Etc/GMT-0", "Etc/GMT-0"),
                            ("Etc/GMT-1", "Etc/GMT-1"),
                            ("Etc/GMT-10", "Etc/GMT-10"),
                            ("Etc/GMT-11", "Etc/GMT-11"),
                            ("Etc/GMT-12", "Etc/GMT-12"),
                            ("Etc/GMT-13", "Etc/GMT-13"),
                            ("Etc/GMT-14", "Etc/GMT-14"),
                            ("Etc/GMT-2", "Etc/GMT-2"),
                            ("Etc/GMT-3", "Etc/GMT-3"),
                            ("Etc/GMT-4", "Etc/GMT-4"),
                            ("Etc/GMT-5", "Etc/GMT-5"),
                            ("Etc/GMT-6", "Etc/GMT-6"),
                            ("Etc/GMT-7", "Etc/GMT-7"),
                            ("Etc/GMT-8", "Etc/GMT-8"),
                            ("Etc/GMT-9", "Etc/GMT-9"),
                            ("Etc/GMT0", "Etc/GMT0"),
                            ("Etc/Greenwich", "Etc/Greenwich"),
                            ("Etc/UCT", "Etc/UCT"),
                            ("Etc/UTC", "Etc/UTC"),
                            ("Etc/Universal", "Etc/Universal"),
                            ("Etc/Zulu", "Etc/Zulu"),
                            ("Europe/Amsterdam", "Europe/Amsterdam"),
                            ("Europe/Andorra", "Europe/Andorra"),
                            ("Europe/Astrakhan", "Europe/Astrakhan"),
                            ("Europe/Athens", "Europe/Athens"),
                            ("Europe/Belfast", "Europe/Belfast"),
                            ("Europe/Belgrade", "Europe/Belgrade"),
                            ("Europe/Berlin", "Europe/Berlin"),
                            ("Europe/Bratislava", "Europe/Bratislava"),
                            ("Europe/Brussels", "Europe/Brussels"),
                            ("Europe/Bucharest", "Europe/Bucharest"),
                            ("Europe/Budapest", "Europe/Budapest"),
                            ("Europe/Busingen", "Europe/Busingen"),
                            ("Europe/Chisinau", "Europe/Chisinau"),
                            ("Europe/Copenhagen", "Europe/Copenhagen"),
                            ("Europe/Dublin", "Europe/Dublin"),
                            ("Europe/Gibraltar", "Europe/Gibraltar"),
                            ("Europe/Guernsey", "Europe/Guernsey"),
                            ("Europe/Helsinki", "Europe/Helsinki"),
                            ("Europe/Isle_of_Man", "Europe/Isle_of_Man"),
                            ("Europe/Istanbul", "Europe/Istanbul"),
                            ("Europe/Jersey", "Europe/Jersey"),
                            ("Europe/Kaliningrad", "Europe/Kaliningrad"),
                            ("Europe/Kiev", "Europe/Kiev"),
                            ("Europe/Kirov", "Europe/Kirov"),
                            ("Europe/Lisbon", "Europe/Lisbon"),
                            ("Europe/Ljubljana", "Europe/Ljubljana"),
                            ("Europe/London", "Europe/London"),
                            ("Europe/Luxembourg", "Europe/Luxembourg"),
                            ("Europe/Madrid", "Europe/Madrid"),
                            ("Europe/Malta", "Europe/Malta"),
                            ("Europe/Mariehamn", "Europe/Mariehamn"),
                            ("Europe/Minsk", "Europe/Minsk"),
                            ("Europe/Monaco", "Europe/Monaco"),
                            ("Europe/Moscow", "Europe/Moscow"),
                            ("Europe/Nicosia", "Europe/Nicosia"),
                            ("Europe/Oslo", "Europe/Oslo"),
                            ("Europe/Paris", "Europe/Paris"),
                            ("Europe/Podgorica", "Europe/Podgorica"),
                            ("Europe/Prague", "Europe/Prague"),
                            ("Europe/Riga", "Europe/Riga"),
                            ("Europe/Rome", "Europe/Rome"),
                            ("Europe/Samara", "Europe/Samara"),
                            ("Europe/San_Marino", "Europe/San_Marino"),
                            ("Europe/Sarajevo", "Europe/Sarajevo"),
                            ("Europe/Saratov", "Europe/Saratov"),
                            ("Europe/Simferopol", "Europe/Simferopol"),
                            ("Europe/Skopje", "Europe/Skopje"),
                            ("Europe/Sofia", "Europe/Sofia"),
                            ("Europe/Stockholm", "Europe/Stockholm"),
                            ("Europe/Tallinn", "Europe/Tallinn"),
                            ("Europe/Tirane", "Europe/Tirane"),
                            ("Europe/Tiraspol", "Europe/Tiraspol"),
                            ("Europe/Ulyanovsk", "Europe/Ulyanovsk"),
                            ("Europe/Uzhgorod", "Europe/Uzhgorod"),
                            ("Europe/Vaduz", "Europe/Vaduz"),
                            ("Europe/Vatican", "Europe/Vatican"),
                            ("Europe/Vienna", "Europe/Vienna"),
                            ("Europe/Vilnius", "Europe/Vilnius"),
                            ("Europe/Volgograd", "Europe/Volgograd"),
                            ("Europe/Warsaw", "Europe/Warsaw"),
                            ("Europe/Zagreb", "Europe/Zagreb"),
                            ("Europe/Zaporozhye", "Europe/Zaporozhye"),
                            ("Europe/Zurich", "Europe/Zurich"),
                            ("GB", "GB"),
                            ("GB-Eire", "GB-Eire"),
                            ("GMT", "GMT"),
                            ("GMT+0", "GMT+0"),
                            ("GMT-0", "GMT-0"),
                            ("GMT0", "GMT0"),
                            ("Greenwich", "Greenwich"),
                            ("HST", "HST"),
                            ("Hongkong", "Hongkong"),
                            ("Iceland", "Iceland"),
                            ("Indian/Antananarivo", "Indian/Antananarivo"),
                            ("Indian/Chagos", "Indian/Chagos"),
                            ("Indian/Christmas", "Indian/Christmas"),
                            ("Indian/Cocos", "Indian/Cocos"),
                            ("Indian/Comoro", "Indian/Comoro"),
                            ("Indian/Kerguelen", "Indian/Kerguelen"),
                            ("Indian/Mahe", "Indian/Mahe"),
                            ("Indian/Maldives", "Indian/Maldives"),
                            ("Indian/Mauritius", "Indian/Mauritius"),
                            ("Indian/Mayotte", "Indian/Mayotte"),
                            ("Indian/Reunion", "Indian/Reunion"),
                            ("Iran", "Iran"),
                            ("Israel", "Israel"),
                            ("Jamaica", "Jamaica"),
                            ("Japan", "Japan"),
                            ("Kwajalein", "Kwajalein"),
                            ("Libya", "Libya"),
                            ("MET", "MET"),
                            ("MST", "MST"),
                            ("MST7MDT", "MST7MDT"),
                            ("Mexico/BajaNorte", "Mexico/BajaNorte"),
                            ("Mexico/BajaSur", "Mexico/BajaSur"),
                            ("Mexico/General", "Mexico/General"),
                            ("NZ", "NZ"),
                            ("NZ-CHAT", "NZ-CHAT"),
                            ("Navajo", "Navajo"),
                            ("PRC", "PRC"),
                            ("PST8PDT", "PST8PDT"),
                            ("Pacific/Apia", "Pacific/Apia"),
                            ("Pacific/Auckland", "Pacific/Auckland"),
                            ("Pacific/Bougainville", "Pacific/Bougainville"),
                            ("Pacific/Chatham", "Pacific/Chatham"),
                            ("Pacific/Chuuk", "Pacific/Chuuk"),
                            ("Pacific/Easter", "Pacific/Easter"),
                            ("Pacific/Efate", "Pacific/Efate"),
                            ("Pacific/Enderbury", "Pacific/Enderbury"),
                            ("Pacific/Fakaofo", "Pacific/Fakaofo"),
                            ("Pacific/Fiji", "Pacific/Fiji"),
                            ("Pacific/Funafuti", "Pacific/Funafuti"),
                            ("Pacific/Galapagos", "Pacific/Galapagos"),
                            ("Pacific/Gambier", "Pacific/Gambier"),
                            ("Pacific/Guadalcanal", "Pacific/Guadalcanal"),
                            ("Pacific/Guam", "Pacific/Guam"),
                            ("Pacific/Honolulu", "Pacific/Honolulu"),
                            ("Pacific/Johnston", "Pacific/Johnston"),
                            ("Pacific/Kiritimati", "Pacific/Kiritimati"),
                            ("Pacific/Kosrae", "Pacific/Kosrae"),
                            ("Pacific/Kwajalein", "Pacific/Kwajalein"),
                            ("Pacific/Majuro", "Pacific/Majuro"),
                            ("Pacific/Marquesas", "Pacific/Marquesas"),
                            ("Pacific/Midway", "Pacific/Midway"),
                            ("Pacific/Nauru", "Pacific/Nauru"),
                            ("Pacific/Niue", "Pacific/Niue"),
                            ("Pacific/Norfolk", "Pacific/Norfolk"),
                            ("Pacific/Noumea", "Pacific/Noumea"),
                            ("Pacific/Pago_Pago", "Pacific/Pago_Pago"),
                            ("Pacific/Palau", "Pacific/Palau"),
                            ("Pacific/Pitcairn", "Pacific/Pitcairn"),
                            ("Pacific/Pohnpei", "Pacific/Pohnpei"),
                            ("Pacific/Ponape", "Pacific/Ponape"),
                            ("Pacific/Port_Moresby", "Pacific/Port_Moresby"),
                            ("Pacific/Rarotonga", "Pacific/Rarotonga"),
                            ("Pacific/Saipan", "Pacific/Saipan"),
                            ("Pacific/Samoa", "Pacific/Samoa"),
                            ("Pacific/Tahiti", "Pacific/Tahiti"),
                            ("Pacific/Tarawa", "Pacific/Tarawa"),
                            ("Pacific/Tongatapu", "Pacific/Tongatapu"),
                            ("Pacific/Truk", "Pacific/Truk"),
                            ("Pacific/Wake", "Pacific/Wake"),
                            ("Pacific/Wallis", "Pacific/Wallis"),
                            ("Pacific/Yap", "Pacific/Yap"),
                            ("Poland", "Poland"),
                            ("Portugal", "Portugal"),
                            ("ROC", "ROC"),
                            ("ROK", "ROK"),
                            ("Singapore", "Singapore"),
                            ("Turkey", "Turkey"),
                            ("UCT", "UCT"),
                            ("US/Alaska", "US/Alaska"),
                            ("US/Aleutian", "US/Aleutian"),
                            ("US/Arizona", "US/Arizona"),
                            ("US/Central", "US/Central"),
                            ("US/East-Indiana", "US/East-Indiana"),
                            ("US/Eastern", "US/Eastern"),
                            ("US/Hawaii", "US/Hawaii"),
                            ("US/Indiana-Starke", "US/Indiana-Starke"),
                            ("US/Michigan", "US/Michigan"),
                            ("US/Mountain", "US/Mountain"),
                            ("US/Pacific", "US/Pacific"),
                            ("US/Samoa", "US/Samoa"),
                            ("UTC", "UTC"),
                            ("Universal", "Universal"),
                            ("W-SU", "W-SU"),
                            ("WET", "WET"),
                            ("Zulu", "Zulu"),
                        ],
                        default=django.utils.timezone.get_current_timezone,
                        help_text="timezone used for the date",
                        max_length=100,
                        verbose_name="timezone",
                    ),
                ),
                (
                    "duration",
                    models.TimeField(
                        help_text="regular duration", verbose_name="duration"
                    ),
                ),
                (
                    "frequency",
                    models.SmallIntegerField(
                        choices=[
                            (0, "ponctual"),
                            (1, "1st {day} of the month"),
                            (2, "2nd {day} of the month"),
                            (4, "3rd {day} of the month"),
                            (8, "4th {day} of the month"),
                            (16, "last {day} of the month"),
                            (5, "1st and 3rd {day}s of the month"),
                            (10, "2nd and 4th {day}s of the month"),
                            (31, "every {day}"),
                            (32, "one {day} on two"),
                        ],
                        verbose_name="frequency",
                    ),
                ),
                (
                    "initial",
                    models.ForeignKey(
                        blank=True,
                        help_text="mark as rerun of this %(model_name)",
                        limit_choices_to={"initial__isnull": True},
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="rerun_set",
                        to="aircox.Schedule",
                        verbose_name="initial schedule",
                    ),
                ),
                (
                    "program",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="aircox.Program",
                        verbose_name="related program",
                    ),
                ),
            ],
            options={
                "verbose_name": "Schedule",
                "verbose_name_plural": "Schedules",
            },
        ),
        migrations.AddField(
            model_name="program",
            name="station",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="aircox.Station",
                verbose_name="station",
            ),
        ),
        migrations.AddField(
            model_name="diffusion",
            name="episode",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="aircox.Episode",
                verbose_name="episode",
            ),
        ),
        migrations.AddField(
            model_name="diffusion",
            name="program",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="aircox.Program",
                verbose_name="related program",
            ),
        ),
    ]
