diff --git a/cps/web.py b/cps/web.py
index fdf5d1b7..5f027562 100755
--- a/cps/web.py
+++ b/cps/web.py
@@ -18,9 +18,8 @@ from sqlalchemy.exc import IntegrityError
from sqlalchemy import __version__ as sqlalchemyVersion
from math import ceil
from flask_login import LoginManager, login_user, logout_user, login_required, current_user
-from flask_login import __version__ as flask_loginVersion
from flask_principal import Principal, Identity, AnonymousIdentity, identity_changed
-from flask_login import __version__ as flask_principalVersion
+from flask_principal import __version__ as flask_principalVersion
from flask_babel import Babel
from flask_babel import gettext as _
import requests
@@ -48,6 +47,11 @@ from shutil import move, copyfile
from tornado.ioloop import IOLoop
from tornado import version as tornadoVersion
+try:
+ from flask_login import __version__ as flask_loginVersion
+except ImportError, e:
+ from flask_login.__about__ import __version__ as flask_loginVersion
+
try:
from wand.image import Image
diff --git a/readme.md b/readme.md
index c79a734e..8108054c 100755
--- a/readme.md
+++ b/readme.md
@@ -1,4 +1,4 @@
-##About
+## About
Calibre Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing [Calibre](https://calibre-ebook.com) database.
@@ -6,7 +6,8 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d
![screenshot](https://raw.githubusercontent.com/janeczku/docker-calibre-web/master/screenshot.png)
-##Features
+## Features
+
- Bootstrap 3 HTML5 interface
- full graphical setup
- User management
@@ -28,13 +29,14 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d
## Quick start
-1. Execute the command: `python cps.py` (or `nohup python cps.py` - recommended if you want to exit the terminal window)
-2. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
-3. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
-4. Go to Login page
+1. Install required dependencies by executing `pip install -r requirements.txt`
+2. Execute the command: `python cps.py` (or `nohup python cps.py` - recommended if you want to exit the terminal window)
+3. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
+4. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
+5. Go to Login page
-**Default admin login:**
-*Username:* admin
+**Default admin login:**
+*Username:* admin
*Password:* admin123
## Runtime Configuration Options
@@ -56,10 +58,10 @@ Tick to enable uploading of PDF, epub, FB2. This requires the imagemagick librar
## Requirements
Python 2.7+
-
-Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the send-to-kindle feature:
-[Download](http://www.amazon.com/gp/feature.html?docId=1000765211) Amazon's KindleGen tool for your platform and place the binary named as `kindlegen` in the `vendor` folder.
+Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the send-to-kindle feature:
+
+[Download](http://www.amazon.com/gp/feature.html?docId=1000765211) Amazon's KindleGen tool for your platform and place the binary named as `kindlegen` in the `vendor` folder.
## Docker image
@@ -131,4 +133,4 @@ Replace the user and ExecStart with your user and foldernames.
`sudo systemctl enable cps.service`
-enables the service.
+enables the service.
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 00000000..a140cbb5
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,12 @@
+Babel>=1.3
+Flask>=0.11
+Flask-Babel==0.11.1
+Flask-Login>=0.3.2
+Flask-Principal>=0.3.2
+iso-639>=0.4.5
+PyPDF2==1.26.0
+pytz>=2016.10
+requests>=2.11.1
+SQLAlchemy>=0.8.4
+tornado>=4.4.2
+Wand>=0.4.4
diff --git a/vendor/pytz/zoneinfo/Africa/__init__.py b/vendor/.gitempty
similarity index 100%
rename from vendor/pytz/zoneinfo/Africa/__init__.py
rename to vendor/.gitempty
diff --git a/vendor/LICENSE_flask_login b/vendor/LICENSE_flask_login
deleted file mode 100644
index 04463812..00000000
--- a/vendor/LICENSE_flask_login
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2011 Matthew Frazier
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/LICENSE_flask_principal b/vendor/LICENSE_flask_principal
deleted file mode 100644
index 85522fd0..00000000
--- a/vendor/LICENSE_flask_principal
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012 Ali Afshar
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/vendor/LICENSE_itsdangerous b/vendor/LICENSE_itsdangerous
deleted file mode 100644
index 183d7f6d..00000000
--- a/vendor/LICENSE_itsdangerous
+++ /dev/null
@@ -1,31 +0,0 @@
-Copyright (c) 2011 by Armin Ronacher and the Django Software Foundation.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- * The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/PyPDF2/__init__.py b/vendor/PyPDF2/__init__.py
deleted file mode 100755
index f458c0ea..00000000
--- a/vendor/PyPDF2/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from .pdf import PdfFileReader, PdfFileWriter
-from .merger import PdfFileMerger
-from .pagerange import PageRange, parse_filename_page_ranges
-from ._version import __version__
-__all__ = ["pdf", "PdfFileMerger"]
diff --git a/vendor/PyPDF2/_version.py b/vendor/PyPDF2/_version.py
deleted file mode 100755
index 5fc7041e..00000000
--- a/vendor/PyPDF2/_version.py
+++ /dev/null
@@ -1 +0,0 @@
-__version__ = '1.26.0'
diff --git a/vendor/PyPDF2/filters.py b/vendor/PyPDF2/filters.py
deleted file mode 100755
index 3717fd4c..00000000
--- a/vendor/PyPDF2/filters.py
+++ /dev/null
@@ -1,362 +0,0 @@
-# vim: sw=4:expandtab:foldmethod=marker
-#
-# Copyright (c) 2006, Mathieu Fenniak
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-"""
-Implementation of stream filters for PDF.
-"""
-__author__ = "Mathieu Fenniak"
-__author_email__ = "biziqe@mathieu.fenniak.net"
-
-from .utils import PdfReadError, ord_, chr_
-from sys import version_info
-if version_info < ( 3, 0 ):
- from cStringIO import StringIO
-else:
- from io import StringIO
- import struct
-
-try:
- import zlib
-
- def decompress(data):
- return zlib.decompress(data)
-
- def compress(data):
- return zlib.compress(data)
-
-except ImportError:
- # Unable to import zlib. Attempt to use the System.IO.Compression
- # library from the .NET framework. (IronPython only)
- import System
- from System import IO, Collections, Array
-
- def _string_to_bytearr(buf):
- retval = Array.CreateInstance(System.Byte, len(buf))
- for i in range(len(buf)):
- retval[i] = ord(buf[i])
- return retval
-
- def _bytearr_to_string(bytes):
- retval = ""
- for i in range(bytes.Length):
- retval += chr(bytes[i])
- return retval
-
- def _read_bytes(stream):
- ms = IO.MemoryStream()
- buf = Array.CreateInstance(System.Byte, 2048)
- while True:
- bytes = stream.Read(buf, 0, buf.Length)
- if bytes == 0:
- break
- else:
- ms.Write(buf, 0, bytes)
- retval = ms.ToArray()
- ms.Close()
- return retval
-
- def decompress(data):
- bytes = _string_to_bytearr(data)
- ms = IO.MemoryStream()
- ms.Write(bytes, 0, bytes.Length)
- ms.Position = 0 # fseek 0
- gz = IO.Compression.DeflateStream(ms, IO.Compression.CompressionMode.Decompress)
- bytes = _read_bytes(gz)
- retval = _bytearr_to_string(bytes)
- gz.Close()
- return retval
-
- def compress(data):
- bytes = _string_to_bytearr(data)
- ms = IO.MemoryStream()
- gz = IO.Compression.DeflateStream(ms, IO.Compression.CompressionMode.Compress, True)
- gz.Write(bytes, 0, bytes.Length)
- gz.Close()
- ms.Position = 0 # fseek 0
- bytes = ms.ToArray()
- retval = _bytearr_to_string(bytes)
- ms.Close()
- return retval
-
-
-class FlateDecode(object):
- def decode(data, decodeParms):
- data = decompress(data)
- predictor = 1
- if decodeParms:
- try:
- predictor = decodeParms.get("/Predictor", 1)
- except AttributeError:
- pass # usually an array with a null object was read
-
- # predictor 1 == no predictor
- if predictor != 1:
- columns = decodeParms["/Columns"]
- # PNG prediction:
- if predictor >= 10 and predictor <= 15:
- output = StringIO()
- # PNG prediction can vary from row to row
- rowlength = columns + 1
- assert len(data) % rowlength == 0
- prev_rowdata = (0,) * rowlength
- for row in range(len(data) // rowlength):
- rowdata = [ord_(x) for x in data[(row*rowlength):((row+1)*rowlength)]]
- filterByte = rowdata[0]
- if filterByte == 0:
- pass
- elif filterByte == 1:
- for i in range(2, rowlength):
- rowdata[i] = (rowdata[i] + rowdata[i-1]) % 256
- elif filterByte == 2:
- for i in range(1, rowlength):
- rowdata[i] = (rowdata[i] + prev_rowdata[i]) % 256
- else:
- # unsupported PNG filter
- raise PdfReadError("Unsupported PNG filter %r" % filterByte)
- prev_rowdata = rowdata
- output.write(''.join([chr(x) for x in rowdata[1:]]))
- data = output.getvalue()
- else:
- # unsupported predictor
- raise PdfReadError("Unsupported flatedecode predictor %r" % predictor)
- return data
- decode = staticmethod(decode)
-
- def encode(data):
- return compress(data)
- encode = staticmethod(encode)
-
-
-class ASCIIHexDecode(object):
- def decode(data, decodeParms=None):
- retval = ""
- char = ""
- x = 0
- while True:
- c = data[x]
- if c == ">":
- break
- elif c.isspace():
- x += 1
- continue
- char += c
- if len(char) == 2:
- retval += chr(int(char, base=16))
- char = ""
- x += 1
- assert char == ""
- return retval
- decode = staticmethod(decode)
-
-
-class LZWDecode(object):
- """Taken from:
- http://www.java2s.com/Open-Source/Java-Document/PDF/PDF-Renderer/com/sun/pdfview/decode/LZWDecode.java.htm
- """
- class decoder(object):
- def __init__(self, data):
- self.STOP=257
- self.CLEARDICT=256
- self.data=data
- self.bytepos=0
- self.bitpos=0
- self.dict=[""]*4096
- for i in range(256):
- self.dict[i]=chr(i)
- self.resetDict()
-
- def resetDict(self):
- self.dictlen=258
- self.bitspercode=9
-
- def nextCode(self):
- fillbits=self.bitspercode
- value=0
- while fillbits>0 :
- if self.bytepos >= len(self.data):
- return -1
- nextbits=ord(self.data[self.bytepos])
- bitsfromhere=8-self.bitpos
- if bitsfromhere>fillbits:
- bitsfromhere=fillbits
- value |= (((nextbits >> (8-self.bitpos-bitsfromhere)) &
- (0xff >> (8-bitsfromhere))) <<
- (fillbits-bitsfromhere))
- fillbits -= bitsfromhere
- self.bitpos += bitsfromhere
- if self.bitpos >=8:
- self.bitpos=0
- self.bytepos = self.bytepos+1
- return value
-
- def decode(self):
- """ algorithm derived from:
- http://www.rasip.fer.hr/research/compress/algorithms/fund/lz/lzw.html
- and the PDFReference
- """
- cW = self.CLEARDICT;
- baos=""
- while True:
- pW = cW;
- cW = self.nextCode();
- if cW == -1:
- raise PdfReadError("Missed the stop code in LZWDecode!")
- if cW == self.STOP:
- break;
- elif cW == self.CLEARDICT:
- self.resetDict();
- elif pW == self.CLEARDICT:
- baos+=self.dict[cW]
- else:
- if cW < self.dictlen:
- baos += self.dict[cW]
- p=self.dict[pW]+self.dict[cW][0]
- self.dict[self.dictlen]=p
- self.dictlen+=1
- else:
- p=self.dict[pW]+self.dict[pW][0]
- baos+=p
- self.dict[self.dictlen] = p;
- self.dictlen+=1
- if (self.dictlen >= (1 << self.bitspercode) - 1 and
- self.bitspercode < 12):
- self.bitspercode+=1
- return baos
-
- @staticmethod
- def decode(data,decodeParams=None):
- return LZWDecode.decoder(data).decode()
-
-
-class ASCII85Decode(object):
- def decode(data, decodeParms=None):
- if version_info < ( 3, 0 ):
- retval = ""
- group = []
- x = 0
- hitEod = False
- # remove all whitespace from data
- data = [y for y in data if not (y in ' \n\r\t')]
- while not hitEod:
- c = data[x]
- if len(retval) == 0 and c == "<" and data[x+1] == "~":
- x += 2
- continue
- #elif c.isspace():
- # x += 1
- # continue
- elif c == 'z':
- assert len(group) == 0
- retval += '\x00\x00\x00\x00'
- x += 1
- continue
- elif c == "~" and data[x+1] == ">":
- if len(group) != 0:
- # cannot have a final group of just 1 char
- assert len(group) > 1
- cnt = len(group) - 1
- group += [ 85, 85, 85 ]
- hitEod = cnt
- else:
- break
- else:
- c = ord(c) - 33
- assert c >= 0 and c < 85
- group += [ c ]
- if len(group) >= 5:
- b = group[0] * (85**4) + \
- group[1] * (85**3) + \
- group[2] * (85**2) + \
- group[3] * 85 + \
- group[4]
- assert b < (2**32 - 1)
- c4 = chr((b >> 0) % 256)
- c3 = chr((b >> 8) % 256)
- c2 = chr((b >> 16) % 256)
- c1 = chr(b >> 24)
- retval += (c1 + c2 + c3 + c4)
- if hitEod:
- retval = retval[:-4+hitEod]
- group = []
- x += 1
- return retval
- else:
- if isinstance(data, str):
- data = data.encode('ascii')
- n = b = 0
- out = bytearray()
- for c in data:
- if ord('!') <= c and c <= ord('u'):
- n += 1
- b = b*85+(c-33)
- if n == 5:
- out += struct.pack(b'>L',b)
- n = b = 0
- elif c == ord('z'):
- assert n == 0
- out += b'\0\0\0\0'
- elif c == ord('~'):
- if n:
- for _ in range(5-n):
- b = b*85+84
- out += struct.pack(b'>L',b)[:n-1]
- break
- return bytes(out)
- decode = staticmethod(decode)
-
-
-def decodeStreamData(stream):
- from .generic import NameObject
- filters = stream.get("/Filter", ())
- if len(filters) and not isinstance(filters[0], NameObject):
- # we have a single filter instance
- filters = (filters,)
- data = stream._data
- # If there is not data to decode we should not try to decode the data.
- if data:
- for filterType in filters:
- if filterType == "/FlateDecode" or filterType == "/Fl":
- data = FlateDecode.decode(data, stream.get("/DecodeParms"))
- elif filterType == "/ASCIIHexDecode" or filterType == "/AHx":
- data = ASCIIHexDecode.decode(data)
- elif filterType == "/LZWDecode" or filterType == "/LZW":
- data = LZWDecode.decode(data, stream.get("/DecodeParms"))
- elif filterType == "/ASCII85Decode" or filterType == "/A85":
- data = ASCII85Decode.decode(data)
- elif filterType == "/Crypt":
- decodeParams = stream.get("/DecodeParams", {})
- if "/Name" not in decodeParams and "/Type" not in decodeParams:
- pass
- else:
- raise NotImplementedError("/Crypt filter with /Name or /Type not supported yet")
- else:
- # unsupported filter
- raise NotImplementedError("unsupported filter %s" % filterType)
- return data
diff --git a/vendor/PyPDF2/generic.py b/vendor/PyPDF2/generic.py
deleted file mode 100755
index c4332297..00000000
--- a/vendor/PyPDF2/generic.py
+++ /dev/null
@@ -1,1226 +0,0 @@
-# vim: sw=4:expandtab:foldmethod=marker
-#
-# Copyright (c) 2006, Mathieu Fenniak
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-"""
-Implementation of generic PDF objects (dictionary, number, string, and so on)
-"""
-__author__ = "Mathieu Fenniak"
-__author_email__ = "biziqe@mathieu.fenniak.net"
-
-import re
-from .utils import readNonWhitespace, RC4_encrypt, skipOverComment
-from .utils import b_, u_, chr_, ord_
-from .utils import PdfStreamError
-import warnings
-from . import filters
-from . import utils
-import decimal
-import codecs
-import sys
-#import debugging
-
-ObjectPrefix = b_('/<[tf(n%')
-NumberSigns = b_('+-')
-IndirectPattern = re.compile(b_(r"(\d+)\s+(\d+)\s+R[^a-zA-Z]"))
-
-
-def readObject(stream, pdf):
- tok = stream.read(1)
- stream.seek(-1, 1) # reset to start
- idx = ObjectPrefix.find(tok)
- if idx == 0:
- # name object
- return NameObject.readFromStream(stream, pdf)
- elif idx == 1:
- # hexadecimal string OR dictionary
- peek = stream.read(2)
- stream.seek(-2, 1) # reset to start
- if peek == b_('<<'):
- return DictionaryObject.readFromStream(stream, pdf)
- else:
- return readHexStringFromStream(stream)
- elif idx == 2:
- # array object
- return ArrayObject.readFromStream(stream, pdf)
- elif idx == 3 or idx == 4:
- # boolean object
- return BooleanObject.readFromStream(stream)
- elif idx == 5:
- # string object
- return readStringFromStream(stream)
- elif idx == 6:
- # null object
- return NullObject.readFromStream(stream)
- elif idx == 7:
- # comment
- while tok not in (b_('\r'), b_('\n')):
- tok = stream.read(1)
- tok = readNonWhitespace(stream)
- stream.seek(-1, 1)
- return readObject(stream, pdf)
- else:
- # number object OR indirect reference
- if tok in NumberSigns:
- # number
- return NumberObject.readFromStream(stream)
- peek = stream.read(20)
- stream.seek(-len(peek), 1) # reset to start
- if IndirectPattern.match(peek) != None:
- return IndirectObject.readFromStream(stream, pdf)
- else:
- return NumberObject.readFromStream(stream)
-
-
-class PdfObject(object):
- def getObject(self):
- """Resolves indirect references."""
- return self
-
-
-class NullObject(PdfObject):
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("null"))
-
- def readFromStream(stream):
- nulltxt = stream.read(4)
- if nulltxt != b_("null"):
- raise utils.PdfReadError("Could not read Null object")
- return NullObject()
- readFromStream = staticmethod(readFromStream)
-
-
-class BooleanObject(PdfObject):
- def __init__(self, value):
- self.value = value
-
- def writeToStream(self, stream, encryption_key):
- if self.value:
- stream.write(b_("true"))
- else:
- stream.write(b_("false"))
-
- def readFromStream(stream):
- word = stream.read(4)
- if word == b_("true"):
- return BooleanObject(True)
- elif word == b_("fals"):
- stream.read(1)
- return BooleanObject(False)
- else:
- raise utils.PdfReadError('Could not read Boolean object')
- readFromStream = staticmethod(readFromStream)
-
-
-class ArrayObject(list, PdfObject):
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("["))
- for data in self:
- stream.write(b_(" "))
- data.writeToStream(stream, encryption_key)
- stream.write(b_(" ]"))
-
- def readFromStream(stream, pdf):
- arr = ArrayObject()
- tmp = stream.read(1)
- if tmp != b_("["):
- raise utils.PdfReadError("Could not read array")
- while True:
- # skip leading whitespace
- tok = stream.read(1)
- while tok.isspace():
- tok = stream.read(1)
- stream.seek(-1, 1)
- # check for array ending
- peekahead = stream.read(1)
- if peekahead == b_("]"):
- break
- stream.seek(-1, 1)
- # read and append obj
- arr.append(readObject(stream, pdf))
- return arr
- readFromStream = staticmethod(readFromStream)
-
-
-class IndirectObject(PdfObject):
- def __init__(self, idnum, generation, pdf):
- self.idnum = idnum
- self.generation = generation
- self.pdf = pdf
-
- def getObject(self):
- return self.pdf.getObject(self).getObject()
-
- def __repr__(self):
- return "IndirectObject(%r, %r)" % (self.idnum, self.generation)
-
- def __eq__(self, other):
- return (
- other != None and
- isinstance(other, IndirectObject) and
- self.idnum == other.idnum and
- self.generation == other.generation and
- self.pdf is other.pdf
- )
-
- def __ne__(self, other):
- return not self.__eq__(other)
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("%s %s R" % (self.idnum, self.generation)))
-
- def readFromStream(stream, pdf):
- idnum = b_("")
- while True:
- tok = stream.read(1)
- if not tok:
- # stream has truncated prematurely
- raise PdfStreamError("Stream has ended unexpectedly")
- if tok.isspace():
- break
- idnum += tok
- generation = b_("")
- while True:
- tok = stream.read(1)
- if not tok:
- # stream has truncated prematurely
- raise PdfStreamError("Stream has ended unexpectedly")
- if tok.isspace():
- if not generation:
- continue
- break
- generation += tok
- r = readNonWhitespace(stream)
- if r != b_("R"):
- raise utils.PdfReadError("Error reading indirect object reference at byte %s" % utils.hexStr(stream.tell()))
- return IndirectObject(int(idnum), int(generation), pdf)
- readFromStream = staticmethod(readFromStream)
-
-
-class FloatObject(decimal.Decimal, PdfObject):
- def __new__(cls, value="0", context=None):
- try:
- return decimal.Decimal.__new__(cls, utils.str_(value), context)
- except:
- return decimal.Decimal.__new__(cls, str(value))
-
- def __repr__(self):
- if self == self.to_integral():
- return str(self.quantize(decimal.Decimal(1)))
- else:
- # Standard formatting adds useless extraneous zeros.
- o = "%.5f" % self
- # Remove the zeros.
- while o and o[-1] == '0':
- o = o[:-1]
- return o
-
- def as_numeric(self):
- return float(b_(repr(self)))
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_(repr(self)))
-
-
-class NumberObject(int, PdfObject):
- NumberPattern = re.compile(b_('[^+-.0-9]'))
- ByteDot = b_(".")
-
- def __new__(cls, value):
- val = int(value)
- try:
- return int.__new__(cls, val)
- except OverflowError:
- return int.__new__(cls, 0)
-
- def as_numeric(self):
- return int(b_(repr(self)))
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_(repr(self)))
-
- def readFromStream(stream):
- num = utils.readUntilRegex(stream, NumberObject.NumberPattern)
- if num.find(NumberObject.ByteDot) != -1:
- return FloatObject(num)
- else:
- return NumberObject(num)
- readFromStream = staticmethod(readFromStream)
-
-
-##
-# Given a string (either a "str" or "unicode"), create a ByteStringObject or a
-# TextStringObject to represent the string.
-def createStringObject(string):
- if isinstance(string, utils.string_type):
- return TextStringObject(string)
- elif isinstance(string, utils.bytes_type):
- try:
- if string.startswith(codecs.BOM_UTF16_BE):
- retval = TextStringObject(string.decode("utf-16"))
- retval.autodetect_utf16 = True
- return retval
- else:
- # This is probably a big performance hit here, but we need to
- # convert string objects into the text/unicode-aware version if
- # possible... and the only way to check if that's possible is
- # to try. Some strings are strings, some are just byte arrays.
- retval = TextStringObject(decode_pdfdocencoding(string))
- retval.autodetect_pdfdocencoding = True
- return retval
- except UnicodeDecodeError:
- return ByteStringObject(string)
- else:
- raise TypeError("createStringObject should have str or unicode arg")
-
-
-def readHexStringFromStream(stream):
- stream.read(1)
- txt = ""
- x = b_("")
- while True:
- tok = readNonWhitespace(stream)
- if not tok:
- # stream has truncated prematurely
- raise PdfStreamError("Stream has ended unexpectedly")
- if tok == b_(">"):
- break
- x += tok
- if len(x) == 2:
- txt += chr(int(x, base=16))
- x = b_("")
- if len(x) == 1:
- x += b_("0")
- if len(x) == 2:
- txt += chr(int(x, base=16))
- return createStringObject(b_(txt))
-
-
-def readStringFromStream(stream):
- tok = stream.read(1)
- parens = 1
- txt = b_("")
- while True:
- tok = stream.read(1)
- if not tok:
- # stream has truncated prematurely
- raise PdfStreamError("Stream has ended unexpectedly")
- if tok == b_("("):
- parens += 1
- elif tok == b_(")"):
- parens -= 1
- if parens == 0:
- break
- elif tok == b_("\\"):
- tok = stream.read(1)
- if tok == b_("n"):
- tok = b_("\n")
- elif tok == b_("r"):
- tok = b_("\r")
- elif tok == b_("t"):
- tok = b_("\t")
- elif tok == b_("b"):
- tok = b_("\b")
- elif tok == b_("f"):
- tok = b_("\f")
- elif tok == b_("c"):
- tok = b_("\c")
- elif tok == b_("("):
- tok = b_("(")
- elif tok == b_(")"):
- tok = b_(")")
- elif tok == b_("/"):
- tok = b_("/")
- elif tok == b_("\\"):
- tok = b_("\\")
- elif tok in (b_(" "), b_("/"), b_("%"), b_("<"), b_(">"), b_("["),
- b_("]"), b_("#"), b_("_"), b_("&"), b_('$')):
- # odd/unnessecary escape sequences we have encountered
- tok = b_(tok)
- elif tok.isdigit():
- # "The number ddd may consist of one, two, or three
- # octal digits; high-order overflow shall be ignored.
- # Three octal digits shall be used, with leading zeros
- # as needed, if the next character of the string is also
- # a digit." (PDF reference 7.3.4.2, p 16)
- for i in range(2):
- ntok = stream.read(1)
- if ntok.isdigit():
- tok += ntok
- else:
- break
- tok = b_(chr(int(tok, base=8)))
- elif tok in b_("\n\r"):
- # This case is hit when a backslash followed by a line
- # break occurs. If it's a multi-char EOL, consume the
- # second character:
- tok = stream.read(1)
- if not tok in b_("\n\r"):
- stream.seek(-1, 1)
- # Then don't add anything to the actual string, since this
- # line break was escaped:
- tok = b_('')
- else:
- raise utils.PdfReadError(r"Unexpected escaped string: %s" % tok)
- txt += tok
- return createStringObject(txt)
-
-
-##
-# Represents a string object where the text encoding could not be determined.
-# This occurs quite often, as the PDF spec doesn't provide an alternate way to
-# represent strings -- for example, the encryption data stored in files (like
-# /O) is clearly not text, but is still stored in a "String" object.
-class ByteStringObject(utils.bytes_type, PdfObject):
-
- ##
- # For compatibility with TextStringObject.original_bytes. This method
- # returns self.
- original_bytes = property(lambda self: self)
-
- def writeToStream(self, stream, encryption_key):
- bytearr = self
- if encryption_key:
- bytearr = RC4_encrypt(encryption_key, bytearr)
- stream.write(b_("<"))
- stream.write(utils.hexencode(bytearr))
- stream.write(b_(">"))
-
-
-##
-# Represents a string object that has been decoded into a real unicode string.
-# If read from a PDF document, this string appeared to match the
-# PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding to
-# occur.
-class TextStringObject(utils.string_type, PdfObject):
- autodetect_pdfdocencoding = False
- autodetect_utf16 = False
-
- ##
- # It is occasionally possible that a text string object gets created where
- # a byte string object was expected due to the autodetection mechanism --
- # if that occurs, this "original_bytes" property can be used to
- # back-calculate what the original encoded bytes were.
- original_bytes = property(lambda self: self.get_original_bytes())
-
- def get_original_bytes(self):
- # We're a text string object, but the library is trying to get our raw
- # bytes. This can happen if we auto-detected this string as text, but
- # we were wrong. It's pretty common. Return the original bytes that
- # would have been used to create this object, based upon the autodetect
- # method.
- if self.autodetect_utf16:
- return codecs.BOM_UTF16_BE + self.encode("utf-16be")
- elif self.autodetect_pdfdocencoding:
- return encode_pdfdocencoding(self)
- else:
- raise Exception("no information about original bytes")
-
- def writeToStream(self, stream, encryption_key):
- # Try to write the string out as a PDFDocEncoding encoded string. It's
- # nicer to look at in the PDF file. Sadly, we take a performance hit
- # here for trying...
- try:
- bytearr = encode_pdfdocencoding(self)
- except UnicodeEncodeError:
- bytearr = codecs.BOM_UTF16_BE + self.encode("utf-16be")
- if encryption_key:
- bytearr = RC4_encrypt(encryption_key, bytearr)
- obj = ByteStringObject(bytearr)
- obj.writeToStream(stream, None)
- else:
- stream.write(b_("("))
- for c in bytearr:
- if not chr_(c).isalnum() and c != b_(' '):
- stream.write(b_("\\%03o" % ord_(c)))
- else:
- stream.write(b_(chr_(c)))
- stream.write(b_(")"))
-
-
-class NameObject(str, PdfObject):
- delimiterPattern = re.compile(b_(r"\s+|[\(\)<>\[\]{}/%]"))
- surfix = b_("/")
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_(self))
-
- def readFromStream(stream, pdf):
- debug = False
- if debug: print((stream.tell()))
- name = stream.read(1)
- if name != NameObject.surfix:
- raise utils.PdfReadError("name read error")
- name += utils.readUntilRegex(stream, NameObject.delimiterPattern,
- ignore_eof=True)
- if debug: print(name)
- try:
- return NameObject(name.decode('utf-8'))
- except (UnicodeEncodeError, UnicodeDecodeError) as e:
- # Name objects should represent irregular characters
- # with a '#' followed by the symbol's hex number
- if not pdf.strict:
- warnings.warn("Illegal character in Name Object", utils.PdfReadWarning)
- return NameObject(name)
- else:
- raise utils.PdfReadError("Illegal character in Name Object")
-
- readFromStream = staticmethod(readFromStream)
-
-
-class DictionaryObject(dict, PdfObject):
- def raw_get(self, key):
- return dict.__getitem__(self, key)
-
- def __setitem__(self, key, value):
- if not isinstance(key, PdfObject):
- raise ValueError("key must be PdfObject")
- if not isinstance(value, PdfObject):
- raise ValueError("value must be PdfObject")
- return dict.__setitem__(self, key, value)
-
- def setdefault(self, key, value=None):
- if not isinstance(key, PdfObject):
- raise ValueError("key must be PdfObject")
- if not isinstance(value, PdfObject):
- raise ValueError("value must be PdfObject")
- return dict.setdefault(self, key, value)
-
- def __getitem__(self, key):
- return dict.__getitem__(self, key).getObject()
-
- ##
- # Retrieves XMP (Extensible Metadata Platform) data relevant to the
- # this object, if available.
- #
- # Stability: Added in v1.12, will exist for all future v1.x releases.
- # @return Returns a {@link #xmp.XmpInformation XmlInformation} instance
- # that can be used to access XMP metadata from the document. Can also
- # return None if no metadata was found on the document root.
- def getXmpMetadata(self):
- metadata = self.get("/Metadata", None)
- if metadata == None:
- return None
- metadata = metadata.getObject()
- from . import xmp
- if not isinstance(metadata, xmp.XmpInformation):
- metadata = xmp.XmpInformation(metadata)
- self[NameObject("/Metadata")] = metadata
- return metadata
-
- ##
- # Read-only property that accesses the {@link
- # #DictionaryObject.getXmpData getXmpData} function.
- #
- # Stability: Added in v1.12, will exist for all future v1.x releases.
- xmpMetadata = property(lambda self: self.getXmpMetadata(), None, None)
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("<<\n"))
- for key, value in list(self.items()):
- key.writeToStream(stream, encryption_key)
- stream.write(b_(" "))
- value.writeToStream(stream, encryption_key)
- stream.write(b_("\n"))
- stream.write(b_(">>"))
-
- def readFromStream(stream, pdf):
- debug = False
- tmp = stream.read(2)
- if tmp != b_("<<"):
- raise utils.PdfReadError("Dictionary read error at byte %s: stream must begin with '<<'" % utils.hexStr(stream.tell()))
- data = {}
- while True:
- tok = readNonWhitespace(stream)
- if tok == b_('\x00'):
- continue
- elif tok == b_('%'):
- stream.seek(-1, 1)
- skipOverComment(stream)
- continue
- if not tok:
- # stream has truncated prematurely
- raise PdfStreamError("Stream has ended unexpectedly")
-
- if debug: print(("Tok:", tok))
- if tok == b_(">"):
- stream.read(1)
- break
- stream.seek(-1, 1)
- key = readObject(stream, pdf)
- tok = readNonWhitespace(stream)
- stream.seek(-1, 1)
- value = readObject(stream, pdf)
- if not data.get(key):
- data[key] = value
- elif pdf.strict:
- # multiple definitions of key not permitted
- raise utils.PdfReadError("Multiple definitions in dictionary at byte %s for key %s" \
- % (utils.hexStr(stream.tell()), key))
- else:
- warnings.warn("Multiple definitions in dictionary at byte %s for key %s" \
- % (utils.hexStr(stream.tell()), key), utils.PdfReadWarning)
-
- pos = stream.tell()
- s = readNonWhitespace(stream)
- if s == b_('s') and stream.read(5) == b_('tream'):
- eol = stream.read(1)
- # odd PDF file output has spaces after 'stream' keyword but before EOL.
- # patch provided by Danial Sandler
- while eol == b_(' '):
- eol = stream.read(1)
- assert eol in (b_("\n"), b_("\r"))
- if eol == b_("\r"):
- # read \n after
- if stream.read(1) != b_('\n'):
- stream.seek(-1, 1)
- # this is a stream object, not a dictionary
- assert "/Length" in data
- length = data["/Length"]
- if debug: print(data)
- if isinstance(length, IndirectObject):
- t = stream.tell()
- length = pdf.getObject(length)
- stream.seek(t, 0)
- data["__streamdata__"] = stream.read(length)
- if debug: print("here")
- #if debug: print(binascii.hexlify(data["__streamdata__"]))
- e = readNonWhitespace(stream)
- ndstream = stream.read(8)
- if (e + ndstream) != b_("endstream"):
- # (sigh) - the odd PDF file has a length that is too long, so
- # we need to read backwards to find the "endstream" ending.
- # ReportLab (unknown version) generates files with this bug,
- # and Python users into PDF files tend to be our audience.
- # we need to do this to correct the streamdata and chop off
- # an extra character.
- pos = stream.tell()
- stream.seek(-10, 1)
- end = stream.read(9)
- if end == b_("endstream"):
- # we found it by looking back one character further.
- data["__streamdata__"] = data["__streamdata__"][:-1]
- else:
- if debug: print(("E", e, ndstream, debugging.toHex(end)))
- stream.seek(pos, 0)
- raise utils.PdfReadError("Unable to find 'endstream' marker after stream at byte %s." % utils.hexStr(stream.tell()))
- else:
- stream.seek(pos, 0)
- if "__streamdata__" in data:
- return StreamObject.initializeFromDictionary(data)
- else:
- retval = DictionaryObject()
- retval.update(data)
- return retval
- readFromStream = staticmethod(readFromStream)
-
-
-class TreeObject(DictionaryObject):
- def __init__(self):
- DictionaryObject.__init__(self)
-
- def hasChildren(self):
- return '/First' in self
-
- def __iter__(self):
- return self.children()
-
- def children(self):
- if not self.hasChildren():
- raise StopIteration
-
- child = self['/First']
- while True:
- yield child
- if child == self['/Last']:
- raise StopIteration
- child = child['/Next']
-
- def addChild(self, child, pdf):
- childObj = child.getObject()
- child = pdf.getReference(childObj)
- assert isinstance(child, IndirectObject)
-
- if '/First' not in self:
- self[NameObject('/First')] = child
- self[NameObject('/Count')] = NumberObject(0)
- prev = None
- else:
- prev = self['/Last']
-
- self[NameObject('/Last')] = child
- self[NameObject('/Count')] = NumberObject(self[NameObject('/Count')] + 1)
-
- if prev:
- prevRef = pdf.getReference(prev)
- assert isinstance(prevRef, IndirectObject)
- childObj[NameObject('/Prev')] = prevRef
- prev[NameObject('/Next')] = child
-
- parentRef = pdf.getReference(self)
- assert isinstance(parentRef, IndirectObject)
- childObj[NameObject('/Parent')] = parentRef
-
- def removeChild(self, child):
- childObj = child.getObject()
-
- if NameObject('/Parent') not in childObj:
- raise ValueError("Removed child does not appear to be a tree item")
- elif childObj[NameObject('/Parent')] != self:
- raise ValueError("Removed child is not a member of this tree")
-
- found = False
- prevRef = None
- prev = None
- curRef = self[NameObject('/First')]
- cur = curRef.getObject()
- lastRef = self[NameObject('/Last')]
- last = lastRef.getObject()
- while cur != None:
- if cur == childObj:
- if prev == None:
- if NameObject('/Next') in cur:
- # Removing first tree node
- nextRef = cur[NameObject('/Next')]
- next = nextRef.getObject()
- del next[NameObject('/Prev')]
- self[NameObject('/First')] = nextRef
- self[NameObject('/Count')] = self[NameObject('/Count')] - 1
-
- else:
- # Removing only tree node
- assert self[NameObject('/Count')] == 1
- del self[NameObject('/Count')]
- del self[NameObject('/First')]
- if NameObject('/Last') in self:
- del self[NameObject('/Last')]
- else:
- if NameObject('/Next') in cur:
- # Removing middle tree node
- nextRef = cur[NameObject('/Next')]
- next = nextRef.getObject()
- next[NameObject('/Prev')] = prevRef
- prev[NameObject('/Next')] = nextRef
- self[NameObject('/Count')] = self[NameObject('/Count')] - 1
- else:
- # Removing last tree node
- assert cur == last
- del prev[NameObject('/Next')]
- self[NameObject('/Last')] = prevRef
- self[NameObject('/Count')] = self[NameObject('/Count')] - 1
- found = True
- break
-
- prevRef = curRef
- prev = cur
- if NameObject('/Next') in cur:
- curRef = cur[NameObject('/Next')]
- cur = curRef.getObject()
- else:
- curRef = None
- cur = None
-
- if not found:
- raise ValueError("Removal couldn't find item in tree")
-
- del childObj[NameObject('/Parent')]
- if NameObject('/Next') in childObj:
- del childObj[NameObject('/Next')]
- if NameObject('/Prev') in childObj:
- del childObj[NameObject('/Prev')]
-
- def emptyTree(self):
- for child in self:
- childObj = child.getObject()
- del childObj[NameObject('/Parent')]
- if NameObject('/Next') in childObj:
- del childObj[NameObject('/Next')]
- if NameObject('/Prev') in childObj:
- del childObj[NameObject('/Prev')]
-
- if NameObject('/Count') in self:
- del self[NameObject('/Count')]
- if NameObject('/First') in self:
- del self[NameObject('/First')]
- if NameObject('/Last') in self:
- del self[NameObject('/Last')]
-
-
-class StreamObject(DictionaryObject):
- def __init__(self):
- self._data = None
- self.decodedSelf = None
-
- def writeToStream(self, stream, encryption_key):
- self[NameObject("/Length")] = NumberObject(len(self._data))
- DictionaryObject.writeToStream(self, stream, encryption_key)
- del self["/Length"]
- stream.write(b_("\nstream\n"))
- data = self._data
- if encryption_key:
- data = RC4_encrypt(encryption_key, data)
- stream.write(data)
- stream.write(b_("\nendstream"))
-
- def initializeFromDictionary(data):
- if "/Filter" in data:
- retval = EncodedStreamObject()
- else:
- retval = DecodedStreamObject()
- retval._data = data["__streamdata__"]
- del data["__streamdata__"]
- del data["/Length"]
- retval.update(data)
- return retval
- initializeFromDictionary = staticmethod(initializeFromDictionary)
-
- def flateEncode(self):
- if "/Filter" in self:
- f = self["/Filter"]
- if isinstance(f, ArrayObject):
- f.insert(0, NameObject("/FlateDecode"))
- else:
- newf = ArrayObject()
- newf.append(NameObject("/FlateDecode"))
- newf.append(f)
- f = newf
- else:
- f = NameObject("/FlateDecode")
- retval = EncodedStreamObject()
- retval[NameObject("/Filter")] = f
- retval._data = filters.FlateDecode.encode(self._data)
- return retval
-
-
-class DecodedStreamObject(StreamObject):
- def getData(self):
- return self._data
-
- def setData(self, data):
- self._data = data
-
-
-class EncodedStreamObject(StreamObject):
- def __init__(self):
- self.decodedSelf = None
-
- def getData(self):
- if self.decodedSelf:
- # cached version of decoded object
- return self.decodedSelf.getData()
- else:
- # create decoded object
- decoded = DecodedStreamObject()
-
- decoded._data = filters.decodeStreamData(self)
- for key, value in list(self.items()):
- if not key in ("/Length", "/Filter", "/DecodeParms"):
- decoded[key] = value
- self.decodedSelf = decoded
- return decoded._data
-
- def setData(self, data):
- raise utils.PdfReadError("Creating EncodedStreamObject is not currently supported")
-
-
-class RectangleObject(ArrayObject):
- """
- This class is used to represent *page boxes* in PyPDF2. These boxes include:
-
- * :attr:`artBox `
- * :attr:`bleedBox `
- * :attr:`cropBox `
- * :attr:`mediaBox `
- * :attr:`trimBox `
- """
- def __init__(self, arr):
- # must have four points
- assert len(arr) == 4
- # automatically convert arr[x] into NumberObject(arr[x]) if necessary
- ArrayObject.__init__(self, [self.ensureIsNumber(x) for x in arr])
-
- def ensureIsNumber(self, value):
- if not isinstance(value, (NumberObject, FloatObject)):
- value = FloatObject(value)
- return value
-
- def __repr__(self):
- return "RectangleObject(%s)" % repr(list(self))
-
- def getLowerLeft_x(self):
- return self[0]
-
- def getLowerLeft_y(self):
- return self[1]
-
- def getUpperRight_x(self):
- return self[2]
-
- def getUpperRight_y(self):
- return self[3]
-
- def getUpperLeft_x(self):
- return self.getLowerLeft_x()
-
- def getUpperLeft_y(self):
- return self.getUpperRight_y()
-
- def getLowerRight_x(self):
- return self.getUpperRight_x()
-
- def getLowerRight_y(self):
- return self.getLowerLeft_y()
-
- def getLowerLeft(self):
- return self.getLowerLeft_x(), self.getLowerLeft_y()
-
- def getLowerRight(self):
- return self.getLowerRight_x(), self.getLowerRight_y()
-
- def getUpperLeft(self):
- return self.getUpperLeft_x(), self.getUpperLeft_y()
-
- def getUpperRight(self):
- return self.getUpperRight_x(), self.getUpperRight_y()
-
- def setLowerLeft(self, value):
- self[0], self[1] = [self.ensureIsNumber(x) for x in value]
-
- def setLowerRight(self, value):
- self[2], self[1] = [self.ensureIsNumber(x) for x in value]
-
- def setUpperLeft(self, value):
- self[0], self[3] = [self.ensureIsNumber(x) for x in value]
-
- def setUpperRight(self, value):
- self[2], self[3] = [self.ensureIsNumber(x) for x in value]
-
- def getWidth(self):
- return self.getUpperRight_x() - self.getLowerLeft_x()
-
- def getHeight(self):
- return self.getUpperRight_y() - self.getLowerLeft_y()
-
- lowerLeft = property(getLowerLeft, setLowerLeft, None, None)
- """
- Property to read and modify the lower left coordinate of this box
- in (x,y) form.
- """
- lowerRight = property(getLowerRight, setLowerRight, None, None)
- """
- Property to read and modify the lower right coordinate of this box
- in (x,y) form.
- """
- upperLeft = property(getUpperLeft, setUpperLeft, None, None)
- """
- Property to read and modify the upper left coordinate of this box
- in (x,y) form.
- """
- upperRight = property(getUpperRight, setUpperRight, None, None)
- """
- Property to read and modify the upper right coordinate of this box
- in (x,y) form.
- """
-
-
-class Field(TreeObject):
- """
- A class representing a field dictionary. This class is accessed through
- :meth:`getFields()`
- """
- def __init__(self, data):
- DictionaryObject.__init__(self)
- attributes = ("/FT", "/Parent", "/Kids", "/T", "/TU", "/TM", "/Ff",
- "/V", "/DV", "/AA")
- for attr in attributes:
- try:
- self[NameObject(attr)] = data[attr]
- except KeyError:
- pass
-
- fieldType = property(lambda self: self.get("/FT"))
- """
- Read-only property accessing the type of this field.
- """
-
- parent = property(lambda self: self.get("/Parent"))
- """
- Read-only property accessing the parent of this field.
- """
-
- kids = property(lambda self: self.get("/Kids"))
- """
- Read-only property accessing the kids of this field.
- """
-
- name = property(lambda self: self.get("/T"))
- """
- Read-only property accessing the name of this field.
- """
-
- altName = property(lambda self: self.get("/TU"))
- """
- Read-only property accessing the alternate name of this field.
- """
-
- mappingName = property(lambda self: self.get("/TM"))
- """
- Read-only property accessing the mapping name of this field. This
- name is used by PyPDF2 as a key in the dictionary returned by
- :meth:`getFields()`
- """
-
- flags = property(lambda self: self.get("/Ff"))
- """
- Read-only property accessing the field flags, specifying various
- characteristics of the field (see Table 8.70 of the PDF 1.7 reference).
- """
-
- value = property(lambda self: self.get("/V"))
- """
- Read-only property accessing the value of this field. Format
- varies based on field type.
- """
-
- defaultValue = property(lambda self: self.get("/DV"))
- """
- Read-only property accessing the default value of this field.
- """
-
- additionalActions = property(lambda self: self.get("/AA"))
- """
- Read-only property accessing the additional actions dictionary.
- This dictionary defines the field's behavior in response to trigger events.
- See Section 8.5.2 of the PDF 1.7 reference.
- """
-
-
-class Destination(TreeObject):
- """
- A class representing a destination within a PDF file.
- See section 8.2.1 of the PDF 1.6 reference.
-
- :param str title: Title of this destination.
- :param int page: Page number of this destination.
- :param str typ: How the destination is displayed.
- :param args: Additional arguments may be necessary depending on the type.
- :raises PdfReadError: If destination type is invalid.
-
- Valid ``typ`` arguments (see PDF spec for details):
- /Fit No additional arguments
- /XYZ [left] [top] [zoomFactor]
- /FitH [top]
- /FitV [left]
- /FitR [left] [bottom] [right] [top]
- /FitB No additional arguments
- /FitBH [top]
- /FitBV [left]
- """
- def __init__(self, title, page, typ, *args):
- DictionaryObject.__init__(self)
- self[NameObject("/Title")] = title
- self[NameObject("/Page")] = page
- self[NameObject("/Type")] = typ
-
- # from table 8.2 of the PDF 1.7 reference.
- if typ == "/XYZ":
- (self[NameObject("/Left")], self[NameObject("/Top")],
- self[NameObject("/Zoom")]) = args
- elif typ == "/FitR":
- (self[NameObject("/Left")], self[NameObject("/Bottom")],
- self[NameObject("/Right")], self[NameObject("/Top")]) = args
- elif typ in ["/FitH", "/FitBH"]:
- self[NameObject("/Top")], = args
- elif typ in ["/FitV", "/FitBV"]:
- self[NameObject("/Left")], = args
- elif typ in ["/Fit", "/FitB"]:
- pass
- else:
- raise utils.PdfReadError("Unknown Destination Type: %r" % typ)
-
- def getDestArray(self):
- return ArrayObject([self.raw_get('/Page'), self['/Type']] + [self[x] for x in ['/Left', '/Bottom', '/Right', '/Top', '/Zoom'] if x in self])
-
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("<<\n"))
- key = NameObject('/D')
- key.writeToStream(stream, encryption_key)
- stream.write(b_(" "))
- value = self.getDestArray()
- value.writeToStream(stream, encryption_key)
-
- key = NameObject("/S")
- key.writeToStream(stream, encryption_key)
- stream.write(b_(" "))
- value = NameObject("/GoTo")
- value.writeToStream(stream, encryption_key)
-
- stream.write(b_("\n"))
- stream.write(b_(">>"))
-
- title = property(lambda self: self.get("/Title"))
- """
- Read-only property accessing the destination title.
-
- :rtype: str
- """
-
- page = property(lambda self: self.get("/Page"))
- """
- Read-only property accessing the destination page number.
-
- :rtype: int
- """
-
- typ = property(lambda self: self.get("/Type"))
- """
- Read-only property accessing the destination type.
-
- :rtype: str
- """
-
- zoom = property(lambda self: self.get("/Zoom", None))
- """
- Read-only property accessing the zoom factor.
-
- :rtype: int, or ``None`` if not available.
- """
-
- left = property(lambda self: self.get("/Left", None))
- """
- Read-only property accessing the left horizontal coordinate.
-
- :rtype: int, or ``None`` if not available.
- """
-
- right = property(lambda self: self.get("/Right", None))
- """
- Read-only property accessing the right horizontal coordinate.
-
- :rtype: int, or ``None`` if not available.
- """
-
- top = property(lambda self: self.get("/Top", None))
- """
- Read-only property accessing the top vertical coordinate.
-
- :rtype: int, or ``None`` if not available.
- """
-
- bottom = property(lambda self: self.get("/Bottom", None))
- """
- Read-only property accessing the bottom vertical coordinate.
-
- :rtype: int, or ``None`` if not available.
- """
-
-
-class Bookmark(Destination):
- def writeToStream(self, stream, encryption_key):
- stream.write(b_("<<\n"))
- for key in [NameObject(x) for x in ['/Title', '/Parent', '/First', '/Last', '/Next', '/Prev'] if x in self]:
- key.writeToStream(stream, encryption_key)
- stream.write(b_(" "))
- value = self.raw_get(key)
- value.writeToStream(stream, encryption_key)
- stream.write(b_("\n"))
- key = NameObject('/Dest')
- key.writeToStream(stream, encryption_key)
- stream.write(b_(" "))
- value = self.getDestArray()
- value.writeToStream(stream, encryption_key)
- stream.write(b_("\n"))
- stream.write(b_(">>"))
-
-
-def encode_pdfdocencoding(unicode_string):
- retval = b_('')
- for c in unicode_string:
- try:
- retval += b_(chr(_pdfDocEncoding_rev[c]))
- except KeyError:
- raise UnicodeEncodeError("pdfdocencoding", c, -1, -1,
- "does not exist in translation table")
- return retval
-
-
-def decode_pdfdocencoding(byte_array):
- retval = u_('')
- for b in byte_array:
- c = _pdfDocEncoding[ord_(b)]
- if c == u_('\u0000'):
- raise UnicodeDecodeError("pdfdocencoding", utils.barray(b), -1, -1,
- "does not exist in translation table")
- retval += c
- return retval
-
-_pdfDocEncoding = (
- u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'),
- u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'),
- u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'), u_('\u0000'),
- u_('\u02d8'), u_('\u02c7'), u_('\u02c6'), u_('\u02d9'), u_('\u02dd'), u_('\u02db'), u_('\u02da'), u_('\u02dc'),
- u_('\u0020'), u_('\u0021'), u_('\u0022'), u_('\u0023'), u_('\u0024'), u_('\u0025'), u_('\u0026'), u_('\u0027'),
- u_('\u0028'), u_('\u0029'), u_('\u002a'), u_('\u002b'), u_('\u002c'), u_('\u002d'), u_('\u002e'), u_('\u002f'),
- u_('\u0030'), u_('\u0031'), u_('\u0032'), u_('\u0033'), u_('\u0034'), u_('\u0035'), u_('\u0036'), u_('\u0037'),
- u_('\u0038'), u_('\u0039'), u_('\u003a'), u_('\u003b'), u_('\u003c'), u_('\u003d'), u_('\u003e'), u_('\u003f'),
- u_('\u0040'), u_('\u0041'), u_('\u0042'), u_('\u0043'), u_('\u0044'), u_('\u0045'), u_('\u0046'), u_('\u0047'),
- u_('\u0048'), u_('\u0049'), u_('\u004a'), u_('\u004b'), u_('\u004c'), u_('\u004d'), u_('\u004e'), u_('\u004f'),
- u_('\u0050'), u_('\u0051'), u_('\u0052'), u_('\u0053'), u_('\u0054'), u_('\u0055'), u_('\u0056'), u_('\u0057'),
- u_('\u0058'), u_('\u0059'), u_('\u005a'), u_('\u005b'), u_('\u005c'), u_('\u005d'), u_('\u005e'), u_('\u005f'),
- u_('\u0060'), u_('\u0061'), u_('\u0062'), u_('\u0063'), u_('\u0064'), u_('\u0065'), u_('\u0066'), u_('\u0067'),
- u_('\u0068'), u_('\u0069'), u_('\u006a'), u_('\u006b'), u_('\u006c'), u_('\u006d'), u_('\u006e'), u_('\u006f'),
- u_('\u0070'), u_('\u0071'), u_('\u0072'), u_('\u0073'), u_('\u0074'), u_('\u0075'), u_('\u0076'), u_('\u0077'),
- u_('\u0078'), u_('\u0079'), u_('\u007a'), u_('\u007b'), u_('\u007c'), u_('\u007d'), u_('\u007e'), u_('\u0000'),
- u_('\u2022'), u_('\u2020'), u_('\u2021'), u_('\u2026'), u_('\u2014'), u_('\u2013'), u_('\u0192'), u_('\u2044'),
- u_('\u2039'), u_('\u203a'), u_('\u2212'), u_('\u2030'), u_('\u201e'), u_('\u201c'), u_('\u201d'), u_('\u2018'),
- u_('\u2019'), u_('\u201a'), u_('\u2122'), u_('\ufb01'), u_('\ufb02'), u_('\u0141'), u_('\u0152'), u_('\u0160'),
- u_('\u0178'), u_('\u017d'), u_('\u0131'), u_('\u0142'), u_('\u0153'), u_('\u0161'), u_('\u017e'), u_('\u0000'),
- u_('\u20ac'), u_('\u00a1'), u_('\u00a2'), u_('\u00a3'), u_('\u00a4'), u_('\u00a5'), u_('\u00a6'), u_('\u00a7'),
- u_('\u00a8'), u_('\u00a9'), u_('\u00aa'), u_('\u00ab'), u_('\u00ac'), u_('\u0000'), u_('\u00ae'), u_('\u00af'),
- u_('\u00b0'), u_('\u00b1'), u_('\u00b2'), u_('\u00b3'), u_('\u00b4'), u_('\u00b5'), u_('\u00b6'), u_('\u00b7'),
- u_('\u00b8'), u_('\u00b9'), u_('\u00ba'), u_('\u00bb'), u_('\u00bc'), u_('\u00bd'), u_('\u00be'), u_('\u00bf'),
- u_('\u00c0'), u_('\u00c1'), u_('\u00c2'), u_('\u00c3'), u_('\u00c4'), u_('\u00c5'), u_('\u00c6'), u_('\u00c7'),
- u_('\u00c8'), u_('\u00c9'), u_('\u00ca'), u_('\u00cb'), u_('\u00cc'), u_('\u00cd'), u_('\u00ce'), u_('\u00cf'),
- u_('\u00d0'), u_('\u00d1'), u_('\u00d2'), u_('\u00d3'), u_('\u00d4'), u_('\u00d5'), u_('\u00d6'), u_('\u00d7'),
- u_('\u00d8'), u_('\u00d9'), u_('\u00da'), u_('\u00db'), u_('\u00dc'), u_('\u00dd'), u_('\u00de'), u_('\u00df'),
- u_('\u00e0'), u_('\u00e1'), u_('\u00e2'), u_('\u00e3'), u_('\u00e4'), u_('\u00e5'), u_('\u00e6'), u_('\u00e7'),
- u_('\u00e8'), u_('\u00e9'), u_('\u00ea'), u_('\u00eb'), u_('\u00ec'), u_('\u00ed'), u_('\u00ee'), u_('\u00ef'),
- u_('\u00f0'), u_('\u00f1'), u_('\u00f2'), u_('\u00f3'), u_('\u00f4'), u_('\u00f5'), u_('\u00f6'), u_('\u00f7'),
- u_('\u00f8'), u_('\u00f9'), u_('\u00fa'), u_('\u00fb'), u_('\u00fc'), u_('\u00fd'), u_('\u00fe'), u_('\u00ff')
-)
-
-assert len(_pdfDocEncoding) == 256
-
-_pdfDocEncoding_rev = {}
-for i in range(256):
- char = _pdfDocEncoding[i]
- if char == u_("\u0000"):
- continue
- assert char not in _pdfDocEncoding_rev
- _pdfDocEncoding_rev[char] = i
diff --git a/vendor/PyPDF2/merger.py b/vendor/PyPDF2/merger.py
deleted file mode 100755
index 27702add..00000000
--- a/vendor/PyPDF2/merger.py
+++ /dev/null
@@ -1,553 +0,0 @@
-# vim: sw=4:expandtab:foldmethod=marker
-#
-# Copyright (c) 2006, Mathieu Fenniak
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-from .generic import *
-from .utils import isString, str_
-from .pdf import PdfFileReader, PdfFileWriter
-from .pagerange import PageRange
-from sys import version_info
-if version_info < ( 3, 0 ):
- from cStringIO import StringIO
- StreamIO = StringIO
-else:
- from io import BytesIO
- from io import FileIO as file
- StreamIO = BytesIO
-
-
-class _MergedPage(object):
- """
- _MergedPage is used internally by PdfFileMerger to collect necessary
- information on each page that is being merged.
- """
- def __init__(self, pagedata, src, id):
- self.src = src
- self.pagedata = pagedata
- self.out_pagedata = None
- self.id = id
-
-
-class PdfFileMerger(object):
- """
- Initializes a PdfFileMerger object. PdfFileMerger merges multiple PDFs
- into a single PDF. It can concatenate, slice, insert, or any combination
- of the above.
-
- See the functions :meth:`merge()` (or :meth:`append()`)
- and :meth:`write()` for usage information.
-
- :param bool strict: Determines whether user should be warned of all
- problems and also causes some correctable problems to be fatal.
- Defaults to ``True``.
- """
-
- def __init__(self, strict=True):
- self.inputs = []
- self.pages = []
- self.output = PdfFileWriter()
- self.bookmarks = []
- self.named_dests = []
- self.id_count = 0
- self.strict = strict
-
- def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=True):
- """
- Merges the pages from the given file into the output file at the
- specified page number.
-
- :param int position: The *page number* to insert this file. File will
- be inserted after the given number.
-
- :param fileobj: A File Object or an object that supports the standard read
- and seek methods similar to a File Object. Could also be a
- string representing a path to a PDF file.
-
- :param str bookmark: Optionally, you may specify a bookmark to be applied at
- the beginning of the included file by supplying the text of the bookmark.
-
- :param pages: can be a :ref:`Page Range ` or a ``(start, stop[, step])`` tuple
- to merge only the specified range of pages from the source
- document into the output document.
-
- :param bool import_bookmarks: You may prevent the source document's bookmarks
- from being imported by specifying this as ``False``.
- """
-
- # This parameter is passed to self.inputs.append and means
- # that the stream used was created in this method.
- my_file = False
-
- # If the fileobj parameter is a string, assume it is a path
- # and create a file object at that location. If it is a file,
- # copy the file's contents into a BytesIO (or StreamIO) stream object; if
- # it is a PdfFileReader, copy that reader's stream into a
- # BytesIO (or StreamIO) stream.
- # If fileobj is none of the above types, it is not modified
- decryption_key = None
- if isString(fileobj):
- fileobj = file(fileobj, 'rb')
- my_file = True
- elif isinstance(fileobj, file):
- fileobj.seek(0)
- filecontent = fileobj.read()
- fileobj = StreamIO(filecontent)
- my_file = True
- elif isinstance(fileobj, PdfFileReader):
- orig_tell = fileobj.stream.tell()
- fileobj.stream.seek(0)
- filecontent = StreamIO(fileobj.stream.read())
- fileobj.stream.seek(orig_tell) # reset the stream to its original location
- fileobj = filecontent
- if hasattr(fileobj, '_decryption_key'):
- decryption_key = fileobj._decryption_key
- my_file = True
-
- # Create a new PdfFileReader instance using the stream
- # (either file or BytesIO or StringIO) created above
- pdfr = PdfFileReader(fileobj, strict=self.strict)
- if decryption_key is not None:
- pdfr._decryption_key = decryption_key
-
- # Find the range of pages to merge.
- if pages == None:
- pages = (0, pdfr.getNumPages())
- elif isinstance(pages, PageRange):
- pages = pages.indices(pdfr.getNumPages())
- elif not isinstance(pages, tuple):
- raise TypeError('"pages" must be a tuple of (start, stop[, step])')
-
- srcpages = []
- if bookmark:
- bookmark = Bookmark(TextStringObject(bookmark), NumberObject(self.id_count), NameObject('/Fit'))
-
- outline = []
- if import_bookmarks:
- outline = pdfr.getOutlines()
- outline = self._trim_outline(pdfr, outline, pages)
-
- if bookmark:
- self.bookmarks += [bookmark, outline]
- else:
- self.bookmarks += outline
-
- dests = pdfr.namedDestinations
- dests = self._trim_dests(pdfr, dests, pages)
- self.named_dests += dests
-
- # Gather all the pages that are going to be merged
- for i in range(*pages):
- pg = pdfr.getPage(i)
-
- id = self.id_count
- self.id_count += 1
-
- mp = _MergedPage(pg, pdfr, id)
-
- srcpages.append(mp)
-
- self._associate_dests_to_pages(srcpages)
- self._associate_bookmarks_to_pages(srcpages)
-
- # Slice to insert the pages at the specified position
- self.pages[position:position] = srcpages
-
- # Keep track of our input files so we can close them later
- self.inputs.append((fileobj, pdfr, my_file))
-
- def append(self, fileobj, bookmark=None, pages=None, import_bookmarks=True):
- """
- Identical to the :meth:`merge()` method, but assumes you want to concatenate
- all pages onto the end of the file instead of specifying a position.
-
- :param fileobj: A File Object or an object that supports the standard read
- and seek methods similar to a File Object. Could also be a
- string representing a path to a PDF file.
-
- :param str bookmark: Optionally, you may specify a bookmark to be applied at
- the beginning of the included file by supplying the text of the bookmark.
-
- :param pages: can be a :ref:`Page Range ` or a ``(start, stop[, step])`` tuple
- to merge only the specified range of pages from the source
- document into the output document.
-
- :param bool import_bookmarks: You may prevent the source document's bookmarks
- from being imported by specifying this as ``False``.
- """
-
- self.merge(len(self.pages), fileobj, bookmark, pages, import_bookmarks)
-
- def write(self, fileobj):
- """
- Writes all data that has been merged to the given output file.
-
- :param fileobj: Output file. Can be a filename or any kind of
- file-like object.
- """
- my_file = False
- if isString(fileobj):
- fileobj = file(fileobj, 'wb')
- my_file = True
-
- # Add pages to the PdfFileWriter
- # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13
- for page in self.pages:
- self.output.addPage(page.pagedata)
- page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject())
- #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1
- #page.out_pagedata = IndirectObject(idnum, 0, self.output)
-
- # Once all pages are added, create bookmarks to point at those pages
- self._write_dests()
- self._write_bookmarks()
-
- # Write the output to the file
- self.output.write(fileobj)
-
- if my_file:
- fileobj.close()
-
- def close(self):
- """
- Shuts all file descriptors (input and output) and clears all memory
- usage.
- """
- self.pages = []
- for fo, pdfr, mine in self.inputs:
- if mine:
- fo.close()
-
- self.inputs = []
- self.output = None
-
- def addMetadata(self, infos):
- """
- Add custom metadata to the output.
-
- :param dict infos: a Python dictionary where each key is a field
- and each value is your new metadata.
- Example: ``{u'/Title': u'My title'}``
- """
- self.output.addMetadata(infos)
-
- def setPageLayout(self, layout):
- """
- Set the page layout
-
- :param str layout: The page layout to be used
-
- Valid layouts are:
- /NoLayout Layout explicitly not specified
- /SinglePage Show one page at a time
- /OneColumn Show one column at a time
- /TwoColumnLeft Show pages in two columns, odd-numbered pages on the left
- /TwoColumnRight Show pages in two columns, odd-numbered pages on the right
- /TwoPageLeft Show two pages at a time, odd-numbered pages on the left
- /TwoPageRight Show two pages at a time, odd-numbered pages on the right
- """
- self.output.setPageLayout(layout)
-
- def setPageMode(self, mode):
- """
- Set the page mode.
-
- :param str mode: The page mode to use.
-
- Valid modes are:
- /UseNone Do not show outlines or thumbnails panels
- /UseOutlines Show outlines (aka bookmarks) panel
- /UseThumbs Show page thumbnails panel
- /FullScreen Fullscreen view
- /UseOC Show Optional Content Group (OCG) panel
- /UseAttachments Show attachments panel
- """
- self.output.setPageMode(mode)
-
- def _trim_dests(self, pdf, dests, pages):
- """
- Removes any named destinations that are not a part of the specified
- page set.
- """
- new_dests = []
- prev_header_added = True
- for k, o in list(dests.items()):
- for j in range(*pages):
- if pdf.getPage(j).getObject() == o['/Page'].getObject():
- o[NameObject('/Page')] = o['/Page'].getObject()
- assert str_(k) == str_(o['/Title'])
- new_dests.append(o)
- break
- return new_dests
-
- def _trim_outline(self, pdf, outline, pages):
- """
- Removes any outline/bookmark entries that are not a part of the
- specified page set.
- """
- new_outline = []
- prev_header_added = True
- for i, o in enumerate(outline):
- if isinstance(o, list):
- sub = self._trim_outline(pdf, o, pages)
- if sub:
- if not prev_header_added:
- new_outline.append(outline[i-1])
- new_outline.append(sub)
- else:
- prev_header_added = False
- for j in range(*pages):
- if pdf.getPage(j).getObject() == o['/Page'].getObject():
- o[NameObject('/Page')] = o['/Page'].getObject()
- new_outline.append(o)
- prev_header_added = True
- break
- return new_outline
-
- def _write_dests(self):
- dests = self.named_dests
-
- for v in dests:
- pageno = None
- pdf = None
- if '/Page' in v:
- for i, p in enumerate(self.pages):
- if p.id == v['/Page']:
- v[NameObject('/Page')] = p.out_pagedata
- pageno = i
- pdf = p.src
- break
- if pageno != None:
- self.output.addNamedDestinationObject(v)
-
- def _write_bookmarks(self, bookmarks=None, parent=None):
-
- if bookmarks == None:
- bookmarks = self.bookmarks
-
- last_added = None
- for b in bookmarks:
- if isinstance(b, list):
- self._write_bookmarks(b, last_added)
- continue
-
- pageno = None
- pdf = None
- if '/Page' in b:
- for i, p in enumerate(self.pages):
- if p.id == b['/Page']:
- #b[NameObject('/Page')] = p.out_pagedata
- args = [NumberObject(p.id), NameObject(b['/Type'])]
- #nothing more to add
- #if b['/Type'] == '/Fit' or b['/Type'] == '/FitB'
- if b['/Type'] == '/FitH' or b['/Type'] == '/FitBH':
- if '/Top' in b and not isinstance(b['/Top'], NullObject):
- args.append(FloatObject(b['/Top']))
- else:
- args.append(FloatObject(0))
- del b['/Top']
- elif b['/Type'] == '/FitV' or b['/Type'] == '/FitBV':
- if '/Left' in b and not isinstance(b['/Left'], NullObject):
- args.append(FloatObject(b['/Left']))
- else:
- args.append(FloatObject(0))
- del b['/Left']
- elif b['/Type'] == '/XYZ':
- if '/Left' in b and not isinstance(b['/Left'], NullObject):
- args.append(FloatObject(b['/Left']))
- else:
- args.append(FloatObject(0))
- if '/Top' in b and not isinstance(b['/Top'], NullObject):
- args.append(FloatObject(b['/Top']))
- else:
- args.append(FloatObject(0))
- if '/Zoom' in b and not isinstance(b['/Zoom'], NullObject):
- args.append(FloatObject(b['/Zoom']))
- else:
- args.append(FloatObject(0))
- del b['/Top'], b['/Zoom'], b['/Left']
- elif b['/Type'] == '/FitR':
- if '/Left' in b and not isinstance(b['/Left'], NullObject):
- args.append(FloatObject(b['/Left']))
- else:
- args.append(FloatObject(0))
- if '/Bottom' in b and not isinstance(b['/Bottom'], NullObject):
- args.append(FloatObject(b['/Bottom']))
- else:
- args.append(FloatObject(0))
- if '/Right' in b and not isinstance(b['/Right'], NullObject):
- args.append(FloatObject(b['/Right']))
- else:
- args.append(FloatObject(0))
- if '/Top' in b and not isinstance(b['/Top'], NullObject):
- args.append(FloatObject(b['/Top']))
- else:
- args.append(FloatObject(0))
- del b['/Left'], b['/Right'], b['/Bottom'], b['/Top']
-
- b[NameObject('/A')] = DictionaryObject({NameObject('/S'): NameObject('/GoTo'), NameObject('/D'): ArrayObject(args)})
-
- pageno = i
- pdf = p.src
- break
- if pageno != None:
- del b['/Page'], b['/Type']
- last_added = self.output.addBookmarkDict(b, parent)
-
- def _associate_dests_to_pages(self, pages):
- for nd in self.named_dests:
- pageno = None
- np = nd['/Page']
-
- if isinstance(np, NumberObject):
- continue
-
- for p in pages:
- if np.getObject() == p.pagedata.getObject():
- pageno = p.id
-
- if pageno != None:
- nd[NameObject('/Page')] = NumberObject(pageno)
- else:
- raise ValueError("Unresolved named destination '%s'" % (nd['/Title'],))
-
- def _associate_bookmarks_to_pages(self, pages, bookmarks=None):
- if bookmarks == None:
- bookmarks = self.bookmarks
-
- for b in bookmarks:
- if isinstance(b, list):
- self._associate_bookmarks_to_pages(pages, b)
- continue
-
- pageno = None
- bp = b['/Page']
-
- if isinstance(bp, NumberObject):
- continue
-
- for p in pages:
- if bp.getObject() == p.pagedata.getObject():
- pageno = p.id
-
- if pageno != None:
- b[NameObject('/Page')] = NumberObject(pageno)
- else:
- raise ValueError("Unresolved bookmark '%s'" % (b['/Title'],))
-
- def findBookmark(self, bookmark, root=None):
- if root == None:
- root = self.bookmarks
-
- for i, b in enumerate(root):
- if isinstance(b, list):
- res = self.findBookmark(bookmark, b)
- if res:
- return [i] + res
- elif b == bookmark or b['/Title'] == bookmark:
- return [i]
-
- return None
-
- def addBookmark(self, title, pagenum, parent=None):
- """
- Add a bookmark to this PDF file.
-
- :param str title: Title to use for this bookmark.
- :param int pagenum: Page number this bookmark will point to.
- :param parent: A reference to a parent bookmark to create nested
- bookmarks.
- """
- if parent == None:
- iloc = [len(self.bookmarks)-1]
- elif isinstance(parent, list):
- iloc = parent
- else:
- iloc = self.findBookmark(parent)
-
- dest = Bookmark(TextStringObject(title), NumberObject(pagenum), NameObject('/FitH'), NumberObject(826))
-
- if parent == None:
- self.bookmarks.append(dest)
- else:
- bmparent = self.bookmarks
- for i in iloc[:-1]:
- bmparent = bmparent[i]
- npos = iloc[-1]+1
- if npos < len(bmparent) and isinstance(bmparent[npos], list):
- bmparent[npos].append(dest)
- else:
- bmparent.insert(npos, [dest])
- return dest
-
- def addNamedDestination(self, title, pagenum):
- """
- Add a destination to the output.
-
- :param str title: Title to use
- :param int pagenum: Page number this destination points at.
- """
-
- dest = Destination(TextStringObject(title), NumberObject(pagenum), NameObject('/FitH'), NumberObject(826))
- self.named_dests.append(dest)
-
-
-class OutlinesObject(list):
- def __init__(self, pdf, tree, parent=None):
- list.__init__(self)
- self.tree = tree
- self.pdf = pdf
- self.parent = parent
-
- def remove(self, index):
- obj = self[index]
- del self[index]
- self.tree.removeChild(obj)
-
- def add(self, title, pagenum):
- pageRef = self.pdf.getObject(self.pdf._pages)['/Kids'][pagenum]
- action = DictionaryObject()
- action.update({
- NameObject('/D') : ArrayObject([pageRef, NameObject('/FitH'), NumberObject(826)]),
- NameObject('/S') : NameObject('/GoTo')
- })
- actionRef = self.pdf._addObject(action)
- bookmark = TreeObject()
-
- bookmark.update({
- NameObject('/A'): actionRef,
- NameObject('/Title'): createStringObject(title),
- })
-
- self.pdf._addObject(bookmark)
-
- self.tree.addChild(bookmark)
-
- def removeAll(self):
- for child in [x for x in self.tree.children()]:
- self.tree.removeChild(child)
- self.pop()
diff --git a/vendor/PyPDF2/pagerange.py b/vendor/PyPDF2/pagerange.py
deleted file mode 100755
index ce96ec5f..00000000
--- a/vendor/PyPDF2/pagerange.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/env python
-"""
-Representation and utils for ranges of PDF file pages.
-
-Copyright (c) 2014, Steve Witham .
-All rights reserved. This software is available under a BSD license;
-see https://github.com/mstamy2/PyPDF2/blob/master/LICENSE
-"""
-
-import re
-from .utils import isString
-
-_INT_RE = r"(0|-?[1-9]\d*)" # A decimal int, don't allow "-0".
-PAGE_RANGE_RE = "^({int}|({int}?(:{int}?(:{int}?)?)))$".format(int=_INT_RE)
-# groups: 12 34 5 6 7 8
-
-
-class ParseError(Exception):
- pass
-
-
-PAGE_RANGE_HELP = """Remember, page indices start with zero.
- Page range expression examples:
- : all pages. -1 last page.
- 22 just the 23rd page. :-1 all but the last page.
- 0:3 the first three pages. -2 second-to-last page.
- :3 the first three pages. -2: last two pages.
- 5: from the sixth page onward. -3:-1 third & second to last.
- The third, "stride" or "step" number is also recognized.
- ::2 0 2 4 ... to the end. 3:0:-1 3 2 1 but not 0.
- 1:10:2 1 3 5 7 9 2::-1 2 1 0.
- ::-1 all pages in reverse order.
-"""
-
-
-class PageRange(object):
- """
- A slice-like representation of a range of page indices,
- i.e. page numbers, only starting at zero.
- The syntax is like what you would put between brackets [ ].
- The slice is one of the few Python types that can't be subclassed,
- but this class converts to and from slices, and allows similar use.
- o PageRange(str) parses a string representing a page range.
- o PageRange(slice) directly "imports" a slice.
- o to_slice() gives the equivalent slice.
- o str() and repr() allow printing.
- o indices(n) is like slice.indices(n).
- """
-
- def __init__(self, arg):
- """
- Initialize with either a slice -- giving the equivalent page range,
- or a PageRange object -- making a copy,
- or a string like
- "int", "[int]:[int]" or "[int]:[int]:[int]",
- where the brackets indicate optional ints.
- {page_range_help}
- Note the difference between this notation and arguments to slice():
- slice(3) means the first three pages;
- PageRange("3") means the range of only the fourth page.
- However PageRange(slice(3)) means the first three pages.
- """
- if isinstance(arg, slice):
- self._slice = arg
- return
-
- if isinstance(arg, PageRange):
- self._slice = arg.to_slice()
- return
-
- m = isString(arg) and re.match(PAGE_RANGE_RE, arg)
- if not m:
- raise ParseError(arg)
- elif m.group(2):
- # Special case: just an int means a range of one page.
- start = int(m.group(2))
- stop = start + 1 if start != -1 else None
- self._slice = slice(start, stop)
- else:
- self._slice = slice(*[int(g) if g else None
- for g in m.group(4, 6, 8)])
-
- # Just formatting this when there is __doc__ for __init__
- if __init__.__doc__:
- __init__.__doc__ = __init__.__doc__.format(page_range_help=PAGE_RANGE_HELP)
-
- @staticmethod
- def valid(input):
- """ True if input is a valid initializer for a PageRange. """
- return isinstance(input, slice) or \
- isinstance(input, PageRange) or \
- (isString(input)
- and bool(re.match(PAGE_RANGE_RE, input)))
-
- def to_slice(self):
- """ Return the slice equivalent of this page range. """
- return self._slice
-
- def __str__(self):
- """ A string like "1:2:3". """
- s = self._slice
- if s.step == None:
- if s.start != None and s.stop == s.start + 1:
- return str(s.start)
-
- indices = s.start, s.stop
- else:
- indices = s.start, s.stop, s.step
- return ':'.join("" if i == None else str(i) for i in indices)
-
- def __repr__(self):
- """ A string like "PageRange('1:2:3')". """
- return "PageRange(" + repr(str(self)) + ")"
-
- def indices(self, n):
- """
- n is the length of the list of pages to choose from.
- Returns arguments for range(). See help(slice.indices).
- """
- return self._slice.indices(n)
-
-
-PAGE_RANGE_ALL = PageRange(":") # The range of all pages.
-
-
-def parse_filename_page_ranges(args):
- """
- Given a list of filenames and page ranges, return a list of
- (filename, page_range) pairs.
- First arg must be a filename; other ags are filenames, page-range
- expressions, slice objects, or PageRange objects.
- A filename not followed by a page range indicates all pages of the file.
- """
- pairs = []
- pdf_filename = None
- did_page_range = False
- for arg in args + [None]:
- if PageRange.valid(arg):
- if not pdf_filename:
- raise ValueError("The first argument must be a filename, " \
- "not a page range.")
-
- pairs.append( (pdf_filename, PageRange(arg)) )
- did_page_range = True
- else:
- # New filename or end of list--do all of the previous file?
- if pdf_filename and not did_page_range:
- pairs.append( (pdf_filename, PAGE_RANGE_ALL) )
-
- pdf_filename = arg
- did_page_range = False
- return pairs
diff --git a/vendor/PyPDF2/pdf.py b/vendor/PyPDF2/pdf.py
deleted file mode 100755
index 9979414f..00000000
--- a/vendor/PyPDF2/pdf.py
+++ /dev/null
@@ -1,3004 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# vim: sw=4:expandtab:foldmethod=marker
-#
-# Copyright (c) 2006, Mathieu Fenniak
-# Copyright (c) 2007, Ashish Kulkarni
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-"""
-A pure-Python PDF library with an increasing number of capabilities.
-See README for links to FAQ, documentation, homepage, etc.
-"""
-
-__author__ = "Mathieu Fenniak"
-__author_email__ = "biziqe@mathieu.fenniak.net"
-
-__maintainer__ = "Phaseit, Inc."
-__maintainer_email = "PyPDF2@phaseit.net"
-
-import string
-import math
-import struct
-import sys
-import uuid
-from sys import version_info
-if version_info < ( 3, 0 ):
- from cStringIO import StringIO
-else:
- from io import StringIO
-
-if version_info < ( 3, 0 ):
- BytesIO = StringIO
-else:
- from io import BytesIO
-
-from . import filters
-from . import utils
-import warnings
-import codecs
-from .generic import *
-from .utils import readNonWhitespace, readUntilWhitespace, ConvertFunctionsToVirtualList
-from .utils import isString, b_, u_, ord_, chr_, str_, formatWarning
-
-if version_info < ( 2, 4 ):
- from sets import ImmutableSet as frozenset
-
-if version_info < ( 2, 5 ):
- from md5 import md5
-else:
- from hashlib import md5
-import uuid
-
-
-class PdfFileWriter(object):
- """
- This class supports writing PDF files out, given pages produced by another
- class (typically :class:`PdfFileReader`).
- """
- def __init__(self):
- self._header = b_("%PDF-1.3")
- self._objects = [] # array of indirect objects
-
- # The root of our page tree node.
- pages = DictionaryObject()
- pages.update({
- NameObject("/Type"): NameObject("/Pages"),
- NameObject("/Count"): NumberObject(0),
- NameObject("/Kids"): ArrayObject(),
- })
- self._pages = self._addObject(pages)
-
- # info object
- info = DictionaryObject()
- info.update({
- NameObject("/Producer"): createStringObject(codecs.BOM_UTF16_BE + u_("PyPDF2").encode('utf-16be'))
- })
- self._info = self._addObject(info)
-
- # root object
- root = DictionaryObject()
- root.update({
- NameObject("/Type"): NameObject("/Catalog"),
- NameObject("/Pages"): self._pages,
- })
- self._root = None
- self._root_object = root
-
- def _addObject(self, obj):
- self._objects.append(obj)
- return IndirectObject(len(self._objects), 0, self)
-
- def getObject(self, ido):
- if ido.pdf != self:
- raise ValueError("pdf must be self")
- return self._objects[ido.idnum - 1]
-
- def _addPage(self, page, action):
- assert page["/Type"] == "/Page"
- page[NameObject("/Parent")] = self._pages
- page = self._addObject(page)
- pages = self.getObject(self._pages)
- action(pages["/Kids"], page)
- pages[NameObject("/Count")] = NumberObject(pages["/Count"] + 1)
-
- def addPage(self, page):
- """
- Adds a page to this PDF file. The page is usually acquired from a
- :class:`PdfFileReader` instance.
-
- :param PageObject page: The page to add to the document. Should be
- an instance of :class:`PageObject`
- """
- self._addPage(page, list.append)
-
- def insertPage(self, page, index=0):
- """
- Insert a page in this PDF file. The page is usually acquired from a
- :class:`PdfFileReader` instance.
-
- :param PageObject page: The page to add to the document. This
- argument should be an instance of :class:`PageObject`.
- :param int index: Position at which the page will be inserted.
- """
- self._addPage(page, lambda l, p: l.insert(index, p))
-
- def getPage(self, pageNumber):
- """
- Retrieves a page by number from this PDF file.
-
- :param int pageNumber: The page number to retrieve
- (pages begin at zero)
- :return: the page at the index given by *pageNumber*
- :rtype: :class:`PageObject`
- """
- pages = self.getObject(self._pages)
- # XXX: crude hack
- return pages["/Kids"][pageNumber].getObject()
-
- def getNumPages(self):
- """
- :return: the number of pages.
- :rtype: int
- """
- pages = self.getObject(self._pages)
- return int(pages[NameObject("/Count")])
-
- def addBlankPage(self, width=None, height=None):
- """
- Appends a blank page to this PDF file and returns it. If no page size
- is specified, use the size of the last page.
-
- :param float width: The width of the new page expressed in default user
- space units.
- :param float height: The height of the new page expressed in default
- user space units.
- :return: the newly appended page
- :rtype: :class:`PageObject`
- :raises PageSizeNotDefinedError: if width and height are not defined
- and previous page does not exist.
- """
- page = PageObject.createBlankPage(self, width, height)
- self.addPage(page)
- return page
-
- def insertBlankPage(self, width=None, height=None, index=0):
- """
- Inserts a blank page to this PDF file and returns it. If no page size
- is specified, use the size of the last page.
-
- :param float width: The width of the new page expressed in default user
- space units.
- :param float height: The height of the new page expressed in default
- user space units.
- :param int index: Position to add the page.
- :return: the newly appended page
- :rtype: :class:`PageObject`
- :raises PageSizeNotDefinedError: if width and height are not defined
- and previous page does not exist.
- """
- if width is None or height is None and \
- (self.getNumPages() - 1) >= index:
- oldpage = self.getPage(index)
- width = oldpage.mediaBox.getWidth()
- height = oldpage.mediaBox.getHeight()
- page = PageObject.createBlankPage(self, width, height)
- self.insertPage(page, index)
- return page
-
- def addJS(self, javascript):
- """
- Add Javascript which will launch upon opening this PDF.
-
- :param str javascript: Your Javascript.
-
- >>> output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});")
- # Example: This will launch the print window when the PDF is opened.
- """
- js = DictionaryObject()
- js.update({
- NameObject("/Type"): NameObject("/Action"),
- NameObject("/S"): NameObject("/JavaScript"),
- NameObject("/JS"): NameObject("(%s)" % javascript)
- })
- js_indirect_object = self._addObject(js)
-
- # We need a name for parameterized javascript in the pdf file, but it can be anything.
- js_string_name = str(uuid.uuid4())
-
- js_name_tree = DictionaryObject()
- js_name_tree.update({
- NameObject("/JavaScript"): DictionaryObject({
- NameObject("/Names"): ArrayObject([createStringObject(js_string_name), js_indirect_object])
- })
- })
- self._addObject(js_name_tree)
-
- self._root_object.update({
- NameObject("/OpenAction"): js_indirect_object,
- NameObject("/Names"): js_name_tree
- })
-
- def addAttachment(self, fname, fdata):
- """
- Embed a file inside the PDF.
-
- :param str fname: The filename to display.
- :param str fdata: The data in the file.
-
- Reference:
- https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
- Section 7.11.3
- """
-
- # We need 3 entries:
- # * The file's data
- # * The /Filespec entry
- # * The file's name, which goes in the Catalog
-
-
- # The entry for the file
- """ Sample:
- 8 0 obj
- <<
- /Length 12
- /Type /EmbeddedFile
- >>
- stream
- Hello world!
- endstream
- endobj
- """
- file_entry = DecodedStreamObject()
- file_entry.setData(fdata)
- file_entry.update({
- NameObject("/Type"): NameObject("/EmbeddedFile")
- })
-
- # The Filespec entry
- """ Sample:
- 7 0 obj
- <<
- /Type /Filespec
- /F (hello.txt)
- /EF << /F 8 0 R >>
- >>
- """
- efEntry = DictionaryObject()
- efEntry.update({ NameObject("/F"):file_entry })
-
- filespec = DictionaryObject()
- filespec.update({
- NameObject("/Type"): NameObject("/Filespec"),
- NameObject("/F"): createStringObject(fname), # Perhaps also try TextStringObject
- NameObject("/EF"): efEntry
- })
-
- # Then create the entry for the root, as it needs a reference to the Filespec
- """ Sample:
- 1 0 obj
- <<
- /Type /Catalog
- /Outlines 2 0 R
- /Pages 3 0 R
- /Names << /EmbeddedFiles << /Names [(hello.txt) 7 0 R] >> >>
- >>
- endobj
-
- """
- embeddedFilesNamesDictionary = DictionaryObject()
- embeddedFilesNamesDictionary.update({
- NameObject("/Names"): ArrayObject([createStringObject(fname), filespec])
- })
-
- embeddedFilesDictionary = DictionaryObject()
- embeddedFilesDictionary.update({
- NameObject("/EmbeddedFiles"): embeddedFilesNamesDictionary
- })
- # Update the root
- self._root_object.update({
- NameObject("/Names"): embeddedFilesDictionary
- })
-
- def appendPagesFromReader(self, reader, after_page_append=None):
- """
- Copy pages from reader to writer. Includes an optional callback parameter
- which is invoked after pages are appended to the writer.
-
- :param reader: a PdfFileReader object from which to copy page
- annotations to this writer object. The writer's annots
- will then be updated
- :callback after_page_append (function): Callback function that is invoked after
- each page is appended to the writer. Callback signature:
-
- :param writer_pageref (PDF page reference): Reference to the page
- appended to the writer.
- """
- # Get page count from writer and reader
- reader_num_pages = reader.getNumPages()
- writer_num_pages = self.getNumPages()
-
- # Copy pages from reader to writer
- for rpagenum in range(0, reader_num_pages):
- reader_page = reader.getPage(rpagenum)
- self.addPage(reader_page)
- writer_page = self.getPage(writer_num_pages+rpagenum)
- # Trigger callback, pass writer page as parameter
- if callable(after_page_append): after_page_append(writer_page)
-
- def updatePageFormFieldValues(self, page, fields):
- '''
- Update the form field values for a given page from a fields dictionary.
- Copy field texts and values from fields to page.
-
- :param page: Page reference from PDF writer where the annotations
- and field data will be updated.
- :param fields: a Python dictionary of field names (/T) and text
- values (/V)
- '''
- # Iterate through pages, update field values
- for j in range(0, len(page['/Annots'])):
- writer_annot = page['/Annots'][j].getObject()
- for field in fields:
- if writer_annot.get('/T') == field:
- writer_annot.update({
- NameObject("/V"): TextStringObject(fields[field])
- })
-
- def cloneReaderDocumentRoot(self, reader):
- '''
- Copy the reader document root to the writer.
-
- :param reader: PdfFileReader from the document root should be copied.
- :callback after_page_append
- '''
- self._root_object = reader.trailer['/Root']
-
- def cloneDocumentFromReader(self, reader, after_page_append=None):
- '''
- Create a copy (clone) of a document from a PDF file reader
-
- :param reader: PDF file reader instance from which the clone
- should be created.
- :callback after_page_append (function): Callback function that is invoked after
- each page is appended to the writer. Signature includes a reference to the
- appended page (delegates to appendPagesFromReader). Callback signature:
-
- :param writer_pageref (PDF page reference): Reference to the page just
- appended to the document.
- '''
- self.cloneReaderDocumentRoot(reader)
- self.appendPagesFromReader(reader, after_page_append)
-
- def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True):
- """
- Encrypt this PDF file with the PDF Standard encryption handler.
-
- :param str user_pwd: The "user password", which allows for opening
- and reading the PDF file with the restrictions provided.
- :param str owner_pwd: The "owner password", which allows for
- opening the PDF files without any restrictions. By default,
- the owner password is the same as the user password.
- :param bool use_128bit: flag as to whether to use 128bit
- encryption. When false, 40bit encryption will be used. By default,
- this flag is on.
- """
- import time, random
- if owner_pwd == None:
- owner_pwd = user_pwd
- if use_128bit:
- V = 2
- rev = 3
- keylen = int(128 / 8)
- else:
- V = 1
- rev = 2
- keylen = int(40 / 8)
- # permit everything:
- P = -1
- O = ByteStringObject(_alg33(owner_pwd, user_pwd, rev, keylen))
- ID_1 = ByteStringObject(md5(b_(repr(time.time()))).digest())
- ID_2 = ByteStringObject(md5(b_(repr(random.random()))).digest())
- self._ID = ArrayObject((ID_1, ID_2))
- if rev == 2:
- U, key = _alg34(user_pwd, O, P, ID_1)
- else:
- assert rev == 3
- U, key = _alg35(user_pwd, rev, keylen, O, P, ID_1, False)
- encrypt = DictionaryObject()
- encrypt[NameObject("/Filter")] = NameObject("/Standard")
- encrypt[NameObject("/V")] = NumberObject(V)
- if V == 2:
- encrypt[NameObject("/Length")] = NumberObject(keylen * 8)
- encrypt[NameObject("/R")] = NumberObject(rev)
- encrypt[NameObject("/O")] = ByteStringObject(O)
- encrypt[NameObject("/U")] = ByteStringObject(U)
- encrypt[NameObject("/P")] = NumberObject(P)
- self._encrypt = self._addObject(encrypt)
- self._encrypt_key = key
-
- def write(self, stream):
- """
- Writes the collection of pages added to this object out as a PDF file.
-
- :param stream: An object to write the file to. The object must support
- the write method and the tell method, similar to a file object.
- """
- if hasattr(stream, 'mode') and 'b' not in stream.mode:
- warnings.warn("File <%s> to write to is not in binary mode. It may not be written to correctly." % stream.name)
- debug = False
- import struct
-
- if not self._root:
- self._root = self._addObject(self._root_object)
-
- externalReferenceMap = {}
-
- # PDF objects sometimes have circular references to their /Page objects
- # inside their object tree (for example, annotations). Those will be
- # indirect references to objects that we've recreated in this PDF. To
- # address this problem, PageObject's store their original object
- # reference number, and we add it to the external reference map before
- # we sweep for indirect references. This forces self-page-referencing
- # trees to reference the correct new object location, rather than
- # copying in a new copy of the page object.
- for objIndex in range(len(self._objects)):
- obj = self._objects[objIndex]
- if isinstance(obj, PageObject) and obj.indirectRef != None:
- data = obj.indirectRef
- if data.pdf not in externalReferenceMap:
- externalReferenceMap[data.pdf] = {}
- if data.generation not in externalReferenceMap[data.pdf]:
- externalReferenceMap[data.pdf][data.generation] = {}
- externalReferenceMap[data.pdf][data.generation][data.idnum] = IndirectObject(objIndex + 1, 0, self)
-
- self.stack = []
- if debug: print(("ERM:", externalReferenceMap, "root:", self._root))
- self._sweepIndirectReferences(externalReferenceMap, self._root)
- del self.stack
-
- # Begin writing:
- object_positions = []
- stream.write(self._header + b_("\n"))
- for i in range(len(self._objects)):
- idnum = (i + 1)
- obj = self._objects[i]
- object_positions.append(stream.tell())
- stream.write(b_(str(idnum) + " 0 obj\n"))
- key = None
- if hasattr(self, "_encrypt") and idnum != self._encrypt.idnum:
- pack1 = struct.pack("` for details.
- """
- pageRef = self.getObject(self._pages)['/Kids'][pagenum]
- action = DictionaryObject()
- zoomArgs = []
- for a in args:
- if a is not None:
- zoomArgs.append(NumberObject(a))
- else:
- zoomArgs.append(NullObject())
- dest = Destination(NameObject("/"+title + " bookmark"), pageRef, NameObject(fit), *zoomArgs)
- destArray = dest.getDestArray()
- action.update({
- NameObject('/D') : destArray,
- NameObject('/S') : NameObject('/GoTo')
- })
- actionRef = self._addObject(action)
-
- outlineRef = self.getOutlineRoot()
-
- if parent == None:
- parent = outlineRef
-
- bookmark = TreeObject()
-
- bookmark.update({
- NameObject('/A'): actionRef,
- NameObject('/Title'): createStringObject(title),
- })
-
- if color is not None:
- bookmark.update({NameObject('/C'): ArrayObject([FloatObject(c) for c in color])})
-
- format = 0
- if italic:
- format += 1
- if bold:
- format += 2
- if format:
- bookmark.update({NameObject('/F'): NumberObject(format)})
-
- bookmarkRef = self._addObject(bookmark)
-
- parent = parent.getObject()
- parent.addChild(bookmarkRef, self)
-
- return bookmarkRef
-
- def addNamedDestinationObject(self, dest):
- destRef = self._addObject(dest)
-
- nd = self.getNamedDestRoot()
- nd.extend([dest['/Title'], destRef])
-
- return destRef
-
- def addNamedDestination(self, title, pagenum):
- pageRef = self.getObject(self._pages)['/Kids'][pagenum]
- dest = DictionaryObject()
- dest.update({
- NameObject('/D') : ArrayObject([pageRef, NameObject('/FitH'), NumberObject(826)]),
- NameObject('/S') : NameObject('/GoTo')
- })
-
- destRef = self._addObject(dest)
- nd = self.getNamedDestRoot()
-
- nd.extend([title, destRef])
-
- return destRef
-
- def removeLinks(self):
- """
- Removes links and annotations from this output.
- """
- pages = self.getObject(self._pages)['/Kids']
- for page in pages:
- pageRef = self.getObject(page)
- if "/Annots" in pageRef:
- del pageRef['/Annots']
-
- def removeImages(self, ignoreByteStringObject=False):
- """
- Removes images from this output.
-
- :param bool ignoreByteStringObject: optional parameter
- to ignore ByteString Objects.
- """
- pages = self.getObject(self._pages)['/Kids']
- for j in range(len(pages)):
- page = pages[j]
- pageRef = self.getObject(page)
- content = pageRef['/Contents'].getObject()
- if not isinstance(content, ContentStream):
- content = ContentStream(content, pageRef)
-
- _operations = []
- seq_graphics = False
- for operands, operator in content.operations:
- if operator == b_('Tj'):
- text = operands[0]
- if ignoreByteStringObject:
- if not isinstance(text, TextStringObject):
- operands[0] = TextStringObject()
- elif operator == b_("'"):
- text = operands[0]
- if ignoreByteStringObject:
- if not isinstance(text, TextStringObject):
- operands[0] = TextStringObject()
- elif operator == b_('"'):
- text = operands[2]
- if ignoreByteStringObject:
- if not isinstance(text, TextStringObject):
- operands[2] = TextStringObject()
- elif operator == b_("TJ"):
- for i in range(len(operands[0])):
- if ignoreByteStringObject:
- if not isinstance(operands[0][i], TextStringObject):
- operands[0][i] = TextStringObject()
-
- if operator == b_('q'):
- seq_graphics = True
- if operator == b_('Q'):
- seq_graphics = False
- if seq_graphics:
- if operator in [b_('cm'), b_('w'), b_('J'), b_('j'), b_('M'), b_('d'), b_('ri'), b_('i'),
- b_('gs'), b_('W'), b_('b'), b_('s'), b_('S'), b_('f'), b_('F'), b_('n'), b_('m'), b_('l'),
- b_('c'), b_('v'), b_('y'), b_('h'), b_('B'), b_('Do'), b_('sh')]:
- continue
- if operator == b_('re'):
- continue
- _operations.append((operands, operator))
-
- content.operations = _operations
- pageRef.__setitem__(NameObject('/Contents'), content)
-
- def removeText(self, ignoreByteStringObject=False):
- """
- Removes images from this output.
-
- :param bool ignoreByteStringObject: optional parameter
- to ignore ByteString Objects.
- """
- pages = self.getObject(self._pages)['/Kids']
- for j in range(len(pages)):
- page = pages[j]
- pageRef = self.getObject(page)
- content = pageRef['/Contents'].getObject()
- if not isinstance(content, ContentStream):
- content = ContentStream(content, pageRef)
- for operands,operator in content.operations:
- if operator == b_('Tj'):
- text = operands[0]
- if not ignoreByteStringObject:
- if isinstance(text, TextStringObject):
- operands[0] = TextStringObject()
- else:
- if isinstance(text, TextStringObject) or \
- isinstance(text, ByteStringObject):
- operands[0] = TextStringObject()
- elif operator == b_("'"):
- text = operands[0]
- if not ignoreByteStringObject:
- if isinstance(text, TextStringObject):
- operands[0] = TextStringObject()
- else:
- if isinstance(text, TextStringObject) or \
- isinstance(text, ByteStringObject):
- operands[0] = TextStringObject()
- elif operator == b_('"'):
- text = operands[2]
- if not ignoreByteStringObject:
- if isinstance(text, TextStringObject):
- operands[2] = TextStringObject()
- else:
- if isinstance(text, TextStringObject) or \
- isinstance(text, ByteStringObject):
- operands[2] = TextStringObject()
- elif operator == b_("TJ"):
- for i in range(len(operands[0])):
- if not ignoreByteStringObject:
- if isinstance(operands[0][i], TextStringObject):
- operands[0][i] = TextStringObject()
- else:
- if isinstance(operands[0][i], TextStringObject) or \
- isinstance(operands[0][i], ByteStringObject):
- operands[0][i] = TextStringObject()
-
- pageRef.__setitem__(NameObject('/Contents'), content)
-
- def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args):
- """
- Add an internal link from a rectangular area to the specified page.
-
- :param int pagenum: index of the page on which to place the link.
- :param int pagedest: index of the page to which the link should go.
- :param rect: :class:`RectangleObject` or array of four
- integers specifying the clickable rectangular area
- ``[xLL, yLL, xUR, yUR]``, or string in the form ``"[ xLL yLL xUR yUR ]"``.
- :param border: if provided, an array describing border-drawing
- properties. See the PDF spec for details. No border will be
- drawn if this argument is omitted.
- :param str fit: Page fit or 'zoom' option (see below). Additional arguments may need
- to be supplied. Passing ``None`` will be read as a null value for that coordinate.
-
- Valid zoom arguments (see Table 8.2 of the PDF 1.7 reference for details):
- /Fit No additional arguments
- /XYZ [left] [top] [zoomFactor]
- /FitH [top]
- /FitV [left]
- /FitR [left] [bottom] [right] [top]
- /FitB No additional arguments
- /FitBH [top]
- /FitBV [left]
- """
-
- pageLink = self.getObject(self._pages)['/Kids'][pagenum]
- pageDest = self.getObject(self._pages)['/Kids'][pagedest] #TODO: switch for external link
- pageRef = self.getObject(pageLink)
-
- if border is not None:
- borderArr = [NameObject(n) for n in border[:3]]
- if len(border) == 4:
- dashPattern = ArrayObject([NameObject(n) for n in border[3]])
- borderArr.append(dashPattern)
- else:
- borderArr = [NumberObject(0)] * 3
-
- if isString(rect):
- rect = NameObject(rect)
- elif isinstance(rect, RectangleObject):
- pass
- else:
- rect = RectangleObject(rect)
-
- zoomArgs = []
- for a in args:
- if a is not None:
- zoomArgs.append(NumberObject(a))
- else:
- zoomArgs.append(NullObject())
- dest = Destination(NameObject("/LinkName"), pageDest, NameObject(fit), *zoomArgs) #TODO: create a better name for the link
- destArray = dest.getDestArray()
-
- lnk = DictionaryObject()
- lnk.update({
- NameObject('/Type'): NameObject('/Annot'),
- NameObject('/Subtype'): NameObject('/Link'),
- NameObject('/P'): pageLink,
- NameObject('/Rect'): rect,
- NameObject('/Border'): ArrayObject(borderArr),
- NameObject('/Dest'): destArray
- })
- lnkRef = self._addObject(lnk)
-
- if "/Annots" in pageRef:
- pageRef['/Annots'].append(lnkRef)
- else:
- pageRef[NameObject('/Annots')] = ArrayObject([lnkRef])
-
- _valid_layouts = ['/NoLayout', '/SinglePage', '/OneColumn', '/TwoColumnLeft', '/TwoColumnRight', '/TwoPageLeft', '/TwoPageRight']
-
- def getPageLayout(self):
- """
- Get the page layout.
- See :meth:`setPageLayout()` for a description of valid layouts.
-
- :return: Page layout currently being used.
- :rtype: str, None if not specified
- """
- try:
- return self._root_object['/PageLayout']
- except KeyError:
- return None
-
- def setPageLayout(self, layout):
- """
- Set the page layout
-
- :param str layout: The page layout to be used
-
- Valid layouts are:
- /NoLayout Layout explicitly not specified
- /SinglePage Show one page at a time
- /OneColumn Show one column at a time
- /TwoColumnLeft Show pages in two columns, odd-numbered pages on the left
- /TwoColumnRight Show pages in two columns, odd-numbered pages on the right
- /TwoPageLeft Show two pages at a time, odd-numbered pages on the left
- /TwoPageRight Show two pages at a time, odd-numbered pages on the right
- """
- if not isinstance(layout, NameObject):
- if layout not in self._valid_layouts:
- warnings.warn("Layout should be one of: {}".format(', '.join(self._valid_layouts)))
- layout = NameObject(layout)
- self._root_object.update({NameObject('/PageLayout'): layout})
-
- pageLayout = property(getPageLayout, setPageLayout)
- """Read and write property accessing the :meth:`getPageLayout()`
- and :meth:`setPageLayout()` methods."""
-
- _valid_modes = ['/UseNone', '/UseOutlines', '/UseThumbs', '/FullScreen', '/UseOC', '/UseAttachments']
-
- def getPageMode(self):
- """
- Get the page mode.
- See :meth:`setPageMode()` for a description
- of valid modes.
-
- :return: Page mode currently being used.
- :rtype: str, None if not specified
- """
- try:
- return self._root_object['/PageMode']
- except KeyError:
- return None
-
- def setPageMode(self, mode):
- """
- Set the page mode.
-
- :param str mode: The page mode to use.
-
- Valid modes are:
- /UseNone Do not show outlines or thumbnails panels
- /UseOutlines Show outlines (aka bookmarks) panel
- /UseThumbs Show page thumbnails panel
- /FullScreen Fullscreen view
- /UseOC Show Optional Content Group (OCG) panel
- /UseAttachments Show attachments panel
- """
- if not isinstance(mode, NameObject):
- if mode not in self._valid_modes:
- warnings.warn("Mode should be one of: {}".format(', '.join(self._valid_modes)))
- mode = NameObject(mode)
- self._root_object.update({NameObject('/PageMode'): mode})
-
- pageMode = property(getPageMode, setPageMode)
- """Read and write property accessing the :meth:`getPageMode()`
- and :meth:`setPageMode()` methods."""
-
-
-class PdfFileReader(object):
- """
- Initializes a PdfFileReader object. This operation can take some time, as
- the PDF stream's cross-reference tables are read into memory.
-
- :param stream: A File object or an object that supports the standard read
- and seek methods similar to a File object. Could also be a
- string representing a path to a PDF file.
- :param bool strict: Determines whether user should be warned of all
- problems and also causes some correctable problems to be fatal.
- Defaults to ``True``.
- :param warndest: Destination for logging warnings (defaults to
- ``sys.stderr``).
- :param bool overwriteWarnings: Determines whether to override Python's
- ``warnings.py`` module with a custom implementation (defaults to
- ``True``).
- """
- def __init__(self, stream, strict=True, warndest = None, overwriteWarnings = True):
- if overwriteWarnings:
- # have to dynamically override the default showwarning since there are no
- # public methods that specify the 'file' parameter
- def _showwarning(message, category, filename, lineno, file=warndest, line=None):
- if file is None:
- file = sys.stderr
- try:
- file.write(formatWarning(message, category, filename, lineno, line))
- except IOError:
- pass
- warnings.showwarning = _showwarning
- self.strict = strict
- self.flattenedPages = None
- self.resolvedObjects = {}
- self.xrefIndex = 0
- self._pageId2Num = None # map page IndirectRef number to Page Number
- if hasattr(stream, 'mode') and 'b' not in stream.mode:
- warnings.warn("PdfFileReader stream/file object is not in binary mode. It may not be read correctly.", utils.PdfReadWarning)
- if isString(stream):
- fileobj = open(stream, 'rb')
- stream = BytesIO(b_(fileobj.read()))
- fileobj.close()
- self.read(stream)
- self.stream = stream
-
- self._override_encryption = False
-
- def getDocumentInfo(self):
- """
- Retrieves the PDF file's document information dictionary, if it exists.
- Note that some PDF files use metadata streams instead of docinfo
- dictionaries, and these metadata streams will not be accessed by this
- function.
-
- :return: the document information of this PDF file
- :rtype: :class:`DocumentInformation` or ``None`` if none exists.
- """
- if "/Info" not in self.trailer:
- return None
- obj = self.trailer['/Info']
- retval = DocumentInformation()
- retval.update(obj)
- return retval
-
- documentInfo = property(lambda self: self.getDocumentInfo(), None, None)
- """Read-only property that accesses the :meth:`getDocumentInfo()` function."""
-
- def getXmpMetadata(self):
- """
- Retrieves XMP (Extensible Metadata Platform) data from the PDF document
- root.
-
- :return: a :class:`XmpInformation`
- instance that can be used to access XMP metadata from the document.
- :rtype: :class:`XmpInformation` or
- ``None`` if no metadata was found on the document root.
- """
- try:
- self._override_encryption = True
- return self.trailer["/Root"].getXmpMetadata()
- finally:
- self._override_encryption = False
-
- xmpMetadata = property(lambda self: self.getXmpMetadata(), None, None)
- """
- Read-only property that accesses the
- :meth:`getXmpMetadata()` function.
- """
-
- def getNumPages(self):
- """
- Calculates the number of pages in this PDF file.
-
- :return: number of pages
- :rtype: int
- :raises PdfReadError: if file is encrypted and restrictions prevent
- this action.
- """
-
- # Flattened pages will not work on an Encrypted PDF;
- # the PDF file's page count is used in this case. Otherwise,
- # the original method (flattened page count) is used.
- if self.isEncrypted:
- try:
- self._override_encryption = True
- self.decrypt('')
- return self.trailer["/Root"]["/Pages"]["/Count"]
- except:
- raise utils.PdfReadError("File has not been decrypted")
- finally:
- self._override_encryption = False
- else:
- if self.flattenedPages == None:
- self._flatten()
- return len(self.flattenedPages)
-
- numPages = property(lambda self: self.getNumPages(), None, None)
- """
- Read-only property that accesses the
- :meth:`getNumPages()` function.
- """
-
- def getPage(self, pageNumber):
- """
- Retrieves a page by number from this PDF file.
-
- :param int pageNumber: The page number to retrieve
- (pages begin at zero)
- :return: a :class:`PageObject` instance.
- :rtype: :class:`PageObject`
- """
- ## ensure that we're not trying to access an encrypted PDF
- #assert not self.trailer.has_key("/Encrypt")
- if self.flattenedPages == None:
- self._flatten()
- return self.flattenedPages[pageNumber]
-
- namedDestinations = property(lambda self:
- self.getNamedDestinations(), None, None)
- """
- Read-only property that accesses the
- :meth:`getNamedDestinations()` function.
- """
-
- # A select group of relevant field attributes. For the complete list,
- # see section 8.6.2 of the PDF 1.7 reference.
-
- def getFields(self, tree = None, retval = None, fileobj = None):
- """
- Extracts field data if this PDF contains interactive form fields.
- The *tree* and *retval* parameters are for recursive use.
-
- :param fileobj: A file object (usually a text file) to write
- a report to on all interactive form fields found.
- :return: A dictionary where each key is a field name, and each
- value is a :class:`Field` object. By
- default, the mapping name is used for keys.
- :rtype: dict, or ``None`` if form data could not be located.
- """
- fieldAttributes = {"/FT" : "Field Type", "/Parent" : "Parent",
- "/T" : "Field Name", "/TU" : "Alternate Field Name",
- "/TM" : "Mapping Name", "/Ff" : "Field Flags",
- "/V" : "Value", "/DV" : "Default Value"}
- if retval == None:
- retval = {}
- catalog = self.trailer["/Root"]
- # get the AcroForm tree
- if "/AcroForm" in catalog:
- tree = catalog["/AcroForm"]
- else:
- return None
- if tree == None:
- return retval
-
- self._checkKids(tree, retval, fileobj)
- for attr in fieldAttributes:
- if attr in tree:
- # Tree is a field
- self._buildField(tree, retval, fileobj, fieldAttributes)
- break
-
- if "/Fields" in tree:
- fields = tree["/Fields"]
- for f in fields:
- field = f.getObject()
- self._buildField(field, retval, fileobj, fieldAttributes)
-
- return retval
-
- def _buildField(self, field, retval, fileobj, fieldAttributes):
- self._checkKids(field, retval, fileobj)
- try:
- key = field["/TM"]
- except KeyError:
- try:
- key = field["/T"]
- except KeyError:
- # Ignore no-name field for now
- return
- if fileobj:
- self._writeField(fileobj, field, fieldAttributes)
- fileobj.write("\n")
- retval[key] = Field(field)
-
- def _checkKids(self, tree, retval, fileobj):
- if "/Kids" in tree:
- # recurse down the tree
- for kid in tree["/Kids"]:
- self.getFields(kid.getObject(), retval, fileobj)
-
- def _writeField(self, fileobj, field, fieldAttributes):
- order = ["/TM", "/T", "/FT", "/Parent", "/TU", "/Ff", "/V", "/DV"]
- for attr in order:
- attrName = fieldAttributes[attr]
- try:
- if attr == "/FT":
- # Make the field type value more clear
- types = {"/Btn":"Button", "/Tx":"Text", "/Ch": "Choice",
- "/Sig":"Signature"}
- if field[attr] in types:
- fileobj.write(attrName + ": " + types[field[attr]] + "\n")
- elif attr == "/Parent":
- # Let's just write the name of the parent
- try:
- name = field["/Parent"]["/TM"]
- except KeyError:
- name = field["/Parent"]["/T"]
- fileobj.write(attrName + ": " + name + "\n")
- else:
- fileobj.write(attrName + ": " + str(field[attr]) + "\n")
- except KeyError:
- # Field attribute is N/A or unknown, so don't write anything
- pass
-
- def getFormTextFields(self):
- ''' Retrieves form fields from the document with textual data (inputs, dropdowns)
- '''
- # Retrieve document form fields
- formfields = self.getFields()
- return dict(
- (formfields[field]['/T'], formfields[field].get('/V')) for field in formfields \
- if formfields[field].get('/FT') == '/Tx'
- )
-
- def getNamedDestinations(self, tree=None, retval=None):
- """
- Retrieves the named destinations present in the document.
-
- :return: a dictionary which maps names to
- :class:`Destinations`.
- :rtype: dict
- """
- if retval == None:
- retval = {}
- catalog = self.trailer["/Root"]
-
- # get the name tree
- if "/Dests" in catalog:
- tree = catalog["/Dests"]
- elif "/Names" in catalog:
- names = catalog['/Names']
- if "/Dests" in names:
- tree = names['/Dests']
-
- if tree == None:
- return retval
-
- if "/Kids" in tree:
- # recurse down the tree
- for kid in tree["/Kids"]:
- self.getNamedDestinations(kid.getObject(), retval)
-
- if "/Names" in tree:
- names = tree["/Names"]
- for i in range(0, len(names), 2):
- key = names[i].getObject()
- val = names[i+1].getObject()
- if isinstance(val, DictionaryObject) and '/D' in val:
- val = val['/D']
- dest = self._buildDestination(key, val)
- if dest != None:
- retval[key] = dest
-
- return retval
-
- outlines = property(lambda self: self.getOutlines(), None, None)
- """
- Read-only property that accesses the
- :meth:`getOutlines()` function.
- """
-
- def getOutlines(self, node=None, outlines=None):
- """
- Retrieves the document outline present in the document.
-
- :return: a nested list of :class:`Destinations`.
- """
- if outlines == None:
- outlines = []
- catalog = self.trailer["/Root"]
-
- # get the outline dictionary and named destinations
- if "/Outlines" in catalog:
- try:
- lines = catalog["/Outlines"]
- except utils.PdfReadError:
- # this occurs if the /Outlines object reference is incorrect
- # for an example of such a file, see https://unglueit-files.s3.amazonaws.com/ebf/7552c42e9280b4476e59e77acc0bc812.pdf
- # so continue to load the file without the Bookmarks
- return outlines
-
- if "/First" in lines:
- node = lines["/First"]
- self._namedDests = self.getNamedDestinations()
-
- if node == None:
- return outlines
-
- # see if there are any more outlines
- while True:
- outline = self._buildOutline(node)
- if outline:
- outlines.append(outline)
-
- # check for sub-outlines
- if "/First" in node:
- subOutlines = []
- self.getOutlines(node["/First"], subOutlines)
- if subOutlines:
- outlines.append(subOutlines)
-
- if "/Next" not in node:
- break
- node = node["/Next"]
-
- return outlines
-
- def _getPageNumberByIndirect(self, indirectRef):
- """Generate _pageId2Num"""
- if self._pageId2Num is None:
- id2num = {}
- for i, x in enumerate(self.pages):
- id2num[x.indirectRef.idnum] = i
- self._pageId2Num = id2num
-
- if isinstance(indirectRef, int):
- idnum = indirectRef
- else:
- idnum = indirectRef.idnum
-
- ret = self._pageId2Num.get(idnum, -1)
- return ret
-
- def getPageNumber(self, page):
- """
- Retrieve page number of a given PageObject
-
- :param PageObject page: The page to get page number. Should be
- an instance of :class:`PageObject`
- :return: the page number or -1 if page not found
- :rtype: int
- """
- indirectRef = page.indirectRef
- ret = self._getPageNumberByIndirect(indirectRef)
- return ret
-
- def getDestinationPageNumber(self, destination):
- """
- Retrieve page number of a given Destination object
-
- :param Destination destination: The destination to get page number.
- Should be an instance of
- :class:`Destination`
- :return: the page number or -1 if page not found
- :rtype: int
- """
- indirectRef = destination.page
- ret = self._getPageNumberByIndirect(indirectRef)
- return ret
-
- def _buildDestination(self, title, array):
- page, typ = array[0:2]
- array = array[2:]
- return Destination(title, page, typ, *array)
-
- def _buildOutline(self, node):
- dest, title, outline = None, None, None
-
- if "/A" in node and "/Title" in node:
- # Action, section 8.5 (only type GoTo supported)
- title = node["/Title"]
- action = node["/A"]
- if action["/S"] == "/GoTo":
- dest = action["/D"]
- elif "/Dest" in node and "/Title" in node:
- # Destination, section 8.2.1
- title = node["/Title"]
- dest = node["/Dest"]
-
- # if destination found, then create outline
- if dest:
- if isinstance(dest, ArrayObject):
- outline = self._buildDestination(title, dest)
- elif isString(dest) and dest in self._namedDests:
- outline = self._namedDests[dest]
- outline[NameObject("/Title")] = title
- else:
- raise utils.PdfReadError("Unexpected destination %r" % dest)
- return outline
-
- pages = property(lambda self: ConvertFunctionsToVirtualList(self.getNumPages, self.getPage),
- None, None)
- """
- Read-only property that emulates a list based upon the
- :meth:`getNumPages()` and
- :meth:`getPage()` methods.
- """
-
- def getPageLayout(self):
- """
- Get the page layout.
- See :meth:`setPageLayout()`
- for a description of valid layouts.
-
- :return: Page layout currently being used.
- :rtype: ``str``, ``None`` if not specified
- """
- try:
- return self.trailer['/Root']['/PageLayout']
- except KeyError:
- return None
-
- pageLayout = property(getPageLayout)
- """Read-only property accessing the
- :meth:`getPageLayout()` method."""
-
- def getPageMode(self):
- """
- Get the page mode.
- See :meth:`setPageMode()`
- for a description of valid modes.
-
- :return: Page mode currently being used.
- :rtype: ``str``, ``None`` if not specified
- """
- try:
- return self.trailer['/Root']['/PageMode']
- except KeyError:
- return None
-
- pageMode = property(getPageMode)
- """Read-only property accessing the
- :meth:`getPageMode()` method."""
-
- def _flatten(self, pages=None, inherit=None, indirectRef=None):
- inheritablePageAttributes = (
- NameObject("/Resources"), NameObject("/MediaBox"),
- NameObject("/CropBox"), NameObject("/Rotate")
- )
- if inherit == None:
- inherit = dict()
- if pages == None:
- self.flattenedPages = []
- catalog = self.trailer["/Root"].getObject()
- pages = catalog["/Pages"].getObject()
-
- t = "/Pages"
- if "/Type" in pages:
- t = pages["/Type"]
-
- if t == "/Pages":
- for attr in inheritablePageAttributes:
- if attr in pages:
- inherit[attr] = pages[attr]
- for page in pages["/Kids"]:
- addt = {}
- if isinstance(page, IndirectObject):
- addt["indirectRef"] = page
- self._flatten(page.getObject(), inherit, **addt)
- elif t == "/Page":
- for attr, value in list(inherit.items()):
- # if the page has it's own value, it does not inherit the
- # parent's value:
- if attr not in pages:
- pages[attr] = value
- pageObj = PageObject(self, indirectRef)
- pageObj.update(pages)
- self.flattenedPages.append(pageObj)
-
- def _getObjectFromStream(self, indirectReference):
- # indirect reference to object in object stream
- # read the entire object stream into memory
- debug = False
- stmnum, idx = self.xref_objStm[indirectReference.idnum]
- if debug: print(("Here1: %s %s"%(stmnum, idx)))
- objStm = IndirectObject(stmnum, 0, self).getObject()
- if debug: print(("Here2: objStm=%s.. stmnum=%s data=%s"%(objStm, stmnum, objStm.getData())))
- # This is an xref to a stream, so its type better be a stream
- assert objStm['/Type'] == '/ObjStm'
- # /N is the number of indirect objects in the stream
- assert idx < objStm['/N']
- streamData = BytesIO(b_(objStm.getData()))
- for i in range(objStm['/N']):
- readNonWhitespace(streamData)
- streamData.seek(-1, 1)
- objnum = NumberObject.readFromStream(streamData)
- readNonWhitespace(streamData)
- streamData.seek(-1, 1)
- offset = NumberObject.readFromStream(streamData)
- readNonWhitespace(streamData)
- streamData.seek(-1, 1)
- if objnum != indirectReference.idnum:
- # We're only interested in one object
- continue
- if self.strict and idx != i:
- raise utils.PdfReadError("Object is in wrong index.")
- streamData.seek(objStm['/First']+offset, 0)
- if debug:
- pos = streamData.tell()
- streamData.seek(0, 0)
- lines = streamData.readlines()
- for i in range(0, len(lines)):
- print((lines[i]))
- streamData.seek(pos, 0)
- try:
- obj = readObject(streamData, self)
- except utils.PdfStreamError as e:
- # Stream object cannot be read. Normally, a critical error, but
- # Adobe Reader doesn't complain, so continue (in strict mode?)
- e = sys.exc_info()[1]
- warnings.warn("Invalid stream (index %d) within object %d %d: %s" % \
- (i, indirectReference.idnum, indirectReference.generation, e), utils.PdfReadWarning)
-
- if self.strict:
- raise utils.PdfReadError("Can't read object stream: %s"%e)
- # Replace with null. Hopefully it's nothing important.
- obj = NullObject()
- return obj
-
- if self.strict: raise utils.PdfReadError("This is a fatal error in strict mode.")
- return NullObject()
-
- def getObject(self, indirectReference):
- debug = False
- if debug: print(("looking at:", indirectReference.idnum, indirectReference.generation))
- retval = self.cacheGetIndirectObject(indirectReference.generation,
- indirectReference.idnum)
- if retval != None:
- return retval
- if indirectReference.generation == 0 and \
- indirectReference.idnum in self.xref_objStm:
- retval = self._getObjectFromStream(indirectReference)
- elif indirectReference.generation in self.xref and \
- indirectReference.idnum in self.xref[indirectReference.generation]:
- start = self.xref[indirectReference.generation][indirectReference.idnum]
- if debug: print((" Uncompressed Object", indirectReference.idnum, indirectReference.generation, ":", start))
- self.stream.seek(start, 0)
- idnum, generation = self.readObjectHeader(self.stream)
- if idnum != indirectReference.idnum and self.xrefIndex:
- # Xref table probably had bad indexes due to not being zero-indexed
- if self.strict:
- raise utils.PdfReadError("Expected object ID (%d %d) does not match actual (%d %d); xref table not zero-indexed." \
- % (indirectReference.idnum, indirectReference.generation, idnum, generation))
- else: pass # xref table is corrected in non-strict mode
- elif idnum != indirectReference.idnum:
- # some other problem
- raise utils.PdfReadError("Expected object ID (%d %d) does not match actual (%d %d)." \
- % (indirectReference.idnum, indirectReference.generation, idnum, generation))
- assert generation == indirectReference.generation
- retval = readObject(self.stream, self)
-
- # override encryption is used for the /Encrypt dictionary
- if not self._override_encryption and self.isEncrypted:
- # if we don't have the encryption key:
- if not hasattr(self, '_decryption_key'):
- raise utils.PdfReadError("file has not been decrypted")
- # otherwise, decrypt here...
- import struct
- pack1 = struct.pack(">read", stream)
- # start at the end:
- stream.seek(-1, 2)
- if not stream.tell():
- raise utils.PdfReadError('Cannot read an empty file')
- last1K = stream.tell() - 1024 + 1 # offset of last 1024 bytes of stream
- line = b_('')
- while line[:5] != b_("%%EOF"):
- if stream.tell() < last1K:
- raise utils.PdfReadError("EOF marker not found")
- line = self.readNextEndLine(stream)
- if debug: print(" line:",line)
-
- # find startxref entry - the location of the xref table
- line = self.readNextEndLine(stream)
- try:
- startxref = int(line)
- except ValueError:
- # 'startxref' may be on the same line as the location
- if not line.startswith(b_("startxref")):
- raise utils.PdfReadError("startxref not found")
- startxref = int(line[9:].strip())
- warnings.warn("startxref on same line as offset")
- else:
- line = self.readNextEndLine(stream)
- if line[:9] != b_("startxref"):
- raise utils.PdfReadError("startxref not found")
-
- # read all cross reference tables and their trailers
- self.xref = {}
- self.xref_objStm = {}
- self.trailer = DictionaryObject()
- while True:
- # load the xref table
- stream.seek(startxref, 0)
- x = stream.read(1)
- if x == b_("x"):
- # standard cross-reference table
- ref = stream.read(4)
- if ref[:3] != b_("ref"):
- raise utils.PdfReadError("xref table read error")
- readNonWhitespace(stream)
- stream.seek(-1, 1)
- firsttime = True; # check if the first time looking at the xref table
- while True:
- num = readObject(stream, self)
- if firsttime and num != 0:
- self.xrefIndex = num
- if self.strict:
- warnings.warn("Xref table not zero-indexed. ID numbers for objects will be corrected.", utils.PdfReadWarning)
- #if table not zero indexed, could be due to error from when PDF was created
- #which will lead to mismatched indices later on, only warned and corrected if self.strict=True
- firsttime = False
- readNonWhitespace(stream)
- stream.seek(-1, 1)
- size = readObject(stream, self)
- readNonWhitespace(stream)
- stream.seek(-1, 1)
- cnt = 0
- while cnt < size:
- line = stream.read(20)
-
- # It's very clear in section 3.4.3 of the PDF spec
- # that all cross-reference table lines are a fixed
- # 20 bytes (as of PDF 1.7). However, some files have
- # 21-byte entries (or more) due to the use of \r\n
- # (CRLF) EOL's. Detect that case, and adjust the line
- # until it does not begin with a \r (CR) or \n (LF).
- while line[0] in b_("\x0D\x0A"):
- stream.seek(-20 + 1, 1)
- line = stream.read(20)
-
- # On the other hand, some malformed PDF files
- # use a single character EOL without a preceeding
- # space. Detect that case, and seek the stream
- # back one character. (0-9 means we've bled into
- # the next xref entry, t means we've bled into the
- # text "trailer"):
- if line[-1] in b_("0123456789t"):
- stream.seek(-1, 1)
-
- offset, generation = line[:16].split(b_(" "))
- offset, generation = int(offset), int(generation)
- if generation not in self.xref:
- self.xref[generation] = {}
- if num in self.xref[generation]:
- # It really seems like we should allow the last
- # xref table in the file to override previous
- # ones. Since we read the file backwards, assume
- # any existing key is already set correctly.
- pass
- else:
- self.xref[generation][num] = offset
- cnt += 1
- num += 1
- readNonWhitespace(stream)
- stream.seek(-1, 1)
- trailertag = stream.read(7)
- if trailertag != b_("trailer"):
- # more xrefs!
- stream.seek(-7, 1)
- else:
- break
- readNonWhitespace(stream)
- stream.seek(-1, 1)
- newTrailer = readObject(stream, self)
- for key, value in list(newTrailer.items()):
- if key not in self.trailer:
- self.trailer[key] = value
- if "/Prev" in newTrailer:
- startxref = newTrailer["/Prev"]
- else:
- break
- elif x.isdigit():
- # PDF 1.5+ Cross-Reference Stream
- stream.seek(-1, 1)
- idnum, generation = self.readObjectHeader(stream)
- xrefstream = readObject(stream, self)
- assert xrefstream["/Type"] == "/XRef"
- self.cacheIndirectObject(generation, idnum, xrefstream)
- streamData = BytesIO(b_(xrefstream.getData()))
- # Index pairs specify the subsections in the dictionary. If
- # none create one subsection that spans everything.
- idx_pairs = xrefstream.get("/Index", [0, xrefstream.get("/Size")])
- if debug: print(("read idx_pairs=%s"%list(self._pairs(idx_pairs))))
- entrySizes = xrefstream.get("/W")
- assert len(entrySizes) >= 3
- if self.strict and len(entrySizes) > 3:
- raise utils.PdfReadError("Too many entry sizes: %s" %entrySizes)
-
- def getEntry(i):
- # Reads the correct number of bytes for each entry. See the
- # discussion of the W parameter in PDF spec table 17.
- if entrySizes[i] > 0:
- d = streamData.read(entrySizes[i])
- return convertToInt(d, entrySizes[i])
-
- # PDF Spec Table 17: A value of zero for an element in the
- # W array indicates...the default value shall be used
- if i == 0: return 1 # First value defaults to 1
- else: return 0
-
- def used_before(num, generation):
- # We move backwards through the xrefs, don't replace any.
- return num in self.xref.get(generation, []) or \
- num in self.xref_objStm
-
- # Iterate through each subsection
- last_end = 0
- for start, size in self._pairs(idx_pairs):
- # The subsections must increase
- assert start >= last_end
- last_end = start + size
- for num in range(start, start+size):
- # The first entry is the type
- xref_type = getEntry(0)
- # The rest of the elements depend on the xref_type
- if xref_type == 0:
- # linked list of free objects
- next_free_object = getEntry(1)
- next_generation = getEntry(2)
- elif xref_type == 1:
- # objects that are in use but are not compressed
- byte_offset = getEntry(1)
- generation = getEntry(2)
- if generation not in self.xref:
- self.xref[generation] = {}
- if not used_before(num, generation):
- self.xref[generation][num] = byte_offset
- if debug: print(("XREF Uncompressed: %s %s"%(
- num, generation)))
- elif xref_type == 2:
- # compressed objects
- objstr_num = getEntry(1)
- obstr_idx = getEntry(2)
- generation = 0 # PDF spec table 18, generation is 0
- if not used_before(num, generation):
- if debug: print(("XREF Compressed: %s %s %s"%(
- num, objstr_num, obstr_idx)))
- self.xref_objStm[num] = (objstr_num, obstr_idx)
- elif self.strict:
- raise utils.PdfReadError("Unknown xref type: %s"%
- xref_type)
-
- trailerKeys = "/Root", "/Encrypt", "/Info", "/ID"
- for key in trailerKeys:
- if key in xrefstream and key not in self.trailer:
- self.trailer[NameObject(key)] = xrefstream.raw_get(key)
- if "/Prev" in xrefstream:
- startxref = xrefstream["/Prev"]
- else:
- break
- else:
- # bad xref character at startxref. Let's see if we can find
- # the xref table nearby, as we've observed this error with an
- # off-by-one before.
- stream.seek(-11, 1)
- tmp = stream.read(20)
- xref_loc = tmp.find(b_("xref"))
- if xref_loc != -1:
- startxref -= (10 - xref_loc)
- continue
- # No explicit xref table, try finding a cross-reference stream.
- stream.seek(startxref, 0)
- found = False
- for look in range(5):
- if stream.read(1).isdigit():
- # This is not a standard PDF, consider adding a warning
- startxref += look
- found = True
- break
- if found:
- continue
- # no xref table found at specified location
- raise utils.PdfReadError("Could not find xref table at specified location")
- #if not zero-indexed, verify that the table is correct; change it if necessary
- if self.xrefIndex and not self.strict:
- loc = stream.tell()
- for gen in self.xref:
- if gen == 65535: continue
- for id in self.xref[gen]:
- stream.seek(self.xref[gen][id], 0)
- try:
- pid, pgen = self.readObjectHeader(stream)
- except ValueError:
- break
- if pid == id - self.xrefIndex:
- self._zeroXref(gen)
- break
- #if not, then either it's just plain wrong, or the non-zero-index is actually correct
- stream.seek(loc, 0) #return to where it was
-
- def _zeroXref(self, generation):
- self.xref[generation] = dict( (k-self.xrefIndex, v) for (k, v) in list(self.xref[generation].items()) )
-
- def _pairs(self, array):
- i = 0
- while True:
- yield array[i], array[i+1]
- i += 2
- if (i+1) >= len(array):
- break
-
- def readNextEndLine(self, stream):
- debug = False
- if debug: print(">>readNextEndLine")
- line = b_("")
- while True:
- # Prevent infinite loops in malformed PDFs
- if stream.tell() == 0:
- raise utils.PdfReadError("Could not read malformed PDF file")
- x = stream.read(1)
- if debug: print((" x:", x, "%x"%ord(x)))
- if stream.tell() < 2:
- raise utils.PdfReadError("EOL marker not found")
- stream.seek(-2, 1)
- if x == b_('\n') or x == b_('\r'): ## \n = LF; \r = CR
- crlf = False
- while x == b_('\n') or x == b_('\r'):
- if debug:
- if ord(x) == 0x0D: print(" x is CR 0D")
- elif ord(x) == 0x0A: print(" x is LF 0A")
- x = stream.read(1)
- if x == b_('\n') or x == b_('\r'): # account for CR+LF
- stream.seek(-1, 1)
- crlf = True
- if stream.tell() < 2:
- raise utils.PdfReadError("EOL marker not found")
- stream.seek(-2, 1)
- stream.seek(2 if crlf else 1, 1) #if using CR+LF, go back 2 bytes, else 1
- break
- else:
- if debug: print(" x is neither")
- line = x + line
- if debug: print((" RNEL line:", line))
- if debug: print("leaving RNEL")
- return line
-
- def decrypt(self, password):
- """
- When using an encrypted / secured PDF file with the PDF Standard
- encryption handler, this function will allow the file to be decrypted.
- It checks the given password against the document's user password and
- owner password, and then stores the resulting decryption key if either
- password is correct.
-
- It does not matter which password was matched. Both passwords provide
- the correct decryption key that will allow the document to be used with
- this library.
-
- :param str password: The password to match.
- :return: ``0`` if the password failed, ``1`` if the password matched the user
- password, and ``2`` if the password matched the owner password.
- :rtype: int
- :raises NotImplementedError: if document uses an unsupported encryption
- method.
- """
-
- self._override_encryption = True
- try:
- return self._decrypt(password)
- finally:
- self._override_encryption = False
-
- def _decrypt(self, password):
- encrypt = self.trailer['/Encrypt'].getObject()
- if encrypt['/Filter'] != '/Standard':
- raise NotImplementedError("only Standard PDF encryption handler is available")
- if not (encrypt['/V'] in (1, 2)):
- raise NotImplementedError("only algorithm code 1 and 2 are supported")
- user_password, key = self._authenticateUserPassword(password)
- if user_password:
- self._decryption_key = key
- return 1
- else:
- rev = encrypt['/R'].getObject()
- if rev == 2:
- keylen = 5
- else:
- keylen = encrypt['/Length'].getObject() // 8
- key = _alg33_1(password, rev, keylen)
- real_O = encrypt["/O"].getObject()
- if rev == 2:
- userpass = utils.RC4_encrypt(key, real_O)
- else:
- val = real_O
- for i in range(19, -1, -1):
- new_key = b_('')
- for l in range(len(key)):
- new_key += b_(chr(utils.ord_(key[l]) ^ i))
- val = utils.RC4_encrypt(new_key, val)
- userpass = val
- owner_password, key = self._authenticateUserPassword(userpass)
- if owner_password:
- self._decryption_key = key
- return 2
- return 0
-
- def _authenticateUserPassword(self, password):
- encrypt = self.trailer['/Encrypt'].getObject()
- rev = encrypt['/R'].getObject()
- owner_entry = encrypt['/O'].getObject()
- p_entry = encrypt['/P'].getObject()
- id_entry = self.trailer['/ID'].getObject()
- id1_entry = id_entry[0].getObject()
- real_U = encrypt['/U'].getObject().original_bytes
- if rev == 2:
- U, key = _alg34(password, owner_entry, p_entry, id1_entry)
- elif rev >= 3:
- U, key = _alg35(password, rev,
- encrypt["/Length"].getObject() // 8, owner_entry,
- p_entry, id1_entry,
- encrypt.get("/EncryptMetadata", BooleanObject(False)).getObject())
- U, real_U = U[:16], real_U[:16]
- return U == real_U, key
-
- def getIsEncrypted(self):
- return "/Encrypt" in self.trailer
-
- isEncrypted = property(lambda self: self.getIsEncrypted(), None, None)
- """
- Read-only boolean property showing whether this PDF file is encrypted.
- Note that this property, if true, will remain true even after the
- :meth:`decrypt()` method is called.
- """
-
-
-def getRectangle(self, name, defaults):
- retval = self.get(name)
- if isinstance(retval, RectangleObject):
- return retval
- if retval == None:
- for d in defaults:
- retval = self.get(d)
- if retval != None:
- break
- if isinstance(retval, IndirectObject):
- retval = self.pdf.getObject(retval)
- retval = RectangleObject(retval)
- setRectangle(self, name, retval)
- return retval
-
-
-def setRectangle(self, name, value):
- if not isinstance(name, NameObject):
- name = NameObject(name)
- self[name] = value
-
-
-def deleteRectangle(self, name):
- del self[name]
-
-
-def createRectangleAccessor(name, fallback):
- return \
- property(
- lambda self: getRectangle(self, name, fallback),
- lambda self, value: setRectangle(self, name, value),
- lambda self: deleteRectangle(self, name)
- )
-
-
-class PageObject(DictionaryObject):
- """
- This class represents a single page within a PDF file. Typically this
- object will be created by accessing the
- :meth:`getPage()` method of the
- :class:`PdfFileReader` class, but it is
- also possible to create an empty page with the
- :meth:`createBlankPage()` static method.
-
- :param pdf: PDF file the page belongs to.
- :param indirectRef: Stores the original indirect reference to
- this object in its source PDF
- """
- def __init__(self, pdf=None, indirectRef=None):
- DictionaryObject.__init__(self)
- self.pdf = pdf
- self.indirectRef = indirectRef
-
- def createBlankPage(pdf=None, width=None, height=None):
- """
- Returns a new blank page.
- If ``width`` or ``height`` is ``None``, try to get the page size
- from the last page of *pdf*.
-
- :param pdf: PDF file the page belongs to
- :param float width: The width of the new page expressed in default user
- space units.
- :param float height: The height of the new page expressed in default user
- space units.
- :return: the new blank page:
- :rtype: :class:`PageObject`
- :raises PageSizeNotDefinedError: if ``pdf`` is ``None`` or contains
- no page
- """
- page = PageObject(pdf)
-
- # Creates a new page (cf PDF Reference 7.7.3.3)
- page.__setitem__(NameObject('/Type'), NameObject('/Page'))
- page.__setitem__(NameObject('/Parent'), NullObject())
- page.__setitem__(NameObject('/Resources'), DictionaryObject())
- if width is None or height is None:
- if pdf is not None and pdf.getNumPages() > 0:
- lastpage = pdf.getPage(pdf.getNumPages() - 1)
- width = lastpage.mediaBox.getWidth()
- height = lastpage.mediaBox.getHeight()
- else:
- raise utils.PageSizeNotDefinedError()
- page.__setitem__(NameObject('/MediaBox'),
- RectangleObject([0, 0, width, height]))
-
- return page
- createBlankPage = staticmethod(createBlankPage)
-
- def rotateClockwise(self, angle):
- """
- Rotates a page clockwise by increments of 90 degrees.
-
- :param int angle: Angle to rotate the page. Must be an increment
- of 90 deg.
- """
- assert angle % 90 == 0
- self._rotate(angle)
- return self
-
- def rotateCounterClockwise(self, angle):
- """
- Rotates a page counter-clockwise by increments of 90 degrees.
-
- :param int angle: Angle to rotate the page. Must be an increment
- of 90 deg.
- """
- assert angle % 90 == 0
- self._rotate(-angle)
- return self
-
- def _rotate(self, angle):
- currentAngle = self.get("/Rotate", 0)
- self[NameObject("/Rotate")] = NumberObject(currentAngle + angle)
-
- def _mergeResources(res1, res2, resource):
- newRes = DictionaryObject()
- newRes.update(res1.get(resource, DictionaryObject()).getObject())
- page2Res = res2.get(resource, DictionaryObject()).getObject()
- renameRes = {}
- for key in list(page2Res.keys()):
- if key in newRes and newRes.raw_get(key) != page2Res.raw_get(key):
- newname = NameObject(key + str(uuid.uuid4()))
- renameRes[key] = newname
- newRes[newname] = page2Res[key]
- elif key not in newRes:
- newRes[key] = page2Res.raw_get(key)
- return newRes, renameRes
- _mergeResources = staticmethod(_mergeResources)
-
- def _contentStreamRename(stream, rename, pdf):
- if not rename:
- return stream
- stream = ContentStream(stream, pdf)
- for operands, operator in stream.operations:
- for i in range(len(operands)):
- op = operands[i]
- if isinstance(op, NameObject):
- operands[i] = rename.get(op,op)
- return stream
- _contentStreamRename = staticmethod(_contentStreamRename)
-
- def _pushPopGS(contents, pdf):
- # adds a graphics state "push" and "pop" to the beginning and end
- # of a content stream. This isolates it from changes such as
- # transformation matricies.
- stream = ContentStream(contents, pdf)
- stream.operations.insert(0, [[], "q"])
- stream.operations.append([[], "Q"])
- return stream
- _pushPopGS = staticmethod(_pushPopGS)
-
- def _addTransformationMatrix(contents, pdf, ctm):
- # adds transformation matrix at the beginning of the given
- # contents stream.
- a, b, c, d, e, f = ctm
- contents = ContentStream(contents, pdf)
- contents.operations.insert(0, [[FloatObject(a), FloatObject(b),
- FloatObject(c), FloatObject(d), FloatObject(e),
- FloatObject(f)], " cm"])
- return contents
- _addTransformationMatrix = staticmethod(_addTransformationMatrix)
-
- def getContents(self):
- """
- Accesses the page contents.
-
- :return: the ``/Contents`` object, or ``None`` if it doesn't exist.
- ``/Contents`` is optional, as described in PDF Reference 7.7.3.3
- """
- if "/Contents" in self:
- return self["/Contents"].getObject()
- else:
- return None
-
- def mergePage(self, page2):
- """
- Merges the content streams of two pages into one. Resource references
- (i.e. fonts) are maintained from both pages. The mediabox/cropbox/etc
- of this page are not altered. The parameter page's content stream will
- be added to the end of this page's content stream, meaning that it will
- be drawn after, or "on top" of this page.
-
- :param PageObject page2: The page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- """
- self._mergePage(page2)
-
- def _mergePage(self, page2, page2transformation=None, ctm=None, expand=False):
- # First we work on merging the resource dictionaries. This allows us
- # to find out what symbols in the content streams we might need to
- # rename.
-
- newResources = DictionaryObject()
- rename = {}
- originalResources = self["/Resources"].getObject()
- page2Resources = page2["/Resources"].getObject()
- newAnnots = ArrayObject()
-
- for page in (self, page2):
- if "/Annots" in page:
- annots = page["/Annots"]
- if isinstance(annots, ArrayObject):
- for ref in annots:
- newAnnots.append(ref)
-
- for res in "/ExtGState", "/Font", "/XObject", "/ColorSpace", "/Pattern", "/Shading", "/Properties":
- new, newrename = PageObject._mergeResources(originalResources, page2Resources, res)
- if new:
- newResources[NameObject(res)] = new
- rename.update(newrename)
-
- # Combine /ProcSet sets.
- newResources[NameObject("/ProcSet")] = ArrayObject(
- frozenset(originalResources.get("/ProcSet", ArrayObject()).getObject()).union(
- frozenset(page2Resources.get("/ProcSet", ArrayObject()).getObject())
- )
- )
-
- newContentArray = ArrayObject()
-
- originalContent = self.getContents()
- if originalContent is not None:
- newContentArray.append(PageObject._pushPopGS(
- originalContent, self.pdf))
-
- page2Content = page2.getContents()
- if page2Content is not None:
- if page2transformation is not None:
- page2Content = page2transformation(page2Content)
- page2Content = PageObject._contentStreamRename(
- page2Content, rename, self.pdf)
- page2Content = PageObject._pushPopGS(page2Content, self.pdf)
- newContentArray.append(page2Content)
-
- # if expanding the page to fit a new page, calculate the new media box size
- if expand:
- corners1 = [self.mediaBox.getLowerLeft_x().as_numeric(), self.mediaBox.getLowerLeft_y().as_numeric(),
- self.mediaBox.getUpperRight_x().as_numeric(), self.mediaBox.getUpperRight_y().as_numeric()]
- corners2 = [page2.mediaBox.getLowerLeft_x().as_numeric(), page2.mediaBox.getLowerLeft_y().as_numeric(),
- page2.mediaBox.getUpperLeft_x().as_numeric(), page2.mediaBox.getUpperLeft_y().as_numeric(),
- page2.mediaBox.getUpperRight_x().as_numeric(), page2.mediaBox.getUpperRight_y().as_numeric(),
- page2.mediaBox.getLowerRight_x().as_numeric(), page2.mediaBox.getLowerRight_y().as_numeric()]
- if ctm is not None:
- ctm = [float(x) for x in ctm]
- new_x = [ctm[0]*corners2[i] + ctm[2]*corners2[i+1] + ctm[4] for i in range(0, 8, 2)]
- new_y = [ctm[1]*corners2[i] + ctm[3]*corners2[i+1] + ctm[5] for i in range(0, 8, 2)]
- else:
- new_x = corners2[0:8:2]
- new_y = corners2[1:8:2]
- lowerleft = [min(new_x), min(new_y)]
- upperright = [max(new_x), max(new_y)]
- lowerleft = [min(corners1[0], lowerleft[0]), min(corners1[1], lowerleft[1])]
- upperright = [max(corners1[2], upperright[0]), max(corners1[3], upperright[1])]
-
- self.mediaBox.setLowerLeft(lowerleft)
- self.mediaBox.setUpperRight(upperright)
-
- self[NameObject('/Contents')] = ContentStream(newContentArray, self.pdf)
- self[NameObject('/Resources')] = newResources
- self[NameObject('/Annots')] = newAnnots
-
- def mergeTransformedPage(self, page2, ctm, expand=False):
- """
- This is similar to mergePage, but a transformation matrix is
- applied to the merged stream.
-
- :param PageObject page2: The page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param tuple ctm: a 6-element tuple containing the operands of the
- transformation matrix
- :param bool expand: Whether the page should be expanded to fit the dimensions
- of the page to be merged.
- """
- self._mergePage(page2, lambda page2Content:
- PageObject._addTransformationMatrix(page2Content, page2.pdf, ctm), ctm, expand)
-
- def mergeScaledPage(self, page2, scale, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is scaled
- by appling a transformation matrix.
-
- :param PageObject page2: The page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float scale: The scaling factor
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
- # CTM to scale : [ sx 0 0 sy 0 0 ]
- return self.mergeTransformedPage(page2, [scale, 0,
- 0, scale,
- 0, 0], expand)
-
- def mergeRotatedPage(self, page2, rotation, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is rotated
- by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float rotation: The angle of the rotation, in degrees
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
- rotation = math.radians(rotation)
- return self.mergeTransformedPage(page2,
- [math.cos(rotation), math.sin(rotation),
- -math.sin(rotation), math.cos(rotation),
- 0, 0], expand)
-
- def mergeTranslatedPage(self, page2, tx, ty, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is translated
- by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float tx: The translation on X axis
- :param float ty: The translation on Y axis
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
- return self.mergeTransformedPage(page2, [1, 0,
- 0, 1,
- tx, ty], expand)
-
- def mergeRotatedTranslatedPage(self, page2, rotation, tx, ty, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is rotated
- and translated by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float tx: The translation on X axis
- :param float ty: The translation on Y axis
- :param float rotation: The angle of the rotation, in degrees
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
-
- translation = [[1, 0, 0],
- [0, 1, 0],
- [-tx, -ty, 1]]
- rotation = math.radians(rotation)
- rotating = [[math.cos(rotation), math.sin(rotation), 0],
- [-math.sin(rotation), math.cos(rotation), 0],
- [0, 0, 1]]
- rtranslation = [[1, 0, 0],
- [0, 1, 0],
- [tx, ty, 1]]
- ctm = utils.matrixMultiply(translation, rotating)
- ctm = utils.matrixMultiply(ctm, rtranslation)
-
- return self.mergeTransformedPage(page2, [ctm[0][0], ctm[0][1],
- ctm[1][0], ctm[1][1],
- ctm[2][0], ctm[2][1]], expand)
-
- def mergeRotatedScaledPage(self, page2, rotation, scale, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is rotated
- and scaled by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float rotation: The angle of the rotation, in degrees
- :param float scale: The scaling factor
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
- rotation = math.radians(rotation)
- rotating = [[math.cos(rotation), math.sin(rotation), 0],
- [-math.sin(rotation), math.cos(rotation), 0],
- [0, 0, 1]]
- scaling = [[scale, 0, 0],
- [0, scale, 0],
- [0, 0, 1]]
- ctm = utils.matrixMultiply(rotating, scaling)
-
- return self.mergeTransformedPage(page2,
- [ctm[0][0], ctm[0][1],
- ctm[1][0], ctm[1][1],
- ctm[2][0], ctm[2][1]], expand)
-
- def mergeScaledTranslatedPage(self, page2, scale, tx, ty, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is translated
- and scaled by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float scale: The scaling factor
- :param float tx: The translation on X axis
- :param float ty: The translation on Y axis
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
-
- translation = [[1, 0, 0],
- [0, 1, 0],
- [tx, ty, 1]]
- scaling = [[scale, 0, 0],
- [0, scale, 0],
- [0, 0, 1]]
- ctm = utils.matrixMultiply(scaling, translation)
-
- return self.mergeTransformedPage(page2, [ctm[0][0], ctm[0][1],
- ctm[1][0], ctm[1][1],
- ctm[2][0], ctm[2][1]], expand)
-
- def mergeRotatedScaledTranslatedPage(self, page2, rotation, scale, tx, ty, expand=False):
- """
- This is similar to mergePage, but the stream to be merged is translated,
- rotated and scaled by appling a transformation matrix.
-
- :param PageObject page2: the page to be merged into this one. Should be
- an instance of :class:`PageObject`.
- :param float tx: The translation on X axis
- :param float ty: The translation on Y axis
- :param float rotation: The angle of the rotation, in degrees
- :param float scale: The scaling factor
- :param bool expand: Whether the page should be expanded to fit the
- dimensions of the page to be merged.
- """
- translation = [[1, 0, 0],
- [0, 1, 0],
- [tx, ty, 1]]
- rotation = math.radians(rotation)
- rotating = [[math.cos(rotation), math.sin(rotation), 0],
- [-math.sin(rotation), math.cos(rotation), 0],
- [0, 0, 1]]
- scaling = [[scale, 0, 0],
- [0, scale, 0],
- [0, 0, 1]]
- ctm = utils.matrixMultiply(rotating, scaling)
- ctm = utils.matrixMultiply(ctm, translation)
-
- return self.mergeTransformedPage(page2, [ctm[0][0], ctm[0][1],
- ctm[1][0], ctm[1][1],
- ctm[2][0], ctm[2][1]], expand)
-
- ##
- # Applys a transformation matrix the page.
- #
- # @param ctm A 6 elements tuple containing the operands of the
- # transformation matrix
- def addTransformation(self, ctm):
- """
- Applies a transformation matrix to the page.
-
- :param tuple ctm: A 6-element tuple containing the operands of the
- transformation matrix.
- """
- originalContent = self.getContents()
- if originalContent is not None:
- newContent = PageObject._addTransformationMatrix(
- originalContent, self.pdf, ctm)
- newContent = PageObject._pushPopGS(newContent, self.pdf)
- self[NameObject('/Contents')] = newContent
-
- def scale(self, sx, sy):
- """
- Scales a page by the given factors by appling a transformation
- matrix to its content and updating the page size.
-
- :param float sx: The scaling factor on horizontal axis.
- :param float sy: The scaling factor on vertical axis.
- """
- self.addTransformation([sx, 0,
- 0, sy,
- 0, 0])
- self.mediaBox = RectangleObject([
- float(self.mediaBox.getLowerLeft_x()) * sx,
- float(self.mediaBox.getLowerLeft_y()) * sy,
- float(self.mediaBox.getUpperRight_x()) * sx,
- float(self.mediaBox.getUpperRight_y()) * sy])
- if "/VP" in self:
- viewport = self["/VP"]
- if isinstance(viewport, ArrayObject):
- bbox = viewport[0]["/BBox"]
- else:
- bbox = viewport["/BBox"]
- scaled_bbox = RectangleObject([
- float(bbox[0]) * sx,
- float(bbox[1]) * sy,
- float(bbox[2]) * sx,
- float(bbox[3]) * sy])
- if isinstance(viewport, ArrayObject):
- self[NameObject("/VP")][NumberObject(0)][NameObject("/BBox")] = scaled_bbox
- else:
- self[NameObject("/VP")][NameObject("/BBox")] = scaled_bbox
-
- def scaleBy(self, factor):
- """
- Scales a page by the given factor by appling a transformation
- matrix to its content and updating the page size.
-
- :param float factor: The scaling factor (for both X and Y axis).
- """
- self.scale(factor, factor)
-
- def scaleTo(self, width, height):
- """
- Scales a page to the specified dimentions by appling a
- transformation matrix to its content and updating the page size.
-
- :param float width: The new width.
- :param float height: The new heigth.
- """
- sx = width / float(self.mediaBox.getUpperRight_x() -
- self.mediaBox.getLowerLeft_x ())
- sy = height / float(self.mediaBox.getUpperRight_y() -
- self.mediaBox.getLowerLeft_y ())
- self.scale(sx, sy)
-
- def compressContentStreams(self):
- """
- Compresses the size of this page by joining all content streams and
- applying a FlateDecode filter.
-
- However, it is possible that this function will perform no action if
- content stream compression becomes "automatic" for some reason.
- """
- content = self.getContents()
- if content is not None:
- if not isinstance(content, ContentStream):
- content = ContentStream(content, self.pdf)
- self[NameObject("/Contents")] = content.flateEncode()
-
- def extractText(self):
- """
- Locate all text drawing commands, in the order they are provided in the
- content stream, and extract the text. This works well for some PDF
- files, but poorly for others, depending on the generator used. This will
- be refined in the future. Do not rely on the order of text coming out of
- this function, as it will change if this function is made more
- sophisticated.
-
- :return: a unicode string object.
- """
- text = u_("")
- content = self["/Contents"].getObject()
- if not isinstance(content, ContentStream):
- content = ContentStream(content, self.pdf)
- # Note: we check all strings are TextStringObjects. ByteStringObjects
- # are strings where the byte->string encoding was unknown, so adding
- # them to the text here would be gibberish.
- for operands, operator in content.operations:
- if operator == b_("Tj"):
- _text = operands[0]
- if isinstance(_text, TextStringObject):
- text += _text
- elif operator == b_("T*"):
- text += "\n"
- elif operator == b_("'"):
- text += "\n"
- _text = operands[0]
- if isinstance(_text, TextStringObject):
- text += operands[0]
- elif operator == b_('"'):
- _text = operands[2]
- if isinstance(_text, TextStringObject):
- text += "\n"
- text += _text
- elif operator == b_("TJ"):
- for i in operands[0]:
- if isinstance(i, TextStringObject):
- text += i
- text += "\n"
- return text
-
- mediaBox = createRectangleAccessor("/MediaBox", ())
- """
- A :class:`RectangleObject`, expressed in default user space units,
- defining the boundaries of the physical medium on which the page is
- intended to be displayed or printed.
- """
-
- cropBox = createRectangleAccessor("/CropBox", ("/MediaBox",))
- """
- A :class:`RectangleObject`, expressed in default user space units,
- defining the visible region of default user space. When the page is
- displayed or printed, its contents are to be clipped (cropped) to this
- rectangle and then imposed on the output medium in some
- implementation-defined manner. Default value: same as :attr:`mediaBox`.
- """
-
- bleedBox = createRectangleAccessor("/BleedBox", ("/CropBox", "/MediaBox"))
- """
- A :class:`RectangleObject`, expressed in default user space units,
- defining the region to which the contents of the page should be clipped
- when output in a production enviroment.
- """
-
- trimBox = createRectangleAccessor("/TrimBox", ("/CropBox", "/MediaBox"))
- """
- A :class:`RectangleObject`, expressed in default user space units,
- defining the intended dimensions of the finished page after trimming.
- """
-
- artBox = createRectangleAccessor("/ArtBox", ("/CropBox", "/MediaBox"))
- """
- A :class:`RectangleObject`, expressed in default user space units,
- defining the extent of the page's meaningful content as intended by the
- page's creator.
- """
-
-
-class ContentStream(DecodedStreamObject):
- def __init__(self, stream, pdf):
- self.pdf = pdf
- self.operations = []
- # stream may be a StreamObject or an ArrayObject containing
- # multiple StreamObjects to be cat'd together.
- stream = stream.getObject()
- if isinstance(stream, ArrayObject):
- data = b_("")
- for s in stream:
- data += s.getObject().getData()
- stream = BytesIO(b_(data))
- else:
- stream = BytesIO(b_(stream.getData()))
- self.__parseContentStream(stream)
-
- def __parseContentStream(self, stream):
- # file("f:\\tmp.txt", "w").write(stream.read())
- stream.seek(0, 0)
- operands = []
- while True:
- peek = readNonWhitespace(stream)
- if peek == b_('') or ord_(peek) == 0:
- break
- stream.seek(-1, 1)
- if peek.isalpha() or peek == b_("'") or peek == b_('"'):
- operator = utils.readUntilRegex(stream,
- NameObject.delimiterPattern, True)
- if operator == b_("BI"):
- # begin inline image - a completely different parsing
- # mechanism is required, of course... thanks buddy...
- assert operands == []
- ii = self._readInlineImage(stream)
- self.operations.append((ii, b_("INLINE IMAGE")))
- else:
- self.operations.append((operands, operator))
- operands = []
- elif peek == b_('%'):
- # If we encounter a comment in the content stream, we have to
- # handle it here. Typically, readObject will handle
- # encountering a comment -- but readObject assumes that
- # following the comment must be the object we're trying to
- # read. In this case, it could be an operator instead.
- while peek not in (b_('\r'), b_('\n')):
- peek = stream.read(1)
- else:
- operands.append(readObject(stream, None))
-
- def _readInlineImage(self, stream):
- # begin reading just after the "BI" - begin image
- # first read the dictionary of settings.
- settings = DictionaryObject()
- while True:
- tok = readNonWhitespace(stream)
- stream.seek(-1, 1)
- if tok == b_("I"):
- # "ID" - begin of image data
- break
- key = readObject(stream, self.pdf)
- tok = readNonWhitespace(stream)
- stream.seek(-1, 1)
- value = readObject(stream, self.pdf)
- settings[key] = value
- # left at beginning of ID
- tmp = stream.read(3)
- assert tmp[:2] == b_("ID")
- data = b_("")
- while True:
- # Read the inline image, while checking for EI (End Image) operator.
- tok = stream.read(1)
- if tok == b_("E"):
- # Check for End Image
- tok2 = stream.read(1)
- if tok2 == b_("I"):
- # Data can contain EI, so check for the Q operator.
- tok3 = stream.read(1)
- info = tok + tok2
- # We need to find whitespace between EI and Q.
- has_q_whitespace = False
- while tok3 in utils.WHITESPACES:
- has_q_whitespace = True
- info += tok3
- tok3 = stream.read(1)
- if tok3 == b_("Q") and has_q_whitespace:
- stream.seek(-1, 1)
- break
- else:
- stream.seek(-1,1)
- data += info
- else:
- stream.seek(-1, 1)
- data += tok
- else:
- data += tok
- return {"settings": settings, "data": data}
-
- def _getData(self):
- newdata = BytesIO()
- for operands, operator in self.operations:
- if operator == b_("INLINE IMAGE"):
- newdata.write(b_("BI"))
- dicttext = BytesIO()
- operands["settings"].writeToStream(dicttext, None)
- newdata.write(dicttext.getvalue()[2:-2])
- newdata.write(b_("ID "))
- newdata.write(operands["data"])
- newdata.write(b_("EI"))
- else:
- for op in operands:
- op.writeToStream(newdata, None)
- newdata.write(b_(" "))
- newdata.write(b_(operator))
- newdata.write(b_("\n"))
- return newdata.getvalue()
-
- def _setData(self, value):
- self.__parseContentStream(BytesIO(b_(value)))
-
- _data = property(_getData, _setData)
-
-
-class DocumentInformation(DictionaryObject):
- """
- A class representing the basic document metadata provided in a PDF File.
- This class is accessible through
- :meth:`getDocumentInfo()`
-
- All text properties of the document metadata have
- *two* properties, eg. author and author_raw. The non-raw property will
- always return a ``TextStringObject``, making it ideal for a case where
- the metadata is being displayed. The raw property can sometimes return
- a ``ByteStringObject``, if PyPDF2 was unable to decode the string's
- text encoding; this requires additional safety in the caller and
- therefore is not as commonly accessed.
- """
-
- def __init__(self):
- DictionaryObject.__init__(self)
-
- def getText(self, key):
- retval = self.get(key, None)
- if isinstance(retval, TextStringObject):
- return retval
- return None
-
- title = property(lambda self: self.getText("/Title"))
- """Read-only property accessing the document's **title**.
- Returns a unicode string (``TextStringObject``) or ``None``
- if the title is not specified."""
- title_raw = property(lambda self: self.get("/Title"))
- """The "raw" version of title; can return a ``ByteStringObject``."""
-
- author = property(lambda self: self.getText("/Author"))
- """Read-only property accessing the document's **author**.
- Returns a unicode string (``TextStringObject``) or ``None``
- if the author is not specified."""
- author_raw = property(lambda self: self.get("/Author"))
- """The "raw" version of author; can return a ``ByteStringObject``."""
-
- subject = property(lambda self: self.getText("/Subject"))
- """Read-only property accessing the document's **subject**.
- Returns a unicode string (``TextStringObject``) or ``None``
- if the subject is not specified."""
- subject_raw = property(lambda self: self.get("/Subject"))
- """The "raw" version of subject; can return a ``ByteStringObject``."""
-
- creator = property(lambda self: self.getText("/Creator"))
- """Read-only property accessing the document's **creator**. If the
- document was converted to PDF from another format, this is the name of the
- application (e.g. OpenOffice) that created the original document from
- which it was converted. Returns a unicode string (``TextStringObject``)
- or ``None`` if the creator is not specified."""
- creator_raw = property(lambda self: self.get("/Creator"))
- """The "raw" version of creator; can return a ``ByteStringObject``."""
-
- producer = property(lambda self: self.getText("/Producer"))
- """Read-only property accessing the document's **producer**.
- If the document was converted to PDF from another format, this is
- the name of the application (for example, OSX Quartz) that converted
- it to PDF. Returns a unicode string (``TextStringObject``)
- or ``None`` if the producer is not specified."""
- producer_raw = property(lambda self: self.get("/Producer"))
- """The "raw" version of producer; can return a ``ByteStringObject``."""
-
-
-def convertToInt(d, size):
- if size > 8:
- raise utils.PdfReadError("invalid size in convertToInt")
- d = b_("\x00\x00\x00\x00\x00\x00\x00\x00") + b_(d)
- d = d[-8:]
- return struct.unpack(">q", d)[0]
-
-# ref: pdf1.8 spec section 3.5.2 algorithm 3.2
-_encryption_padding = b_('\x28\xbf\x4e\x5e\x4e\x75\x8a\x41\x64\x00\x4e\x56') + \
- b_('\xff\xfa\x01\x08\x2e\x2e\x00\xb6\xd0\x68\x3e\x80\x2f\x0c') + \
- b_('\xa9\xfe\x64\x53\x69\x7a')
-
-
-# Implementation of algorithm 3.2 of the PDF standard security handler,
-# section 3.5.2 of the PDF 1.6 reference.
-def _alg32(password, rev, keylen, owner_entry, p_entry, id1_entry, metadata_encrypt=True):
- # 1. Pad or truncate the password string to exactly 32 bytes. If the
- # password string is more than 32 bytes long, use only its first 32 bytes;
- # if it is less than 32 bytes long, pad it by appending the required number
- # of additional bytes from the beginning of the padding string
- # (_encryption_padding).
- password = b_((str_(password) + str_(_encryption_padding))[:32])
- # 2. Initialize the MD5 hash function and pass the result of step 1 as
- # input to this function.
- import struct
- m = md5(password)
- # 3. Pass the value of the encryption dictionary's /O entry to the MD5 hash
- # function.
- m.update(owner_entry.original_bytes)
- # 4. Treat the value of the /P entry as an unsigned 4-byte integer and pass
- # these bytes to the MD5 hash function, low-order byte first.
- p_entry = struct.pack('= 3 and not metadata_encrypt:
- m.update(b_("\xff\xff\xff\xff"))
- # 7. Finish the hash.
- md5_hash = m.digest()
- # 8. (Revision 3 or greater) Do the following 50 times: Take the output
- # from the previous MD5 hash and pass the first n bytes of the output as
- # input into a new MD5 hash, where n is the number of bytes of the
- # encryption key as defined by the value of the encryption dictionary's
- # /Length entry.
- if rev >= 3:
- for i in range(50):
- md5_hash = md5(md5_hash[:keylen]).digest()
- # 9. Set the encryption key to the first n bytes of the output from the
- # final MD5 hash, where n is always 5 for revision 2 but, for revision 3 or
- # greater, depends on the value of the encryption dictionary's /Length
- # entry.
- return md5_hash[:keylen]
-
-
-# Implementation of algorithm 3.3 of the PDF standard security handler,
-# section 3.5.2 of the PDF 1.6 reference.
-def _alg33(owner_pwd, user_pwd, rev, keylen):
- # steps 1 - 4
- key = _alg33_1(owner_pwd, rev, keylen)
- # 5. Pad or truncate the user password string as described in step 1 of
- # algorithm 3.2.
- user_pwd = b_((user_pwd + str_(_encryption_padding))[:32])
- # 6. Encrypt the result of step 5, using an RC4 encryption function with
- # the encryption key obtained in step 4.
- val = utils.RC4_encrypt(key, user_pwd)
- # 7. (Revision 3 or greater) Do the following 19 times: Take the output
- # from the previous invocation of the RC4 function and pass it as input to
- # a new invocation of the function; use an encryption key generated by
- # taking each byte of the encryption key obtained in step 4 and performing
- # an XOR operation between that byte and the single-byte value of the
- # iteration counter (from 1 to 19).
- if rev >= 3:
- for i in range(1, 20):
- new_key = ''
- for l in range(len(key)):
- new_key += chr(ord_(key[l]) ^ i)
- val = utils.RC4_encrypt(new_key, val)
- # 8. Store the output from the final invocation of the RC4 as the value of
- # the /O entry in the encryption dictionary.
- return val
-
-
-# Steps 1-4 of algorithm 3.3
-def _alg33_1(password, rev, keylen):
- # 1. Pad or truncate the owner password string as described in step 1 of
- # algorithm 3.2. If there is no owner password, use the user password
- # instead.
- password = b_((password + str_(_encryption_padding))[:32])
- # 2. Initialize the MD5 hash function and pass the result of step 1 as
- # input to this function.
- m = md5(password)
- # 3. (Revision 3 or greater) Do the following 50 times: Take the output
- # from the previous MD5 hash and pass it as input into a new MD5 hash.
- md5_hash = m.digest()
- if rev >= 3:
- for i in range(50):
- md5_hash = md5(md5_hash).digest()
- # 4. Create an RC4 encryption key using the first n bytes of the output
- # from the final MD5 hash, where n is always 5 for revision 2 but, for
- # revision 3 or greater, depends on the value of the encryption
- # dictionary's /Length entry.
- key = md5_hash[:keylen]
- return key
-
-
-# Implementation of algorithm 3.4 of the PDF standard security handler,
-# section 3.5.2 of the PDF 1.6 reference.
-def _alg34(password, owner_entry, p_entry, id1_entry):
- # 1. Create an encryption key based on the user password string, as
- # described in algorithm 3.2.
- key = _alg32(password, 2, 5, owner_entry, p_entry, id1_entry)
- # 2. Encrypt the 32-byte padding string shown in step 1 of algorithm 3.2,
- # using an RC4 encryption function with the encryption key from the
- # preceding step.
- U = utils.RC4_encrypt(key, _encryption_padding)
- # 3. Store the result of step 2 as the value of the /U entry in the
- # encryption dictionary.
- return U, key
-
-
-# Implementation of algorithm 3.4 of the PDF standard security handler,
-# section 3.5.2 of the PDF 1.6 reference.
-def _alg35(password, rev, keylen, owner_entry, p_entry, id1_entry, metadata_encrypt):
- # 1. Create an encryption key based on the user password string, as
- # described in Algorithm 3.2.
- key = _alg32(password, rev, keylen, owner_entry, p_entry, id1_entry)
- # 2. Initialize the MD5 hash function and pass the 32-byte padding string
- # shown in step 1 of Algorithm 3.2 as input to this function.
- m = md5()
- m.update(_encryption_padding)
- # 3. Pass the first element of the file's file identifier array (the value
- # of the ID entry in the document's trailer dictionary; see Table 3.13 on
- # page 73) to the hash function and finish the hash. (See implementation
- # note 25 in Appendix H.)
- m.update(id1_entry.original_bytes)
- md5_hash = m.digest()
- # 4. Encrypt the 16-byte result of the hash, using an RC4 encryption
- # function with the encryption key from step 1.
- val = utils.RC4_encrypt(key, md5_hash)
- # 5. Do the following 19 times: Take the output from the previous
- # invocation of the RC4 function and pass it as input to a new invocation
- # of the function; use an encryption key generated by taking each byte of
- # the original encryption key (obtained in step 2) and performing an XOR
- # operation between that byte and the single-byte value of the iteration
- # counter (from 1 to 19).
- for i in range(1, 20):
- new_key = b_('')
- for l in range(len(key)):
- new_key += b_(chr(ord_(key[l]) ^ i))
- val = utils.RC4_encrypt(new_key, val)
- # 6. Append 16 bytes of arbitrary padding to the output from the final
- # invocation of the RC4 function and store the 32-byte result as the value
- # of the U entry in the encryption dictionary.
- # (implementator note: I don't know what "arbitrary padding" is supposed to
- # mean, so I have used null bytes. This seems to match a few other
- # people's implementations)
- return val + (b_('\x00') * 16), key
diff --git a/vendor/PyPDF2/utils.py b/vendor/PyPDF2/utils.py
deleted file mode 100755
index 718a875c..00000000
--- a/vendor/PyPDF2/utils.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# Copyright (c) 2006, Mathieu Fenniak
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-"""
-Utility functions for PDF library.
-"""
-__author__ = "Mathieu Fenniak"
-__author_email__ = "biziqe@mathieu.fenniak.net"
-
-
-import sys
-
-try:
- import __builtin__ as builtins
-except ImportError: # Py3
- import builtins
-
-
-xrange_fn = getattr(builtins, "xrange", range)
-_basestring = getattr(builtins, "basestring", str)
-
-bytes_type = type(bytes()) # Works the same in Python 2.X and 3.X
-string_type = getattr(builtins, "unicode", str)
-int_types = (int, long) if sys.version_info[0] < 3 else (int,)
-
-
-# Make basic type tests more consistent
-def isString(s):
- """Test if arg is a string. Compatible with Python 2 and 3."""
- return isinstance(s, _basestring)
-
-
-def isInt(n):
- """Test if arg is an int. Compatible with Python 2 and 3."""
- return isinstance(n, int_types)
-
-
-def isBytes(b):
- """Test if arg is a bytes instance. Compatible with Python 2 and 3."""
- return isinstance(b, bytes_type)
-
-
-#custom implementation of warnings.formatwarning
-def formatWarning(message, category, filename, lineno, line=None):
- file = filename.replace("/", "\\").rsplit("\\", 1)[1] # find the file name
- return "%s: %s [%s:%s]\n" % (category.__name__, message, file, lineno)
-
-
-def readUntilWhitespace(stream, maxchars=None):
- """
- Reads non-whitespace characters and returns them.
- Stops upon encountering whitespace or when maxchars is reached.
- """
- txt = b_("")
- while True:
- tok = stream.read(1)
- if tok.isspace() or not tok:
- break
- txt += tok
- if len(txt) == maxchars:
- break
- return txt
-
-
-def readNonWhitespace(stream):
- """
- Finds and reads the next non-whitespace character (ignores whitespace).
- """
- tok = WHITESPACES[0]
- while tok in WHITESPACES:
- tok = stream.read(1)
- return tok
-
-
-def skipOverWhitespace(stream):
- """
- Similar to readNonWhitespace, but returns a Boolean if more than
- one whitespace character was read.
- """
- tok = WHITESPACES[0]
- cnt = 0;
- while tok in WHITESPACES:
- tok = stream.read(1)
- cnt+=1
- return (cnt > 1)
-
-
-def skipOverComment(stream):
- tok = stream.read(1)
- stream.seek(-1, 1)
- if tok == b_('%'):
- while tok not in (b_('\n'), b_('\r')):
- tok = stream.read(1)
-
-
-def readUntilRegex(stream, regex, ignore_eof=False):
- """
- Reads until the regular expression pattern matched (ignore the match)
- Raise PdfStreamError on premature end-of-file.
- :param bool ignore_eof: If true, ignore end-of-line and return immediately
- """
- name = b_('')
- while True:
- tok = stream.read(16)
- if not tok:
- # stream has truncated prematurely
- if ignore_eof == True:
- return name
- else:
- raise PdfStreamError("Stream has ended unexpectedly")
- m = regex.search(tok)
- if m is not None:
- name += tok[:m.start()]
- stream.seek(m.start()-len(tok), 1)
- break
- name += tok
- return name
-
-
-class ConvertFunctionsToVirtualList(object):
- def __init__(self, lengthFunction, getFunction):
- self.lengthFunction = lengthFunction
- self.getFunction = getFunction
-
- def __len__(self):
- return self.lengthFunction()
-
- def __getitem__(self, index):
- if isinstance(index, slice):
- indices = xrange_fn(*index.indices(len(self)))
- cls = type(self)
- return cls(indices.__len__, lambda idx: self[indices[idx]])
- if not isInt(index):
- raise TypeError("sequence indices must be integers")
- len_self = len(self)
- if index < 0:
- # support negative indexes
- index = len_self + index
- if index < 0 or index >= len_self:
- raise IndexError("sequence index out of range")
- return self.getFunction(index)
-
-
-def RC4_encrypt(key, plaintext):
- S = [i for i in range(256)]
- j = 0
- for i in range(256):
- j = (j + S[i] + ord_(key[i % len(key)])) % 256
- S[i], S[j] = S[j], S[i]
- i, j = 0, 0
- retval = b_("")
- for x in range(len(plaintext)):
- i = (i + 1) % 256
- j = (j + S[i]) % 256
- S[i], S[j] = S[j], S[i]
- t = S[(S[i] + S[j]) % 256]
- retval += b_(chr(ord_(plaintext[x]) ^ t))
- return retval
-
-
-def matrixMultiply(a, b):
- return [[sum([float(i)*float(j)
- for i, j in zip(row, col)]
- ) for col in zip(*b)]
- for row in a]
-
-
-def markLocation(stream):
- """Creates text file showing current location in context."""
- # Mainly for debugging
- RADIUS = 5000
- stream.seek(-RADIUS, 1)
- outputDoc = open('PyPDF2_pdfLocation.txt', 'w')
- outputDoc.write(stream.read(RADIUS))
- outputDoc.write('HERE')
- outputDoc.write(stream.read(RADIUS))
- outputDoc.close()
- stream.seek(-RADIUS, 1)
-
-
-class PyPdfError(Exception):
- pass
-
-
-class PdfReadError(PyPdfError):
- pass
-
-
-class PageSizeNotDefinedError(PyPdfError):
- pass
-
-
-class PdfReadWarning(UserWarning):
- pass
-
-
-class PdfStreamError(PdfReadError):
- pass
-
-
-if sys.version_info[0] < 3:
- def b_(s):
- return s
-else:
- B_CACHE = {}
-
- def b_(s):
- bc = B_CACHE
- if s in bc:
- return bc[s]
- if type(s) == bytes:
- return s
- else:
- r = s.encode('latin-1')
- if len(s) < 2:
- bc[s] = r
- return r
-
-
-def u_(s):
- if sys.version_info[0] < 3:
- return unicode(s, 'unicode_escape')
- else:
- return s
-
-
-def str_(b):
- if sys.version_info[0] < 3:
- return b
- else:
- if type(b) == bytes:
- return b.decode('latin-1')
- else:
- return b
-
-
-def ord_(b):
- if sys.version_info[0] < 3 or type(b) == str:
- return ord(b)
- else:
- return b
-
-
-def chr_(c):
- if sys.version_info[0] < 3:
- return c
- else:
- return chr(c)
-
-
-def barray(b):
- if sys.version_info[0] < 3:
- return b
- else:
- return bytearray(b)
-
-
-def hexencode(b):
- if sys.version_info[0] < 3:
- return b.encode('hex')
- else:
- import codecs
- coder = codecs.getencoder('hex_codec')
- return coder(b)[0]
-
-
-def hexStr(num):
- return hex(num).replace('L', '')
-
-
-WHITESPACES = [b_(x) for x in [' ', '\n', '\r', '\t', '\x00']]
diff --git a/vendor/PyPDF2/xmp.py b/vendor/PyPDF2/xmp.py
deleted file mode 100755
index 7ba62f0d..00000000
--- a/vendor/PyPDF2/xmp.py
+++ /dev/null
@@ -1,358 +0,0 @@
-import re
-import datetime
-import decimal
-from .generic import PdfObject
-from xml.dom import getDOMImplementation
-from xml.dom.minidom import parseString
-from .utils import u_
-
-RDF_NAMESPACE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-DC_NAMESPACE = "http://purl.org/dc/elements/1.1/"
-XMP_NAMESPACE = "http://ns.adobe.com/xap/1.0/"
-PDF_NAMESPACE = "http://ns.adobe.com/pdf/1.3/"
-XMPMM_NAMESPACE = "http://ns.adobe.com/xap/1.0/mm/"
-
-# What is the PDFX namespace, you might ask? I might ask that too. It's
-# a completely undocumented namespace used to place "custom metadata"
-# properties, which are arbitrary metadata properties with no semantic or
-# documented meaning. Elements in the namespace are key/value-style storage,
-# where the element name is the key and the content is the value. The keys
-# are transformed into valid XML identifiers by substituting an invalid
-# identifier character with \u2182 followed by the unicode hex ID of the
-# original character. A key like "my car" is therefore "my\u21820020car".
-#
-# \u2182, in case you're wondering, is the unicode character
-# \u{ROMAN NUMERAL TEN THOUSAND}, a straightforward and obvious choice for
-# escaping characters.
-#
-# Intentional users of the pdfx namespace should be shot on sight. A
-# custom data schema and sensical XML elements could be used instead, as is
-# suggested by Adobe's own documentation on XMP (under "Extensibility of
-# Schemas").
-#
-# Information presented here on the /pdfx/ schema is a result of limited
-# reverse engineering, and does not constitute a full specification.
-PDFX_NAMESPACE = "http://ns.adobe.com/pdfx/1.3/"
-
-iso8601 = re.compile("""
- (?P[0-9]{4})
- (-
- (?P[0-9]{2})
- (-
- (?P[0-9]+)
- (T
- (?P[0-9]{2}):
- (?P[0-9]{2})
- (:(?P[0-9]{2}(.[0-9]+)?))?
- (?PZ|[-+][0-9]{2}:[0-9]{2})
- )?
- )?
- )?
- """, re.VERBOSE)
-
-
-class XmpInformation(PdfObject):
- """
- An object that represents Adobe XMP metadata.
- Usually accessed by :meth:`getXmpMetadata()`
- """
-
- def __init__(self, stream):
- self.stream = stream
- docRoot = parseString(self.stream.getData())
- self.rdfRoot = docRoot.getElementsByTagNameNS(RDF_NAMESPACE, "RDF")[0]
- self.cache = {}
-
- def writeToStream(self, stream, encryption_key):
- self.stream.writeToStream(stream, encryption_key)
-
- def getElement(self, aboutUri, namespace, name):
- for desc in self.rdfRoot.getElementsByTagNameNS(RDF_NAMESPACE, "Description"):
- if desc.getAttributeNS(RDF_NAMESPACE, "about") == aboutUri:
- attr = desc.getAttributeNodeNS(namespace, name)
- if attr != None:
- yield attr
- for element in desc.getElementsByTagNameNS(namespace, name):
- yield element
-
- def getNodesInNamespace(self, aboutUri, namespace):
- for desc in self.rdfRoot.getElementsByTagNameNS(RDF_NAMESPACE, "Description"):
- if desc.getAttributeNS(RDF_NAMESPACE, "about") == aboutUri:
- for i in range(desc.attributes.length):
- attr = desc.attributes.item(i)
- if attr.namespaceURI == namespace:
- yield attr
- for child in desc.childNodes:
- if child.namespaceURI == namespace:
- yield child
-
- def _getText(self, element):
- text = ""
- for child in element.childNodes:
- if child.nodeType == child.TEXT_NODE:
- text += child.data
- return text
-
- def _converter_string(value):
- return value
-
- def _converter_date(value):
- m = iso8601.match(value)
- year = int(m.group("year"))
- month = int(m.group("month") or "1")
- day = int(m.group("day") or "1")
- hour = int(m.group("hour") or "0")
- minute = int(m.group("minute") or "0")
- second = decimal.Decimal(m.group("second") or "0")
- seconds = second.to_integral(decimal.ROUND_FLOOR)
- milliseconds = (second - seconds) * 1000000
- tzd = m.group("tzd") or "Z"
- dt = datetime.datetime(year, month, day, hour, minute, seconds, milliseconds)
- if tzd != "Z":
- tzd_hours, tzd_minutes = [int(x) for x in tzd.split(":")]
- tzd_hours *= -1
- if tzd_hours < 0:
- tzd_minutes *= -1
- dt = dt + datetime.timedelta(hours=tzd_hours, minutes=tzd_minutes)
- return dt
- _test_converter_date = staticmethod(_converter_date)
-
- def _getter_bag(namespace, name, converter):
- def get(self):
- cached = self.cache.get(namespace, {}).get(name)
- if cached:
- return cached
- retval = []
- for element in self.getElement("", namespace, name):
- bags = element.getElementsByTagNameNS(RDF_NAMESPACE, "Bag")
- if len(bags):
- for bag in bags:
- for item in bag.getElementsByTagNameNS(RDF_NAMESPACE, "li"):
- value = self._getText(item)
- value = converter(value)
- retval.append(value)
- ns_cache = self.cache.setdefault(namespace, {})
- ns_cache[name] = retval
- return retval
- return get
-
- def _getter_seq(namespace, name, converter):
- def get(self):
- cached = self.cache.get(namespace, {}).get(name)
- if cached:
- return cached
- retval = []
- for element in self.getElement("", namespace, name):
- seqs = element.getElementsByTagNameNS(RDF_NAMESPACE, "Seq")
- if len(seqs):
- for seq in seqs:
- for item in seq.getElementsByTagNameNS(RDF_NAMESPACE, "li"):
- value = self._getText(item)
- value = converter(value)
- retval.append(value)
- else:
- value = converter(self._getText(element))
- retval.append(value)
- ns_cache = self.cache.setdefault(namespace, {})
- ns_cache[name] = retval
- return retval
- return get
-
- def _getter_langalt(namespace, name, converter):
- def get(self):
- cached = self.cache.get(namespace, {}).get(name)
- if cached:
- return cached
- retval = {}
- for element in self.getElement("", namespace, name):
- alts = element.getElementsByTagNameNS(RDF_NAMESPACE, "Alt")
- if len(alts):
- for alt in alts:
- for item in alt.getElementsByTagNameNS(RDF_NAMESPACE, "li"):
- value = self._getText(item)
- value = converter(value)
- retval[item.getAttribute("xml:lang")] = value
- else:
- retval["x-default"] = converter(self._getText(element))
- ns_cache = self.cache.setdefault(namespace, {})
- ns_cache[name] = retval
- return retval
- return get
-
- def _getter_single(namespace, name, converter):
- def get(self):
- cached = self.cache.get(namespace, {}).get(name)
- if cached:
- return cached
- value = None
- for element in self.getElement("", namespace, name):
- if element.nodeType == element.ATTRIBUTE_NODE:
- value = element.nodeValue
- else:
- value = self._getText(element)
- break
- if value != None:
- value = converter(value)
- ns_cache = self.cache.setdefault(namespace, {})
- ns_cache[name] = value
- return value
- return get
-
- dc_contributor = property(_getter_bag(DC_NAMESPACE, "contributor", _converter_string))
- """
- Contributors to the resource (other than the authors). An unsorted
- array of names.
- """
-
- dc_coverage = property(_getter_single(DC_NAMESPACE, "coverage", _converter_string))
- """
- Text describing the extent or scope of the resource.
- """
-
- dc_creator = property(_getter_seq(DC_NAMESPACE, "creator", _converter_string))
- """
- A sorted array of names of the authors of the resource, listed in order
- of precedence.
- """
-
- dc_date = property(_getter_seq(DC_NAMESPACE, "date", _converter_date))
- """
- A sorted array of dates (datetime.datetime instances) of signifigance to
- the resource. The dates and times are in UTC.
- """
-
- dc_description = property(_getter_langalt(DC_NAMESPACE, "description", _converter_string))
- """
- A language-keyed dictionary of textual descriptions of the content of the
- resource.
- """
-
- dc_format = property(_getter_single(DC_NAMESPACE, "format", _converter_string))
- """
- The mime-type of the resource.
- """
-
- dc_identifier = property(_getter_single(DC_NAMESPACE, "identifier", _converter_string))
- """
- Unique identifier of the resource.
- """
-
- dc_language = property(_getter_bag(DC_NAMESPACE, "language", _converter_string))
- """
- An unordered array specifying the languages used in the resource.
- """
-
- dc_publisher = property(_getter_bag(DC_NAMESPACE, "publisher", _converter_string))
- """
- An unordered array of publisher names.
- """
-
- dc_relation = property(_getter_bag(DC_NAMESPACE, "relation", _converter_string))
- """
- An unordered array of text descriptions of relationships to other
- documents.
- """
-
- dc_rights = property(_getter_langalt(DC_NAMESPACE, "rights", _converter_string))
- """
- A language-keyed dictionary of textual descriptions of the rights the
- user has to this resource.
- """
-
- dc_source = property(_getter_single(DC_NAMESPACE, "source", _converter_string))
- """
- Unique identifier of the work from which this resource was derived.
- """
-
- dc_subject = property(_getter_bag(DC_NAMESPACE, "subject", _converter_string))
- """
- An unordered array of descriptive phrases or keywrods that specify the
- topic of the content of the resource.
- """
-
- dc_title = property(_getter_langalt(DC_NAMESPACE, "title", _converter_string))
- """
- A language-keyed dictionary of the title of the resource.
- """
-
- dc_type = property(_getter_bag(DC_NAMESPACE, "type", _converter_string))
- """
- An unordered array of textual descriptions of the document type.
- """
-
- pdf_keywords = property(_getter_single(PDF_NAMESPACE, "Keywords", _converter_string))
- """
- An unformatted text string representing document keywords.
- """
-
- pdf_pdfversion = property(_getter_single(PDF_NAMESPACE, "PDFVersion", _converter_string))
- """
- The PDF file version, for example 1.0, 1.3.
- """
-
- pdf_producer = property(_getter_single(PDF_NAMESPACE, "Producer", _converter_string))
- """
- The name of the tool that created the PDF document.
- """
-
- xmp_createDate = property(_getter_single(XMP_NAMESPACE, "CreateDate", _converter_date))
- """
- The date and time the resource was originally created. The date and
- time are returned as a UTC datetime.datetime object.
- """
-
- xmp_modifyDate = property(_getter_single(XMP_NAMESPACE, "ModifyDate", _converter_date))
- """
- The date and time the resource was last modified. The date and time
- are returned as a UTC datetime.datetime object.
- """
-
- xmp_metadataDate = property(_getter_single(XMP_NAMESPACE, "MetadataDate", _converter_date))
- """
- The date and time that any metadata for this resource was last
- changed. The date and time are returned as a UTC datetime.datetime
- object.
- """
-
- xmp_creatorTool = property(_getter_single(XMP_NAMESPACE, "CreatorTool", _converter_string))
- """
- The name of the first known tool used to create the resource.
- """
-
- xmpmm_documentId = property(_getter_single(XMPMM_NAMESPACE, "DocumentID", _converter_string))
- """
- The common identifier for all versions and renditions of this resource.
- """
-
- xmpmm_instanceId = property(_getter_single(XMPMM_NAMESPACE, "InstanceID", _converter_string))
- """
- An identifier for a specific incarnation of a document, updated each
- time a file is saved.
- """
-
- def custom_properties(self):
- if not hasattr(self, "_custom_properties"):
- self._custom_properties = {}
- for node in self.getNodesInNamespace("", PDFX_NAMESPACE):
- key = node.localName
- while True:
- # see documentation about PDFX_NAMESPACE earlier in file
- idx = key.find(u_("\u2182"))
- if idx == -1:
- break
- key = key[:idx] + chr(int(key[idx+1:idx+5], base=16)) + key[idx+5:]
- if node.nodeType == node.ATTRIBUTE_NODE:
- value = node.nodeValue
- else:
- value = self._getText(node)
- self._custom_properties[key] = value
- return self._custom_properties
-
- custom_properties = property(custom_properties)
- """
- Retrieves custom metadata properties defined in the undocumented pdfx
- metadata schema.
-
- :return: a dictionary of key/value items for custom metadata properties.
- :rtype: dict
- """
diff --git a/vendor/_version.py b/vendor/_version.py
deleted file mode 100644
index 6d013711..00000000
--- a/vendor/_version.py
+++ /dev/null
@@ -1 +0,0 @@
-__version__ = '5.0.6'
\ No newline at end of file
diff --git a/vendor/babel/AUTHORS b/vendor/babel/AUTHORS
deleted file mode 100644
index 09d0bc03..00000000
--- a/vendor/babel/AUTHORS
+++ /dev/null
@@ -1,28 +0,0 @@
-Babel is written and maintained by the Babel team and various contributors:
-
-Maintainer and Current Project Lead:
-
-- Armin Ronacher
-
-Contributors:
-
-- Christopher Lenz
-- Alex Morega
-- Felix Schwarz
-- Pedro Algarvio
-- Jeroen Ruigrok van der Werven
-- Philip Jenvey
-- Tobias Bieniek
-- Jonas Borgström
-- Daniel Neuhäuser
-- Nick Retallack
-- Thomas Waldmann
-- Lennart Regebro
-
-Babel was previously developed under the Copyright of Edgewall Software. The
-following copyright notice holds true for releases before 2013: "Copyright (c)
-2007 - 2011 by Edgewall Software"
-
-In addition to the regular contributions Babel includes a fork of Lennart
-Regebro's tzlocal that originally was licensed under the CC0 license. The
-original copyright of that project is "Copyright 2013 by Lennart Regebro".
diff --git a/vendor/babel/LICENSE b/vendor/babel/LICENSE
deleted file mode 100644
index 1f1f55b6..00000000
--- a/vendor/babel/LICENSE
+++ /dev/null
@@ -1,29 +0,0 @@
-Copyright (C) 2013 by the Babel Team, see AUTHORS for more information.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- 3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/babel/__init__.py b/vendor/babel/__init__.py
deleted file mode 100644
index dd9f17e0..00000000
--- a/vendor/babel/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel
- ~~~~~
-
- Integrated collection of utilities that assist in internationalizing and
- localizing applications.
-
- This package is basically composed of two major parts:
-
- * tools to build and work with ``gettext`` message catalogs
- * a Python interface to the CLDR (Common Locale Data Repository), providing
- access to various locale display names, localized number and date
- formatting, etc.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-from babel.core import UnknownLocaleError, Locale, default_locale, \
- negotiate_locale, parse_locale, get_locale_identifier
-
-
-__version__ = '1.3'
diff --git a/vendor/babel/_compat.py b/vendor/babel/_compat.py
deleted file mode 100644
index 86096daa..00000000
--- a/vendor/babel/_compat.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import sys
-
-PY2 = sys.version_info[0] == 2
-
-_identity = lambda x: x
-
-
-if not PY2:
- text_type = str
- string_types = (str,)
- integer_types = (int, )
- unichr = chr
-
- text_to_native = lambda s, enc: s
-
- iterkeys = lambda d: iter(d.keys())
- itervalues = lambda d: iter(d.values())
- iteritems = lambda d: iter(d.items())
-
- from io import StringIO, BytesIO
- import pickle
-
- izip = zip
- imap = map
- range_type = range
-
- cmp = lambda a, b: (a > b) - (a < b)
-
-else:
- text_type = unicode
- string_types = (str, unicode)
- integer_types = (int, long)
-
- text_to_native = lambda s, enc: s.encode(enc)
- unichr = unichr
-
- iterkeys = lambda d: d.iterkeys()
- itervalues = lambda d: d.itervalues()
- iteritems = lambda d: d.iteritems()
-
- from cStringIO import StringIO as BytesIO
- from StringIO import StringIO
- import cPickle as pickle
-
- from itertools import izip, imap
- range_type = xrange
-
- cmp = cmp
-
-
-number_types = integer_types + (float,)
diff --git a/vendor/babel/core.py b/vendor/babel/core.py
deleted file mode 100644
index 6e6e6d61..00000000
--- a/vendor/babel/core.py
+++ /dev/null
@@ -1,941 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.core
- ~~~~~~~~~~
-
- Core locale representation and locale data access.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-import os
-
-from babel import localedata
-from babel._compat import pickle, string_types
-
-__all__ = ['UnknownLocaleError', 'Locale', 'default_locale', 'negotiate_locale',
- 'parse_locale']
-
-
-_global_data = None
-
-
-def _raise_no_data_error():
- raise RuntimeError('The babel data files are not available. '
- 'This usually happens because you are using '
- 'a source checkout from Babel and you did '
- 'not build the data files. Just make sure '
- 'to run "python setup.py import_cldr" before '
- 'installing the library.')
-
-
-def get_global(key):
- """Return the dictionary for the given key in the global data.
-
- The global data is stored in the ``babel/global.dat`` file and contains
- information independent of individual locales.
-
- >>> get_global('zone_aliases')['UTC']
- u'Etc/GMT'
- >>> get_global('zone_territories')['Europe/Berlin']
- u'DE'
-
- .. versionadded:: 0.9
-
- :param key: the data key
- """
- global _global_data
- if _global_data is None:
- dirname = os.path.join(os.path.dirname(__file__))
- filename = os.path.join(dirname, 'global.dat')
- if not os.path.isfile(filename):
- _raise_no_data_error()
- fileobj = open(filename, 'rb')
- try:
- _global_data = pickle.load(fileobj)
- finally:
- fileobj.close()
- return _global_data.get(key, {})
-
-
-LOCALE_ALIASES = {
- 'ar': 'ar_SY', 'bg': 'bg_BG', 'bs': 'bs_BA', 'ca': 'ca_ES', 'cs': 'cs_CZ',
- 'da': 'da_DK', 'de': 'de_DE', 'el': 'el_GR', 'en': 'en_US', 'es': 'es_ES',
- 'et': 'et_EE', 'fa': 'fa_IR', 'fi': 'fi_FI', 'fr': 'fr_FR', 'gl': 'gl_ES',
- 'he': 'he_IL', 'hu': 'hu_HU', 'id': 'id_ID', 'is': 'is_IS', 'it': 'it_IT',
- 'ja': 'ja_JP', 'km': 'km_KH', 'ko': 'ko_KR', 'lt': 'lt_LT', 'lv': 'lv_LV',
- 'mk': 'mk_MK', 'nl': 'nl_NL', 'nn': 'nn_NO', 'no': 'nb_NO', 'pl': 'pl_PL',
- 'pt': 'pt_PT', 'ro': 'ro_RO', 'ru': 'ru_RU', 'sk': 'sk_SK', 'sl': 'sl_SI',
- 'sv': 'sv_SE', 'th': 'th_TH', 'tr': 'tr_TR', 'uk': 'uk_UA'
-}
-
-
-class UnknownLocaleError(Exception):
- """Exception thrown when a locale is requested for which no locale data
- is available.
- """
-
- def __init__(self, identifier):
- """Create the exception.
-
- :param identifier: the identifier string of the unsupported locale
- """
- Exception.__init__(self, 'unknown locale %r' % identifier)
-
- #: The identifier of the locale that could not be found.
- self.identifier = identifier
-
-
-class Locale(object):
- """Representation of a specific locale.
-
- >>> locale = Locale('en', 'US')
- >>> repr(locale)
- "Locale('en', territory='US')"
- >>> locale.display_name
- u'English (United States)'
-
- A `Locale` object can also be instantiated from a raw locale string:
-
- >>> locale = Locale.parse('en-US', sep='-')
- >>> repr(locale)
- "Locale('en', territory='US')"
-
- `Locale` objects provide access to a collection of locale data, such as
- territory and language names, number and date format patterns, and more:
-
- >>> locale.number_symbols['decimal']
- u'.'
-
- If a locale is requested for which no locale data is available, an
- `UnknownLocaleError` is raised:
-
- >>> Locale.parse('en_DE')
- Traceback (most recent call last):
- ...
- UnknownLocaleError: unknown locale 'en_DE'
-
- For more information see :rfc:`3066`.
- """
-
- def __init__(self, language, territory=None, script=None, variant=None):
- """Initialize the locale object from the given identifier components.
-
- >>> locale = Locale('en', 'US')
- >>> locale.language
- 'en'
- >>> locale.territory
- 'US'
-
- :param language: the language code
- :param territory: the territory (country or region) code
- :param script: the script code
- :param variant: the variant code
- :raise `UnknownLocaleError`: if no locale data is available for the
- requested locale
- """
- #: the language code
- self.language = language
- #: the territory (country or region) code
- self.territory = territory
- #: the script code
- self.script = script
- #: the variant code
- self.variant = variant
- self.__data = None
-
- identifier = str(self)
- if not localedata.exists(identifier):
- raise UnknownLocaleError(identifier)
-
- @classmethod
- def default(cls, category=None, aliases=LOCALE_ALIASES):
- """Return the system default locale for the specified category.
-
- >>> for name in ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES']:
- ... os.environ[name] = ''
- >>> os.environ['LANG'] = 'fr_FR.UTF-8'
- >>> Locale.default('LC_MESSAGES')
- Locale('fr', territory='FR')
-
- The following fallbacks to the variable are always considered:
-
- - ``LANGUAGE``
- - ``LC_ALL``
- - ``LC_CTYPE``
- - ``LANG``
-
- :param category: one of the ``LC_XXX`` environment variable names
- :param aliases: a dictionary of aliases for locale identifiers
- """
- # XXX: use likely subtag expansion here instead of the
- # aliases dictionary.
- locale_string = default_locale(category, aliases=aliases)
- return cls.parse(locale_string)
-
- @classmethod
- def negotiate(cls, preferred, available, sep='_', aliases=LOCALE_ALIASES):
- """Find the best match between available and requested locale strings.
-
- >>> Locale.negotiate(['de_DE', 'en_US'], ['de_DE', 'de_AT'])
- Locale('de', territory='DE')
- >>> Locale.negotiate(['de_DE', 'en_US'], ['en', 'de'])
- Locale('de')
- >>> Locale.negotiate(['de_DE', 'de'], ['en_US'])
-
- You can specify the character used in the locale identifiers to separate
- the differnet components. This separator is applied to both lists. Also,
- case is ignored in the comparison:
-
- >>> Locale.negotiate(['de-DE', 'de'], ['en-us', 'de-de'], sep='-')
- Locale('de', territory='DE')
-
- :param preferred: the list of locale identifers preferred by the user
- :param available: the list of locale identifiers available
- :param aliases: a dictionary of aliases for locale identifiers
- """
- identifier = negotiate_locale(preferred, available, sep=sep,
- aliases=aliases)
- if identifier:
- return Locale.parse(identifier, sep=sep)
-
- @classmethod
- def parse(cls, identifier, sep='_', resolve_likely_subtags=True):
- """Create a `Locale` instance for the given locale identifier.
-
- >>> l = Locale.parse('de-DE', sep='-')
- >>> l.display_name
- u'Deutsch (Deutschland)'
-
- If the `identifier` parameter is not a string, but actually a `Locale`
- object, that object is returned:
-
- >>> Locale.parse(l)
- Locale('de', territory='DE')
-
- This also can perform resolving of likely subtags which it does
- by default. This is for instance useful to figure out the most
- likely locale for a territory you can use ``'und'`` as the
- language tag:
-
- >>> Locale.parse('und_AT')
- Locale('de', territory='AT')
-
- :param identifier: the locale identifier string
- :param sep: optional component separator
- :param resolve_likely_subtags: if this is specified then a locale will
- have its likely subtag resolved if the
- locale otherwise does not exist. For
- instance ``zh_TW`` by itself is not a
- locale that exists but Babel can
- automatically expand it to the full
- form of ``zh_hant_TW``. Note that this
- expansion is only taking place if no
- locale exists otherwise. For instance
- there is a locale ``en`` that can exist
- by itself.
- :raise `ValueError`: if the string does not appear to be a valid locale
- identifier
- :raise `UnknownLocaleError`: if no locale data is available for the
- requested locale
- """
- if identifier is None:
- return None
- elif isinstance(identifier, Locale):
- return identifier
- elif not isinstance(identifier, string_types):
- raise TypeError('Unxpected value for identifier: %r' % (identifier,))
-
- parts = parse_locale(identifier, sep=sep)
- input_id = get_locale_identifier(parts)
-
- def _try_load(parts):
- try:
- return cls(*parts)
- except UnknownLocaleError:
- return None
-
- def _try_load_reducing(parts):
- # Success on first hit, return it.
- locale = _try_load(parts)
- if locale is not None:
- return locale
-
- # Now try without script and variant
- locale = _try_load(parts[:2])
- if locale is not None:
- return locale
-
- locale = _try_load(parts)
- if locale is not None:
- return locale
- if not resolve_likely_subtags:
- raise UnknownLocaleError(input_id)
-
- # From here onwards is some very bad likely subtag resolving. This
- # whole logic is not entirely correct but good enough (tm) for the
- # time being. This has been added so that zh_TW does not cause
- # errors for people when they upgrade. Later we should properly
- # implement ICU like fuzzy locale objects and provide a way to
- # maximize and minimize locale tags.
-
- language, territory, script, variant = parts
- language = get_global('language_aliases').get(language, language)
- territory = get_global('territory_aliases').get(territory, territory)
- script = get_global('script_aliases').get(script, script)
- variant = get_global('variant_aliases').get(variant, variant)
-
- if territory == 'ZZ':
- territory = None
- if script == 'Zzzz':
- script = None
-
- parts = language, territory, script, variant
-
- # First match: try the whole identifier
- new_id = get_locale_identifier(parts)
- likely_subtag = get_global('likely_subtags').get(new_id)
- if likely_subtag is not None:
- locale = _try_load_reducing(parse_locale(likely_subtag))
- if locale is not None:
- return locale
-
- # If we did not find anything so far, try again with a
- # simplified identifier that is just the language
- likely_subtag = get_global('likely_subtags').get(language)
- if likely_subtag is not None:
- language2, _, script2, variant2 = parse_locale(likely_subtag)
- locale = _try_load_reducing((language2, territory, script2, variant2))
- if locale is not None:
- return locale
-
- raise UnknownLocaleError(input_id)
-
- def __eq__(self, other):
- for key in ('language', 'territory', 'script', 'variant'):
- if not hasattr(other, key):
- return False
- return (self.language == other.language) and \
- (self.territory == other.territory) and \
- (self.script == other.script) and \
- (self.variant == other.variant)
-
- def __ne__(self, other):
- return not self.__eq__(other)
-
- def __repr__(self):
- parameters = ['']
- for key in ('territory', 'script', 'variant'):
- value = getattr(self, key)
- if value is not None:
- parameters.append('%s=%r' % (key, value))
- parameter_string = '%r' % self.language + ', '.join(parameters)
- return 'Locale(%s)' % parameter_string
-
- def __str__(self):
- return get_locale_identifier((self.language, self.territory,
- self.script, self.variant))
-
- @property
- def _data(self):
- if self.__data is None:
- self.__data = localedata.LocaleDataDict(localedata.load(str(self)))
- return self.__data
-
- def get_display_name(self, locale=None):
- """Return the display name of the locale using the given locale.
-
- The display name will include the language, territory, script, and
- variant, if those are specified.
-
- >>> Locale('zh', 'CN', script='Hans').get_display_name('en')
- u'Chinese (Simplified, China)'
-
- :param locale: the locale to use
- """
- if locale is None:
- locale = self
- locale = Locale.parse(locale)
- retval = locale.languages.get(self.language)
- if self.territory or self.script or self.variant:
- details = []
- if self.script:
- details.append(locale.scripts.get(self.script))
- if self.territory:
- details.append(locale.territories.get(self.territory))
- if self.variant:
- details.append(locale.variants.get(self.variant))
- details = filter(None, details)
- if details:
- retval += ' (%s)' % u', '.join(details)
- return retval
-
- display_name = property(get_display_name, doc="""\
- The localized display name of the locale.
-
- >>> Locale('en').display_name
- u'English'
- >>> Locale('en', 'US').display_name
- u'English (United States)'
- >>> Locale('sv').display_name
- u'svenska'
-
- :type: `unicode`
- """)
-
- def get_language_name(self, locale=None):
- """Return the language of this locale in the given locale.
-
- >>> Locale('zh', 'CN', script='Hans').get_language_name('de')
- u'Chinesisch'
-
- .. versionadded:: 1.0
-
- :param locale: the locale to use
- """
- if locale is None:
- locale = self
- locale = Locale.parse(locale)
- return locale.languages.get(self.language)
-
- language_name = property(get_language_name, doc="""\
- The localized language name of the locale.
-
- >>> Locale('en', 'US').language_name
- u'English'
- """)
-
- def get_territory_name(self, locale=None):
- """Return the territory name in the given locale."""
- if locale is None:
- locale = self
- locale = Locale.parse(locale)
- return locale.territories.get(self.territory)
-
- territory_name = property(get_territory_name, doc="""\
- The localized territory name of the locale if available.
-
- >>> Locale('de', 'DE').territory_name
- u'Deutschland'
- """)
-
- def get_script_name(self, locale=None):
- """Return the script name in the given locale."""
- if locale is None:
- locale = self
- locale = Locale.parse(locale)
- return locale.scripts.get(self.script)
-
- script_name = property(get_script_name, doc="""\
- The localized script name of the locale if available.
-
- >>> Locale('ms', 'SG', script='Latn').script_name
- u'Latin'
- """)
-
- @property
- def english_name(self):
- """The english display name of the locale.
-
- >>> Locale('de').english_name
- u'German'
- >>> Locale('de', 'DE').english_name
- u'German (Germany)'
-
- :type: `unicode`"""
- return self.get_display_name(Locale('en'))
-
- #{ General Locale Display Names
-
- @property
- def languages(self):
- """Mapping of language codes to translated language names.
-
- >>> Locale('de', 'DE').languages['ja']
- u'Japanisch'
-
- See `ISO 639 `_ for
- more information.
- """
- return self._data['languages']
-
- @property
- def scripts(self):
- """Mapping of script codes to translated script names.
-
- >>> Locale('en', 'US').scripts['Hira']
- u'Hiragana'
-
- See `ISO 15924 `_
- for more information.
- """
- return self._data['scripts']
-
- @property
- def territories(self):
- """Mapping of script codes to translated script names.
-
- >>> Locale('es', 'CO').territories['DE']
- u'Alemania'
-
- See `ISO 3166 `_
- for more information.
- """
- return self._data['territories']
-
- @property
- def variants(self):
- """Mapping of script codes to translated script names.
-
- >>> Locale('de', 'DE').variants['1901']
- u'Alte deutsche Rechtschreibung'
- """
- return self._data['variants']
-
- #{ Number Formatting
-
- @property
- def currencies(self):
- """Mapping of currency codes to translated currency names. This
- only returns the generic form of the currency name, not the count
- specific one. If an actual number is requested use the
- :func:`babel.numbers.get_currency_name` function.
-
- >>> Locale('en').currencies['COP']
- u'Colombian Peso'
- >>> Locale('de', 'DE').currencies['COP']
- u'Kolumbianischer Peso'
- """
- return self._data['currency_names']
-
- @property
- def currency_symbols(self):
- """Mapping of currency codes to symbols.
-
- >>> Locale('en', 'US').currency_symbols['USD']
- u'$'
- >>> Locale('es', 'CO').currency_symbols['USD']
- u'US$'
- """
- return self._data['currency_symbols']
-
- @property
- def number_symbols(self):
- """Symbols used in number formatting.
-
- >>> Locale('fr', 'FR').number_symbols['decimal']
- u','
- """
- return self._data['number_symbols']
-
- @property
- def decimal_formats(self):
- """Locale patterns for decimal number formatting.
-
- >>> Locale('en', 'US').decimal_formats[None]
-
- """
- return self._data['decimal_formats']
-
- @property
- def currency_formats(self):
- """Locale patterns for currency number formatting.
-
- >>> print Locale('en', 'US').currency_formats[None]
-
- """
- return self._data['currency_formats']
-
- @property
- def percent_formats(self):
- """Locale patterns for percent number formatting.
-
- >>> Locale('en', 'US').percent_formats[None]
-
- """
- return self._data['percent_formats']
-
- @property
- def scientific_formats(self):
- """Locale patterns for scientific number formatting.
-
- >>> Locale('en', 'US').scientific_formats[None]
-
- """
- return self._data['scientific_formats']
-
- #{ Calendar Information and Date Formatting
-
- @property
- def periods(self):
- """Locale display names for day periods (AM/PM).
-
- >>> Locale('en', 'US').periods['am']
- u'AM'
- """
- return self._data['periods']
-
- @property
- def days(self):
- """Locale display names for weekdays.
-
- >>> Locale('de', 'DE').days['format']['wide'][3]
- u'Donnerstag'
- """
- return self._data['days']
-
- @property
- def months(self):
- """Locale display names for months.
-
- >>> Locale('de', 'DE').months['format']['wide'][10]
- u'Oktober'
- """
- return self._data['months']
-
- @property
- def quarters(self):
- """Locale display names for quarters.
-
- >>> Locale('de', 'DE').quarters['format']['wide'][1]
- u'1. Quartal'
- """
- return self._data['quarters']
-
- @property
- def eras(self):
- """Locale display names for eras.
-
- >>> Locale('en', 'US').eras['wide'][1]
- u'Anno Domini'
- >>> Locale('en', 'US').eras['abbreviated'][0]
- u'BC'
- """
- return self._data['eras']
-
- @property
- def time_zones(self):
- """Locale display names for time zones.
-
- >>> Locale('en', 'US').time_zones['Europe/London']['long']['daylight']
- u'British Summer Time'
- >>> Locale('en', 'US').time_zones['America/St_Johns']['city']
- u'St. John\u2019s'
- """
- return self._data['time_zones']
-
- @property
- def meta_zones(self):
- """Locale display names for meta time zones.
-
- Meta time zones are basically groups of different Olson time zones that
- have the same GMT offset and daylight savings time.
-
- >>> Locale('en', 'US').meta_zones['Europe_Central']['long']['daylight']
- u'Central European Summer Time'
-
- .. versionadded:: 0.9
- """
- return self._data['meta_zones']
-
- @property
- def zone_formats(self):
- """Patterns related to the formatting of time zones.
-
- >>> Locale('en', 'US').zone_formats['fallback']
- u'%(1)s (%(0)s)'
- >>> Locale('pt', 'BR').zone_formats['region']
- u'Hor\\xe1rio %s'
-
- .. versionadded:: 0.9
- """
- return self._data['zone_formats']
-
- @property
- def first_week_day(self):
- """The first day of a week, with 0 being Monday.
-
- >>> Locale('de', 'DE').first_week_day
- 0
- >>> Locale('en', 'US').first_week_day
- 6
- """
- return self._data['week_data']['first_day']
-
- @property
- def weekend_start(self):
- """The day the weekend starts, with 0 being Monday.
-
- >>> Locale('de', 'DE').weekend_start
- 5
- """
- return self._data['week_data']['weekend_start']
-
- @property
- def weekend_end(self):
- """The day the weekend ends, with 0 being Monday.
-
- >>> Locale('de', 'DE').weekend_end
- 6
- """
- return self._data['week_data']['weekend_end']
-
- @property
- def min_week_days(self):
- """The minimum number of days in a week so that the week is counted as
- the first week of a year or month.
-
- >>> Locale('de', 'DE').min_week_days
- 4
- """
- return self._data['week_data']['min_days']
-
- @property
- def date_formats(self):
- """Locale patterns for date formatting.
-
- >>> Locale('en', 'US').date_formats['short']
-
- >>> Locale('fr', 'FR').date_formats['long']
-
- """
- return self._data['date_formats']
-
- @property
- def time_formats(self):
- """Locale patterns for time formatting.
-
- >>> Locale('en', 'US').time_formats['short']
-
- >>> Locale('fr', 'FR').time_formats['long']
-
- """
- return self._data['time_formats']
-
- @property
- def datetime_formats(self):
- """Locale patterns for datetime formatting.
-
- >>> Locale('en').datetime_formats['full']
- u"{1} 'at' {0}"
- >>> Locale('th').datetime_formats['medium']
- u'{1}, {0}'
- """
- return self._data['datetime_formats']
-
- @property
- def plural_form(self):
- """Plural rules for the locale.
-
- >>> Locale('en').plural_form(1)
- 'one'
- >>> Locale('en').plural_form(0)
- 'other'
- >>> Locale('fr').plural_form(0)
- 'one'
- >>> Locale('ru').plural_form(100)
- 'many'
- """
- return self._data['plural_form']
-
-
-def default_locale(category=None, aliases=LOCALE_ALIASES):
- """Returns the system default locale for a given category, based on
- environment variables.
-
- >>> for name in ['LANGUAGE', 'LC_ALL', 'LC_CTYPE']:
- ... os.environ[name] = ''
- >>> os.environ['LANG'] = 'fr_FR.UTF-8'
- >>> default_locale('LC_MESSAGES')
- 'fr_FR'
-
- The "C" or "POSIX" pseudo-locales are treated as aliases for the
- "en_US_POSIX" locale:
-
- >>> os.environ['LC_MESSAGES'] = 'POSIX'
- >>> default_locale('LC_MESSAGES')
- 'en_US_POSIX'
-
- The following fallbacks to the variable are always considered:
-
- - ``LANGUAGE``
- - ``LC_ALL``
- - ``LC_CTYPE``
- - ``LANG``
-
- :param category: one of the ``LC_XXX`` environment variable names
- :param aliases: a dictionary of aliases for locale identifiers
- """
- varnames = (category, 'LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LANG')
- for name in filter(None, varnames):
- locale = os.getenv(name)
- if locale:
- if name == 'LANGUAGE' and ':' in locale:
- # the LANGUAGE variable may contain a colon-separated list of
- # language codes; we just pick the language on the list
- locale = locale.split(':')[0]
- if locale in ('C', 'POSIX'):
- locale = 'en_US_POSIX'
- elif aliases and locale in aliases:
- locale = aliases[locale]
- try:
- return get_locale_identifier(parse_locale(locale))
- except ValueError:
- pass
-
-
-def negotiate_locale(preferred, available, sep='_', aliases=LOCALE_ALIASES):
- """Find the best match between available and requested locale strings.
-
- >>> negotiate_locale(['de_DE', 'en_US'], ['de_DE', 'de_AT'])
- 'de_DE'
- >>> negotiate_locale(['de_DE', 'en_US'], ['en', 'de'])
- 'de'
-
- Case is ignored by the algorithm, the result uses the case of the preferred
- locale identifier:
-
- >>> negotiate_locale(['de_DE', 'en_US'], ['de_de', 'de_at'])
- 'de_DE'
-
- >>> negotiate_locale(['de_DE', 'en_US'], ['de_de', 'de_at'])
- 'de_DE'
-
- By default, some web browsers unfortunately do not include the territory
- in the locale identifier for many locales, and some don't even allow the
- user to easily add the territory. So while you may prefer using qualified
- locale identifiers in your web-application, they would not normally match
- the language-only locale sent by such browsers. To workaround that, this
- function uses a default mapping of commonly used langauge-only locale
- identifiers to identifiers including the territory:
-
- >>> negotiate_locale(['ja', 'en_US'], ['ja_JP', 'en_US'])
- 'ja_JP'
-
- Some browsers even use an incorrect or outdated language code, such as "no"
- for Norwegian, where the correct locale identifier would actually be "nb_NO"
- (Bokmål) or "nn_NO" (Nynorsk). The aliases are intended to take care of
- such cases, too:
-
- >>> negotiate_locale(['no', 'sv'], ['nb_NO', 'sv_SE'])
- 'nb_NO'
-
- You can override this default mapping by passing a different `aliases`
- dictionary to this function, or you can bypass the behavior althogher by
- setting the `aliases` parameter to `None`.
-
- :param preferred: the list of locale strings preferred by the user
- :param available: the list of locale strings available
- :param sep: character that separates the different parts of the locale
- strings
- :param aliases: a dictionary of aliases for locale identifiers
- """
- available = [a.lower() for a in available if a]
- for locale in preferred:
- ll = locale.lower()
- if ll in available:
- return locale
- if aliases:
- alias = aliases.get(ll)
- if alias:
- alias = alias.replace('_', sep)
- if alias.lower() in available:
- return alias
- parts = locale.split(sep)
- if len(parts) > 1 and parts[0].lower() in available:
- return parts[0]
- return None
-
-
-def parse_locale(identifier, sep='_'):
- """Parse a locale identifier into a tuple of the form ``(language,
- territory, script, variant)``.
-
- >>> parse_locale('zh_CN')
- ('zh', 'CN', None, None)
- >>> parse_locale('zh_Hans_CN')
- ('zh', 'CN', 'Hans', None)
-
- The default component separator is "_", but a different separator can be
- specified using the `sep` parameter:
-
- >>> parse_locale('zh-CN', sep='-')
- ('zh', 'CN', None, None)
-
- If the identifier cannot be parsed into a locale, a `ValueError` exception
- is raised:
-
- >>> parse_locale('not_a_LOCALE_String')
- Traceback (most recent call last):
- ...
- ValueError: 'not_a_LOCALE_String' is not a valid locale identifier
-
- Encoding information and locale modifiers are removed from the identifier:
-
- >>> parse_locale('it_IT@euro')
- ('it', 'IT', None, None)
- >>> parse_locale('en_US.UTF-8')
- ('en', 'US', None, None)
- >>> parse_locale('de_DE.iso885915@euro')
- ('de', 'DE', None, None)
-
- See :rfc:`4646` for more information.
-
- :param identifier: the locale identifier string
- :param sep: character that separates the different components of the locale
- identifier
- :raise `ValueError`: if the string does not appear to be a valid locale
- identifier
- """
- if '.' in identifier:
- # this is probably the charset/encoding, which we don't care about
- identifier = identifier.split('.', 1)[0]
- if '@' in identifier:
- # this is a locale modifier such as @euro, which we don't care about
- # either
- identifier = identifier.split('@', 1)[0]
-
- parts = identifier.split(sep)
- lang = parts.pop(0).lower()
- if not lang.isalpha():
- raise ValueError('expected only letters, got %r' % lang)
-
- script = territory = variant = None
- if parts:
- if len(parts[0]) == 4 and parts[0].isalpha():
- script = parts.pop(0).title()
-
- if parts:
- if len(parts[0]) == 2 and parts[0].isalpha():
- territory = parts.pop(0).upper()
- elif len(parts[0]) == 3 and parts[0].isdigit():
- territory = parts.pop(0)
-
- if parts:
- if len(parts[0]) == 4 and parts[0][0].isdigit() or \
- len(parts[0]) >= 5 and parts[0][0].isalpha():
- variant = parts.pop()
-
- if parts:
- raise ValueError('%r is not a valid locale identifier' % identifier)
-
- return lang, territory, script, variant
-
-
-def get_locale_identifier(tup, sep='_'):
- """The reverse of :func:`parse_locale`. It creates a locale identifier out
- of a ``(language, territory, script, variant)`` tuple. Items can be set to
- ``None`` and trailing ``None``\s can also be left out of the tuple.
-
- >>> get_locale_identifier(('de', 'DE', None, '1999'))
- 'de_DE_1999'
-
- .. versionadded:: 1.0
-
- :param tup: the tuple as returned by :func:`parse_locale`.
- :param sep: the separator for the identifier.
- """
- tup = tuple(tup[:4])
- lang, territory, script, variant = tup + (None,) * (4 - len(tup))
- return sep.join(filter(None, (lang, script, territory, variant)))
diff --git a/vendor/babel/dates.py b/vendor/babel/dates.py
deleted file mode 100644
index 72674e8a..00000000
--- a/vendor/babel/dates.py
+++ /dev/null
@@ -1,1181 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.dates
- ~~~~~~~~~~~
-
- Locale dependent formatting and parsing of dates and times.
-
- The default locale for the functions in this module is determined by the
- following environment variables, in that order:
-
- * ``LC_TIME``,
- * ``LC_ALL``, and
- * ``LANG``
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-from __future__ import division
-
-import re
-import pytz as _pytz
-
-from datetime import date, datetime, time, timedelta
-from bisect import bisect_right
-
-from babel.core import default_locale, get_global, Locale
-from babel.util import UTC, LOCALTZ
-from babel._compat import string_types, integer_types, number_types
-
-
-LC_TIME = default_locale('LC_TIME')
-
-# Aliases for use in scopes where the modules are shadowed by local variables
-date_ = date
-datetime_ = datetime
-time_ = time
-
-
-def get_timezone(zone=None):
- """Looks up a timezone by name and returns it. The timezone object
- returned comes from ``pytz`` and corresponds to the `tzinfo` interface and
- can be used with all of the functions of Babel that operate with dates.
-
- If a timezone is not known a :exc:`LookupError` is raised. If `zone`
- is ``None`` a local zone object is returned.
-
- :param zone: the name of the timezone to look up. If a timezone object
- itself is passed in, mit's returned unchanged.
- """
- if zone is None:
- return LOCALTZ
- if not isinstance(zone, string_types):
- return zone
- try:
- return _pytz.timezone(zone)
- except _pytz.UnknownTimeZoneError:
- raise LookupError('Unknown timezone %s' % zone)
-
-
-def get_next_timezone_transition(zone=None, dt=None):
- """Given a timezone it will return a :class:`TimezoneTransition` object
- that holds the information about the next timezone transition that's going
- to happen. For instance this can be used to detect when the next DST
- change is going to happen and how it looks like.
-
- The transition is calculated relative to the given datetime object. The
- next transition that follows the date is used. If a transition cannot
- be found the return value will be `None`.
-
- Transition information can only be provided for timezones returned by
- the :func:`get_timezone` function.
-
- :param zone: the timezone for which the transition should be looked up.
- If not provided the local timezone is used.
- :param dt: the date after which the next transition should be found.
- If not given the current time is assumed.
- """
- zone = get_timezone(zone)
- if dt is None:
- dt = datetime.utcnow()
- else:
- dt = dt.replace(tzinfo=None)
-
- if not hasattr(zone, '_utc_transition_times'):
- raise TypeError('Given timezone does not have UTC transition '
- 'times. This can happen because the operating '
- 'system fallback local timezone is used or a '
- 'custom timezone object')
-
- try:
- idx = max(0, bisect_right(zone._utc_transition_times, dt))
- old_trans = zone._transition_info[idx - 1]
- new_trans = zone._transition_info[idx]
- old_tz = zone._tzinfos[old_trans]
- new_tz = zone._tzinfos[new_trans]
- except (LookupError, ValueError):
- return None
-
- return TimezoneTransition(
- activates=zone._utc_transition_times[idx],
- from_tzinfo=old_tz,
- to_tzinfo=new_tz,
- reference_date=dt
- )
-
-
-class TimezoneTransition(object):
- """A helper object that represents the return value from
- :func:`get_next_timezone_transition`.
- """
-
- def __init__(self, activates, from_tzinfo, to_tzinfo, reference_date=None):
- #: the time of the activation of the timezone transition in UTC.
- self.activates = activates
- #: the timezone from where the transition starts.
- self.from_tzinfo = from_tzinfo
- #: the timezone for after the transition.
- self.to_tzinfo = to_tzinfo
- #: the reference date that was provided. This is the `dt` parameter
- #: to the :func:`get_next_timezone_transition`.
- self.reference_date = reference_date
-
- @property
- def from_tz(self):
- """The name of the timezone before the transition."""
- return self.from_tzinfo._tzname
-
- @property
- def to_tz(self):
- """The name of the timezone after the transition."""
- return self.to_tzinfo._tzname
-
- @property
- def from_offset(self):
- """The UTC offset in seconds before the transition."""
- return int(self.from_tzinfo._utcoffset.total_seconds())
-
- @property
- def to_offset(self):
- """The UTC offset in seconds after the transition."""
- return int(self.to_tzinfo._utcoffset.total_seconds())
-
- def __repr__(self):
- return ' %s (%s)>' % (
- self.from_tz,
- self.to_tz,
- self.activates,
- )
-
-
-def get_period_names(locale=LC_TIME):
- """Return the names for day periods (AM/PM) used by the locale.
-
- >>> get_period_names(locale='en_US')['am']
- u'AM'
-
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).periods
-
-
-def get_day_names(width='wide', context='format', locale=LC_TIME):
- """Return the day names used by the locale for the specified format.
-
- >>> get_day_names('wide', locale='en_US')[1]
- u'Tuesday'
- >>> get_day_names('abbreviated', locale='es')[1]
- u'mar'
- >>> get_day_names('narrow', context='stand-alone', locale='de_DE')[1]
- u'D'
-
- :param width: the width to use, one of "wide", "abbreviated", or "narrow"
- :param context: the context, either "format" or "stand-alone"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).days[context][width]
-
-
-def get_month_names(width='wide', context='format', locale=LC_TIME):
- """Return the month names used by the locale for the specified format.
-
- >>> get_month_names('wide', locale='en_US')[1]
- u'January'
- >>> get_month_names('abbreviated', locale='es')[1]
- u'ene'
- >>> get_month_names('narrow', context='stand-alone', locale='de_DE')[1]
- u'J'
-
- :param width: the width to use, one of "wide", "abbreviated", or "narrow"
- :param context: the context, either "format" or "stand-alone"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).months[context][width]
-
-
-def get_quarter_names(width='wide', context='format', locale=LC_TIME):
- """Return the quarter names used by the locale for the specified format.
-
- >>> get_quarter_names('wide', locale='en_US')[1]
- u'1st quarter'
- >>> get_quarter_names('abbreviated', locale='de_DE')[1]
- u'Q1'
-
- :param width: the width to use, one of "wide", "abbreviated", or "narrow"
- :param context: the context, either "format" or "stand-alone"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).quarters[context][width]
-
-
-def get_era_names(width='wide', locale=LC_TIME):
- """Return the era names used by the locale for the specified format.
-
- >>> get_era_names('wide', locale='en_US')[1]
- u'Anno Domini'
- >>> get_era_names('abbreviated', locale='de_DE')[1]
- u'n. Chr.'
-
- :param width: the width to use, either "wide", "abbreviated", or "narrow"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).eras[width]
-
-
-def get_date_format(format='medium', locale=LC_TIME):
- """Return the date formatting patterns used by the locale for the specified
- format.
-
- >>> get_date_format(locale='en_US')
-
- >>> get_date_format('full', locale='de_DE')
-
-
- :param format: the format to use, one of "full", "long", "medium", or
- "short"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).date_formats[format]
-
-
-def get_datetime_format(format='medium', locale=LC_TIME):
- """Return the datetime formatting patterns used by the locale for the
- specified format.
-
- >>> get_datetime_format(locale='en_US')
- u'{1}, {0}'
-
- :param format: the format to use, one of "full", "long", "medium", or
- "short"
- :param locale: the `Locale` object, or a locale string
- """
- patterns = Locale.parse(locale).datetime_formats
- if format not in patterns:
- format = None
- return patterns[format]
-
-
-def get_time_format(format='medium', locale=LC_TIME):
- """Return the time formatting patterns used by the locale for the specified
- format.
-
- >>> get_time_format(locale='en_US')
-
- >>> get_time_format('full', locale='de_DE')
-
-
- :param format: the format to use, one of "full", "long", "medium", or
- "short"
- :param locale: the `Locale` object, or a locale string
- """
- return Locale.parse(locale).time_formats[format]
-
-
-def get_timezone_gmt(datetime=None, width='long', locale=LC_TIME):
- """Return the timezone associated with the given `datetime` object formatted
- as string indicating the offset from GMT.
-
- >>> dt = datetime(2007, 4, 1, 15, 30)
- >>> get_timezone_gmt(dt, locale='en')
- u'GMT+00:00'
-
- >>> tz = get_timezone('America/Los_Angeles')
- >>> dt = datetime(2007, 4, 1, 15, 30, tzinfo=tz)
- >>> get_timezone_gmt(dt, locale='en')
- u'GMT-08:00'
- >>> get_timezone_gmt(dt, 'short', locale='en')
- u'-0800'
-
- The long format depends on the locale, for example in France the acronym
- UTC string is used instead of GMT:
-
- >>> get_timezone_gmt(dt, 'long', locale='fr_FR')
- u'UTC-08:00'
-
- .. versionadded:: 0.9
-
- :param datetime: the ``datetime`` object; if `None`, the current date and
- time in UTC is used
- :param width: either "long" or "short"
- :param locale: the `Locale` object, or a locale string
- """
- if datetime is None:
- datetime = datetime_.utcnow()
- elif isinstance(datetime, integer_types):
- datetime = datetime_.utcfromtimestamp(datetime).time()
- if datetime.tzinfo is None:
- datetime = datetime.replace(tzinfo=UTC)
- locale = Locale.parse(locale)
-
- offset = datetime.tzinfo.utcoffset(datetime)
- seconds = offset.days * 24 * 60 * 60 + offset.seconds
- hours, seconds = divmod(seconds, 3600)
- if width == 'short':
- pattern = u'%+03d%02d'
- else:
- pattern = locale.zone_formats['gmt'] % '%+03d:%02d'
- return pattern % (hours, seconds // 60)
-
-
-def get_timezone_location(dt_or_tzinfo=None, locale=LC_TIME):
- """Return a representation of the given timezone using "location format".
-
- The result depends on both the local display name of the country and the
- city associated with the time zone:
-
- >>> tz = get_timezone('America/St_Johns')
- >>> get_timezone_location(tz, locale='de_DE')
- u"Kanada (St. John's) Zeit"
- >>> tz = get_timezone('America/Mexico_City')
- >>> get_timezone_location(tz, locale='de_DE')
- u'Mexiko (Mexiko-Stadt) Zeit'
-
- If the timezone is associated with a country that uses only a single
- timezone, just the localized country name is returned:
-
- >>> tz = get_timezone('Europe/Berlin')
- >>> get_timezone_name(tz, locale='de_DE')
- u'Mitteleurop\\xe4ische Zeit'
-
- .. versionadded:: 0.9
-
- :param dt_or_tzinfo: the ``datetime`` or ``tzinfo`` object that determines
- the timezone; if `None`, the current date and time in
- UTC is assumed
- :param locale: the `Locale` object, or a locale string
- :return: the localized timezone name using location format
- """
- if dt_or_tzinfo is None:
- dt = datetime.now()
- tzinfo = LOCALTZ
- elif isinstance(dt_or_tzinfo, string_types):
- dt = None
- tzinfo = get_timezone(dt_or_tzinfo)
- elif isinstance(dt_or_tzinfo, integer_types):
- dt = None
- tzinfo = UTC
- elif isinstance(dt_or_tzinfo, (datetime, time)):
- dt = dt_or_tzinfo
- if dt.tzinfo is not None:
- tzinfo = dt.tzinfo
- else:
- tzinfo = UTC
- else:
- dt = None
- tzinfo = dt_or_tzinfo
- locale = Locale.parse(locale)
-
- if hasattr(tzinfo, 'zone'):
- zone = tzinfo.zone
- else:
- zone = tzinfo.tzname(dt or datetime.utcnow())
-
- # Get the canonical time-zone code
- zone = get_global('zone_aliases').get(zone, zone)
-
- info = locale.time_zones.get(zone, {})
-
- # Otherwise, if there is only one timezone for the country, return the
- # localized country name
- region_format = locale.zone_formats['region']
- territory = get_global('zone_territories').get(zone)
- if territory not in locale.territories:
- territory = 'ZZ' # invalid/unknown
- territory_name = locale.territories[territory]
- if territory and len(get_global('territory_zones').get(territory, [])) == 1:
- return region_format % (territory_name)
-
- # Otherwise, include the city in the output
- fallback_format = locale.zone_formats['fallback']
- if 'city' in info:
- city_name = info['city']
- else:
- metazone = get_global('meta_zones').get(zone)
- metazone_info = locale.meta_zones.get(metazone, {})
- if 'city' in metazone_info:
- city_name = metazone_info['city']
- elif '/' in zone:
- city_name = zone.split('/', 1)[1].replace('_', ' ')
- else:
- city_name = zone.replace('_', ' ')
-
- return region_format % (fallback_format % {
- '0': city_name,
- '1': territory_name
- })
-
-
-def get_timezone_name(dt_or_tzinfo=None, width='long', uncommon=False,
- locale=LC_TIME, zone_variant=None):
- r"""Return the localized display name for the given timezone. The timezone
- may be specified using a ``datetime`` or `tzinfo` object.
-
- >>> dt = time(15, 30, tzinfo=get_timezone('America/Los_Angeles'))
- >>> get_timezone_name(dt, locale='en_US')
- u'Pacific Standard Time'
- >>> get_timezone_name(dt, width='short', locale='en_US')
- u'PST'
-
- If this function gets passed only a `tzinfo` object and no concrete
- `datetime`, the returned display name is indenpendent of daylight savings
- time. This can be used for example for selecting timezones, or to set the
- time of events that recur across DST changes:
-
- >>> tz = get_timezone('America/Los_Angeles')
- >>> get_timezone_name(tz, locale='en_US')
- u'Pacific Time'
- >>> get_timezone_name(tz, 'short', locale='en_US')
- u'PT'
-
- If no localized display name for the timezone is available, and the timezone
- is associated with a country that uses only a single timezone, the name of
- that country is returned, formatted according to the locale:
-
- >>> tz = get_timezone('Europe/Berlin')
- >>> get_timezone_name(tz, locale='de_DE')
- u'Mitteleurop\xe4ische Zeit'
- >>> get_timezone_name(tz, locale='pt_BR')
- u'Hor\xe1rio da Europa Central'
-
- On the other hand, if the country uses multiple timezones, the city is also
- included in the representation:
-
- >>> tz = get_timezone('America/St_Johns')
- >>> get_timezone_name(tz, locale='de_DE')
- u'Neufundland-Zeit'
-
- Note that short format is currently not supported for all timezones and
- all locales. This is partially because not every timezone has a short
- code in every locale. In that case it currently falls back to the long
- format.
-
- For more information see `LDML Appendix J: Time Zone Display Names
- `_
-
- .. versionadded:: 0.9
-
- .. versionchanged:: 1.0
- Added `zone_variant` support.
-
- :param dt_or_tzinfo: the ``datetime`` or ``tzinfo`` object that determines
- the timezone; if a ``tzinfo`` object is used, the
- resulting display name will be generic, i.e.
- independent of daylight savings time; if `None`, the
- current date in UTC is assumed
- :param width: either "long" or "short"
- :param uncommon: deprecated and ignored
- :param zone_variant: defines the zone variation to return. By default the
- variation is defined from the datetime object
- passed in. If no datetime object is passed in, the
- ``'generic'`` variation is assumed. The following
- values are valid: ``'generic'``, ``'daylight'`` and
- ``'standard'``.
- :param locale: the `Locale` object, or a locale string
- """
- if dt_or_tzinfo is None:
- dt = datetime.now()
- tzinfo = LOCALTZ
- elif isinstance(dt_or_tzinfo, string_types):
- dt = None
- tzinfo = get_timezone(dt_or_tzinfo)
- elif isinstance(dt_or_tzinfo, integer_types):
- dt = None
- tzinfo = UTC
- elif isinstance(dt_or_tzinfo, (datetime, time)):
- dt = dt_or_tzinfo
- if dt.tzinfo is not None:
- tzinfo = dt.tzinfo
- else:
- tzinfo = UTC
- else:
- dt = None
- tzinfo = dt_or_tzinfo
- locale = Locale.parse(locale)
-
- if hasattr(tzinfo, 'zone'):
- zone = tzinfo.zone
- else:
- zone = tzinfo.tzname(dt)
-
- if zone_variant is None:
- if dt is None:
- zone_variant = 'generic'
- else:
- dst = tzinfo.dst(dt)
- if dst:
- zone_variant = 'daylight'
- else:
- zone_variant = 'standard'
- else:
- if zone_variant not in ('generic', 'standard', 'daylight'):
- raise ValueError('Invalid zone variation')
-
- # Get the canonical time-zone code
- zone = get_global('zone_aliases').get(zone, zone)
-
- info = locale.time_zones.get(zone, {})
- # Try explicitly translated zone names first
- if width in info:
- if zone_variant in info[width]:
- return info[width][zone_variant]
-
- metazone = get_global('meta_zones').get(zone)
- if metazone:
- metazone_info = locale.meta_zones.get(metazone, {})
- if width in metazone_info:
- if zone_variant in metazone_info[width]:
- return metazone_info[width][zone_variant]
-
- # If we have a concrete datetime, we assume that the result can't be
- # independent of daylight savings time, so we return the GMT offset
- if dt is not None:
- return get_timezone_gmt(dt, width=width, locale=locale)
-
- return get_timezone_location(dt_or_tzinfo, locale=locale)
-
-
-def format_date(date=None, format='medium', locale=LC_TIME):
- """Return a date formatted according to the given pattern.
-
- >>> d = date(2007, 04, 01)
- >>> format_date(d, locale='en_US')
- u'Apr 1, 2007'
- >>> format_date(d, format='full', locale='de_DE')
- u'Sonntag, 1. April 2007'
-
- If you don't want to use the locale default formats, you can specify a
- custom date pattern:
-
- >>> format_date(d, "EEE, MMM d, ''yy", locale='en')
- u"Sun, Apr 1, '07"
-
- :param date: the ``date`` or ``datetime`` object; if `None`, the current
- date is used
- :param format: one of "full", "long", "medium", or "short", or a custom
- date/time pattern
- :param locale: a `Locale` object or a locale identifier
- """
- if date is None:
- date = date_.today()
- elif isinstance(date, datetime):
- date = date.date()
-
- locale = Locale.parse(locale)
- if format in ('full', 'long', 'medium', 'short'):
- format = get_date_format(format, locale=locale)
- pattern = parse_pattern(format)
- return pattern.apply(date, locale)
-
-
-def format_datetime(datetime=None, format='medium', tzinfo=None,
- locale=LC_TIME):
- r"""Return a date formatted according to the given pattern.
-
- >>> dt = datetime(2007, 04, 01, 15, 30)
- >>> format_datetime(dt, locale='en_US')
- u'Apr 1, 2007, 3:30:00 PM'
-
- For any pattern requiring the display of the time-zone, the third-party
- ``pytz`` package is needed to explicitly specify the time-zone:
-
- >>> format_datetime(dt, 'full', tzinfo=get_timezone('Europe/Paris'),
- ... locale='fr_FR')
- u'dimanche 1 avril 2007 17:30:00 heure avanc\xe9e d\u2019Europe centrale'
- >>> format_datetime(dt, "yyyy.MM.dd G 'at' HH:mm:ss zzz",
- ... tzinfo=get_timezone('US/Eastern'), locale='en')
- u'2007.04.01 AD at 11:30:00 EDT'
-
- :param datetime: the `datetime` object; if `None`, the current date and
- time is used
- :param format: one of "full", "long", "medium", or "short", or a custom
- date/time pattern
- :param tzinfo: the timezone to apply to the time for display
- :param locale: a `Locale` object or a locale identifier
- """
- if datetime is None:
- datetime = datetime_.utcnow()
- elif isinstance(datetime, number_types):
- datetime = datetime_.utcfromtimestamp(datetime)
- elif isinstance(datetime, time):
- datetime = datetime_.combine(date.today(), datetime)
- if datetime.tzinfo is None:
- datetime = datetime.replace(tzinfo=UTC)
- if tzinfo is not None:
- datetime = datetime.astimezone(get_timezone(tzinfo))
- if hasattr(tzinfo, 'normalize'): # pytz
- datetime = tzinfo.normalize(datetime)
-
- locale = Locale.parse(locale)
- if format in ('full', 'long', 'medium', 'short'):
- return get_datetime_format(format, locale=locale) \
- .replace("'", "") \
- .replace('{0}', format_time(datetime, format, tzinfo=None,
- locale=locale)) \
- .replace('{1}', format_date(datetime, format, locale=locale))
- else:
- return parse_pattern(format).apply(datetime, locale)
-
-
-def format_time(time=None, format='medium', tzinfo=None, locale=LC_TIME):
- r"""Return a time formatted according to the given pattern.
-
- >>> t = time(15, 30)
- >>> format_time(t, locale='en_US')
- u'3:30:00 PM'
- >>> format_time(t, format='short', locale='de_DE')
- u'15:30'
-
- If you don't want to use the locale default formats, you can specify a
- custom time pattern:
-
- >>> format_time(t, "hh 'o''clock' a", locale='en')
- u"03 o'clock PM"
-
- For any pattern requiring the display of the time-zone a
- timezone has to be specified explicitly:
-
- >>> t = datetime(2007, 4, 1, 15, 30)
- >>> tzinfo = get_timezone('Europe/Paris')
- >>> t = tzinfo.localize(t)
- >>> format_time(t, format='full', tzinfo=tzinfo, locale='fr_FR')
- u'15:30:00 heure avanc\xe9e d\u2019Europe centrale'
- >>> format_time(t, "hh 'o''clock' a, zzzz", tzinfo=get_timezone('US/Eastern'),
- ... locale='en')
- u"09 o'clock AM, Eastern Daylight Time"
-
- As that example shows, when this function gets passed a
- ``datetime.datetime`` value, the actual time in the formatted string is
- adjusted to the timezone specified by the `tzinfo` parameter. If the
- ``datetime`` is "naive" (i.e. it has no associated timezone information),
- it is assumed to be in UTC.
-
- These timezone calculations are **not** performed if the value is of type
- ``datetime.time``, as without date information there's no way to determine
- what a given time would translate to in a different timezone without
- information about whether daylight savings time is in effect or not. This
- means that time values are left as-is, and the value of the `tzinfo`
- parameter is only used to display the timezone name if needed:
-
- >>> t = time(15, 30)
- >>> format_time(t, format='full', tzinfo=get_timezone('Europe/Paris'),
- ... locale='fr_FR')
- u'15:30:00 heure normale de l\u2019Europe centrale'
- >>> format_time(t, format='full', tzinfo=get_timezone('US/Eastern'),
- ... locale='en_US')
- u'3:30:00 PM Eastern Standard Time'
-
- :param time: the ``time`` or ``datetime`` object; if `None`, the current
- time in UTC is used
- :param format: one of "full", "long", "medium", or "short", or a custom
- date/time pattern
- :param tzinfo: the time-zone to apply to the time for display
- :param locale: a `Locale` object or a locale identifier
- """
- if time is None:
- time = datetime.utcnow()
- elif isinstance(time, number_types):
- time = datetime.utcfromtimestamp(time)
- if time.tzinfo is None:
- time = time.replace(tzinfo=UTC)
- if isinstance(time, datetime):
- if tzinfo is not None:
- time = time.astimezone(tzinfo)
- if hasattr(tzinfo, 'normalize'): # pytz
- time = tzinfo.normalize(time)
- time = time.timetz()
- elif tzinfo is not None:
- time = time.replace(tzinfo=tzinfo)
-
- locale = Locale.parse(locale)
- if format in ('full', 'long', 'medium', 'short'):
- format = get_time_format(format, locale=locale)
- return parse_pattern(format).apply(time, locale)
-
-
-TIMEDELTA_UNITS = (
- ('year', 3600 * 24 * 365),
- ('month', 3600 * 24 * 30),
- ('week', 3600 * 24 * 7),
- ('day', 3600 * 24),
- ('hour', 3600),
- ('minute', 60),
- ('second', 1)
-)
-
-
-def format_timedelta(delta, granularity='second', threshold=.85,
- add_direction=False, format='medium',
- locale=LC_TIME):
- """Return a time delta according to the rules of the given locale.
-
- >>> format_timedelta(timedelta(weeks=12), locale='en_US')
- u'3 months'
- >>> format_timedelta(timedelta(seconds=1), locale='es')
- u'1 segundo'
-
- The granularity parameter can be provided to alter the lowest unit
- presented, which defaults to a second.
-
- >>> format_timedelta(timedelta(hours=3), granularity='day',
- ... locale='en_US')
- u'1 day'
-
- The threshold parameter can be used to determine at which value the
- presentation switches to the next higher unit. A higher threshold factor
- means the presentation will switch later. For example:
-
- >>> format_timedelta(timedelta(hours=23), threshold=0.9, locale='en_US')
- u'1 day'
- >>> format_timedelta(timedelta(hours=23), threshold=1.1, locale='en_US')
- u'23 hours'
-
- In addition directional information can be provided that informs
- the user if the date is in the past or in the future:
-
- >>> format_timedelta(timedelta(hours=1), add_direction=True)
- u'In 1 hour'
- >>> format_timedelta(timedelta(hours=-1), add_direction=True)
- u'1 hour ago'
-
- :param delta: a ``timedelta`` object representing the time difference to
- format, or the delta in seconds as an `int` value
- :param granularity: determines the smallest unit that should be displayed,
- the value can be one of "year", "month", "week", "day",
- "hour", "minute" or "second"
- :param threshold: factor that determines at which point the presentation
- switches to the next higher unit
- :param add_direction: if this flag is set to `True` the return value will
- include directional information. For instance a
- positive timedelta will include the information about
- it being in the future, a negative will be information
- about the value being in the past.
- :param format: the format (currently only "medium" and "short" are supported)
- :param locale: a `Locale` object or a locale identifier
- """
- if format not in ('short', 'medium'):
- raise TypeError('Format can only be one of "short" or "medium"')
- if isinstance(delta, timedelta):
- seconds = int((delta.days * 86400) + delta.seconds)
- else:
- seconds = delta
- locale = Locale.parse(locale)
-
- def _iter_choices(unit):
- if add_direction:
- if seconds >= 0:
- yield unit + '-future'
- else:
- yield unit + '-past'
- yield unit + ':' + format
- yield unit
-
- for unit, secs_per_unit in TIMEDELTA_UNITS:
- value = abs(seconds) / secs_per_unit
- if value >= threshold or unit == granularity:
- if unit == granularity and value > 0:
- value = max(1, value)
- value = int(round(value))
- plural_form = locale.plural_form(value)
- pattern = None
- for choice in _iter_choices(unit):
- patterns = locale._data['unit_patterns'].get(choice)
- if patterns is not None:
- pattern = patterns[plural_form]
- break
- # This really should not happen
- if pattern is None:
- return u''
- return pattern.replace('{0}', str(value))
-
- return u''
-
-
-def parse_date(string, locale=LC_TIME):
- """Parse a date from a string.
-
- This function uses the date format for the locale as a hint to determine
- the order in which the date fields appear in the string.
-
- >>> parse_date('4/1/04', locale='en_US')
- datetime.date(2004, 4, 1)
- >>> parse_date('01.04.2004', locale='de_DE')
- datetime.date(2004, 4, 1)
-
- :param string: the string containing the date
- :param locale: a `Locale` object or a locale identifier
- """
- # TODO: try ISO format first?
- format = get_date_format(locale=locale).pattern.lower()
- year_idx = format.index('y')
- month_idx = format.index('m')
- if month_idx < 0:
- month_idx = format.index('l')
- day_idx = format.index('d')
-
- indexes = [(year_idx, 'Y'), (month_idx, 'M'), (day_idx, 'D')]
- indexes.sort()
- indexes = dict([(item[1], idx) for idx, item in enumerate(indexes)])
-
- # FIXME: this currently only supports numbers, but should also support month
- # names, both in the requested locale, and english
-
- numbers = re.findall('(\d+)', string)
- year = numbers[indexes['Y']]
- if len(year) == 2:
- year = 2000 + int(year)
- else:
- year = int(year)
- month = int(numbers[indexes['M']])
- day = int(numbers[indexes['D']])
- if month > 12:
- month, day = day, month
- return date(year, month, day)
-
-
-def parse_time(string, locale=LC_TIME):
- """Parse a time from a string.
-
- This function uses the time format for the locale as a hint to determine
- the order in which the time fields appear in the string.
-
- >>> parse_time('15:30:00', locale='en_US')
- datetime.time(15, 30)
-
- :param string: the string containing the time
- :param locale: a `Locale` object or a locale identifier
- :return: the parsed time
- :rtype: `time`
- """
- # TODO: try ISO format first?
- format = get_time_format(locale=locale).pattern.lower()
- hour_idx = format.index('h')
- if hour_idx < 0:
- hour_idx = format.index('k')
- min_idx = format.index('m')
- sec_idx = format.index('s')
-
- indexes = [(hour_idx, 'H'), (min_idx, 'M'), (sec_idx, 'S')]
- indexes.sort()
- indexes = dict([(item[1], idx) for idx, item in enumerate(indexes)])
-
- # FIXME: support 12 hour clock, and 0-based hour specification
- # and seconds should be optional, maybe minutes too
- # oh, and time-zones, of course
-
- numbers = re.findall('(\d+)', string)
- hour = int(numbers[indexes['H']])
- minute = int(numbers[indexes['M']])
- second = int(numbers[indexes['S']])
- return time(hour, minute, second)
-
-
-class DateTimePattern(object):
-
- def __init__(self, pattern, format):
- self.pattern = pattern
- self.format = format
-
- def __repr__(self):
- return '<%s %r>' % (type(self).__name__, self.pattern)
-
- def __unicode__(self):
- return self.pattern
-
- def __mod__(self, other):
- if type(other) is not DateTimeFormat:
- return NotImplemented
- return self.format % other
-
- def apply(self, datetime, locale):
- return self % DateTimeFormat(datetime, locale)
-
-
-class DateTimeFormat(object):
-
- def __init__(self, value, locale):
- assert isinstance(value, (date, datetime, time))
- if isinstance(value, (datetime, time)) and value.tzinfo is None:
- value = value.replace(tzinfo=UTC)
- self.value = value
- self.locale = Locale.parse(locale)
-
- def __getitem__(self, name):
- char = name[0]
- num = len(name)
- if char == 'G':
- return self.format_era(char, num)
- elif char in ('y', 'Y', 'u'):
- return self.format_year(char, num)
- elif char in ('Q', 'q'):
- return self.format_quarter(char, num)
- elif char in ('M', 'L'):
- return self.format_month(char, num)
- elif char in ('w', 'W'):
- return self.format_week(char, num)
- elif char == 'd':
- return self.format(self.value.day, num)
- elif char == 'D':
- return self.format_day_of_year(num)
- elif char == 'F':
- return self.format_day_of_week_in_month()
- elif char in ('E', 'e', 'c'):
- return self.format_weekday(char, num)
- elif char == 'a':
- return self.format_period(char)
- elif char == 'h':
- if self.value.hour % 12 == 0:
- return self.format(12, num)
- else:
- return self.format(self.value.hour % 12, num)
- elif char == 'H':
- return self.format(self.value.hour, num)
- elif char == 'K':
- return self.format(self.value.hour % 12, num)
- elif char == 'k':
- if self.value.hour == 0:
- return self.format(24, num)
- else:
- return self.format(self.value.hour, num)
- elif char == 'm':
- return self.format(self.value.minute, num)
- elif char == 's':
- return self.format(self.value.second, num)
- elif char == 'S':
- return self.format_frac_seconds(num)
- elif char == 'A':
- return self.format_milliseconds_in_day(num)
- elif char in ('z', 'Z', 'v', 'V'):
- return self.format_timezone(char, num)
- else:
- raise KeyError('Unsupported date/time field %r' % char)
-
- def format_era(self, char, num):
- width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[max(3, num)]
- era = int(self.value.year >= 0)
- return get_era_names(width, self.locale)[era]
-
- def format_year(self, char, num):
- value = self.value.year
- if char.isupper():
- week = self.get_week_number(self.get_day_of_year())
- if week == 0:
- value -= 1
- year = self.format(value, num)
- if num == 2:
- year = year[-2:]
- return year
-
- def format_quarter(self, char, num):
- quarter = (self.value.month - 1) // 3 + 1
- if num <= 2:
- return ('%%0%dd' % num) % quarter
- width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
- context = {'Q': 'format', 'q': 'stand-alone'}[char]
- return get_quarter_names(width, context, self.locale)[quarter]
-
- def format_month(self, char, num):
- if num <= 2:
- return ('%%0%dd' % num) % self.value.month
- width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
- context = {'M': 'format', 'L': 'stand-alone'}[char]
- return get_month_names(width, context, self.locale)[self.value.month]
-
- def format_week(self, char, num):
- if char.islower(): # week of year
- day_of_year = self.get_day_of_year()
- week = self.get_week_number(day_of_year)
- if week == 0:
- date = self.value - timedelta(days=day_of_year)
- week = self.get_week_number(self.get_day_of_year(date),
- date.weekday())
- return self.format(week, num)
- else: # week of month
- week = self.get_week_number(self.value.day)
- if week == 0:
- date = self.value - timedelta(days=self.value.day)
- week = self.get_week_number(date.day, date.weekday())
- pass
- return '%d' % week
-
- def format_weekday(self, char, num):
- if num < 3:
- if char.islower():
- value = 7 - self.locale.first_week_day + self.value.weekday()
- return self.format(value % 7 + 1, num)
- num = 3
- weekday = self.value.weekday()
- width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
- context = {3: 'format', 4: 'format', 5: 'stand-alone'}[num]
- return get_day_names(width, context, self.locale)[weekday]
-
- def format_day_of_year(self, num):
- return self.format(self.get_day_of_year(), num)
-
- def format_day_of_week_in_month(self):
- return '%d' % ((self.value.day - 1) // 7 + 1)
-
- def format_period(self, char):
- period = {0: 'am', 1: 'pm'}[int(self.value.hour >= 12)]
- return get_period_names(locale=self.locale)[period]
-
- def format_frac_seconds(self, num):
- value = str(self.value.microsecond)
- return self.format(round(float('.%s' % value), num) * 10**num, num)
-
- def format_milliseconds_in_day(self, num):
- msecs = self.value.microsecond // 1000 + self.value.second * 1000 + \
- self.value.minute * 60000 + self.value.hour * 3600000
- return self.format(msecs, num)
-
- def format_timezone(self, char, num):
- width = {3: 'short', 4: 'long'}[max(3, num)]
- if char == 'z':
- return get_timezone_name(self.value, width, locale=self.locale)
- elif char == 'Z':
- return get_timezone_gmt(self.value, width, locale=self.locale)
- elif char == 'v':
- return get_timezone_name(self.value.tzinfo, width,
- locale=self.locale)
- elif char == 'V':
- if num == 1:
- return get_timezone_name(self.value.tzinfo, width,
- uncommon=True, locale=self.locale)
- return get_timezone_location(self.value.tzinfo, locale=self.locale)
-
- def format(self, value, length):
- return ('%%0%dd' % length) % value
-
- def get_day_of_year(self, date=None):
- if date is None:
- date = self.value
- return (date - date.replace(month=1, day=1)).days + 1
-
- def get_week_number(self, day_of_period, day_of_week=None):
- """Return the number of the week of a day within a period. This may be
- the week number in a year or the week number in a month.
-
- Usually this will return a value equal to or greater than 1, but if the
- first week of the period is so short that it actually counts as the last
- week of the previous period, this function will return 0.
-
- >>> format = DateTimeFormat(date(2006, 1, 8), Locale.parse('de_DE'))
- >>> format.get_week_number(6)
- 1
-
- >>> format = DateTimeFormat(date(2006, 1, 8), Locale.parse('en_US'))
- >>> format.get_week_number(6)
- 2
-
- :param day_of_period: the number of the day in the period (usually
- either the day of month or the day of year)
- :param day_of_week: the week day; if ommitted, the week day of the
- current date is assumed
- """
- if day_of_week is None:
- day_of_week = self.value.weekday()
- first_day = (day_of_week - self.locale.first_week_day -
- day_of_period + 1) % 7
- if first_day < 0:
- first_day += 7
- week_number = (day_of_period + first_day - 1) // 7
- if 7 - first_day >= self.locale.min_week_days:
- week_number += 1
- return week_number
-
-
-PATTERN_CHARS = {
- 'G': [1, 2, 3, 4, 5], # era
- 'y': None, 'Y': None, 'u': None, # year
- 'Q': [1, 2, 3, 4], 'q': [1, 2, 3, 4], # quarter
- 'M': [1, 2, 3, 4, 5], 'L': [1, 2, 3, 4, 5], # month
- 'w': [1, 2], 'W': [1], # week
- 'd': [1, 2], 'D': [1, 2, 3], 'F': [1], 'g': None, # day
- 'E': [1, 2, 3, 4, 5], 'e': [1, 2, 3, 4, 5], 'c': [1, 3, 4, 5], # week day
- 'a': [1], # period
- 'h': [1, 2], 'H': [1, 2], 'K': [1, 2], 'k': [1, 2], # hour
- 'm': [1, 2], # minute
- 's': [1, 2], 'S': None, 'A': None, # second
- 'z': [1, 2, 3, 4], 'Z': [1, 2, 3, 4], 'v': [1, 4], 'V': [1, 4] # zone
-}
-
-
-def parse_pattern(pattern):
- """Parse date, time, and datetime format patterns.
-
- >>> parse_pattern("MMMMd").format
- u'%(MMMM)s%(d)s'
- >>> parse_pattern("MMM d, yyyy").format
- u'%(MMM)s %(d)s, %(yyyy)s'
-
- Pattern can contain literal strings in single quotes:
-
- >>> parse_pattern("H:mm' Uhr 'z").format
- u'%(H)s:%(mm)s Uhr %(z)s'
-
- An actual single quote can be used by using two adjacent single quote
- characters:
-
- >>> parse_pattern("hh' o''clock'").format
- u"%(hh)s o'clock"
-
- :param pattern: the formatting pattern to parse
- """
- if type(pattern) is DateTimePattern:
- return pattern
-
- result = []
- quotebuf = None
- charbuf = []
- fieldchar = ['']
- fieldnum = [0]
-
- def append_chars():
- result.append(''.join(charbuf).replace('%', '%%'))
- del charbuf[:]
-
- def append_field():
- limit = PATTERN_CHARS[fieldchar[0]]
- if limit and fieldnum[0] not in limit:
- raise ValueError('Invalid length for field: %r'
- % (fieldchar[0] * fieldnum[0]))
- result.append('%%(%s)s' % (fieldchar[0] * fieldnum[0]))
- fieldchar[0] = ''
- fieldnum[0] = 0
-
- for idx, char in enumerate(pattern.replace("''", '\0')):
- if quotebuf is None:
- if char == "'": # quote started
- if fieldchar[0]:
- append_field()
- elif charbuf:
- append_chars()
- quotebuf = []
- elif char in PATTERN_CHARS:
- if charbuf:
- append_chars()
- if char == fieldchar[0]:
- fieldnum[0] += 1
- else:
- if fieldchar[0]:
- append_field()
- fieldchar[0] = char
- fieldnum[0] = 1
- else:
- if fieldchar[0]:
- append_field()
- charbuf.append(char)
-
- elif quotebuf is not None:
- if char == "'": # end of quote
- charbuf.extend(quotebuf)
- quotebuf = None
- else: # inside quote
- quotebuf.append(char)
-
- if fieldchar[0]:
- append_field()
- elif charbuf:
- append_chars()
-
- return DateTimePattern(pattern, u''.join(result).replace('\0', "'"))
diff --git a/vendor/babel/global.dat b/vendor/babel/global.dat
deleted file mode 100644
index 82cbbae1..00000000
Binary files a/vendor/babel/global.dat and /dev/null differ
diff --git a/vendor/babel/localedata.py b/vendor/babel/localedata.py
deleted file mode 100644
index 88883ac8..00000000
--- a/vendor/babel/localedata.py
+++ /dev/null
@@ -1,209 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.localedata
- ~~~~~~~~~~~~~~~~
-
- Low-level locale data access.
-
- :note: The `Locale` class, which uses this module under the hood, provides a
- more convenient interface for accessing the locale data.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-import os
-import threading
-from collections import MutableMapping
-
-from babel._compat import pickle
-
-
-_cache = {}
-_cache_lock = threading.RLock()
-_dirname = os.path.join(os.path.dirname(__file__), 'localedata')
-
-
-def exists(name):
- """Check whether locale data is available for the given locale. Ther
- return value is `True` if it exists, `False` otherwise.
-
- :param name: the locale identifier string
- """
- if name in _cache:
- return True
- return os.path.exists(os.path.join(_dirname, '%s.dat' % name))
-
-
-def locale_identifiers():
- """Return a list of all locale identifiers for which locale data is
- available.
-
- .. versionadded:: 0.8.1
-
- :return: a list of locale identifiers (strings)
- """
- return [stem for stem, extension in [
- os.path.splitext(filename) for filename in os.listdir(_dirname)
- ] if extension == '.dat' and stem != 'root']
-
-
-def load(name, merge_inherited=True):
- """Load the locale data for the given locale.
-
- The locale data is a dictionary that contains much of the data defined by
- the Common Locale Data Repository (CLDR). This data is stored as a
- collection of pickle files inside the ``babel`` package.
-
- >>> d = load('en_US')
- >>> d['languages']['sv']
- u'Swedish'
-
- Note that the results are cached, and subsequent requests for the same
- locale return the same dictionary:
-
- >>> d1 = load('en_US')
- >>> d2 = load('en_US')
- >>> d1 is d2
- True
-
- :param name: the locale identifier string (or "root")
- :param merge_inherited: whether the inherited data should be merged into
- the data of the requested locale
- :raise `IOError`: if no locale data file is found for the given locale
- identifer, or one of the locales it inherits from
- """
- _cache_lock.acquire()
- try:
- data = _cache.get(name)
- if not data:
- # Load inherited data
- if name == 'root' or not merge_inherited:
- data = {}
- else:
- parts = name.split('_')
- if len(parts) == 1:
- parent = 'root'
- else:
- parent = '_'.join(parts[:-1])
- data = load(parent).copy()
- filename = os.path.join(_dirname, '%s.dat' % name)
- fileobj = open(filename, 'rb')
- try:
- if name != 'root' and merge_inherited:
- merge(data, pickle.load(fileobj))
- else:
- data = pickle.load(fileobj)
- _cache[name] = data
- finally:
- fileobj.close()
- return data
- finally:
- _cache_lock.release()
-
-
-def merge(dict1, dict2):
- """Merge the data from `dict2` into the `dict1` dictionary, making copies
- of nested dictionaries.
-
- >>> d = {1: 'foo', 3: 'baz'}
- >>> merge(d, {1: 'Foo', 2: 'Bar'})
- >>> items = d.items(); items.sort(); items
- [(1, 'Foo'), (2, 'Bar'), (3, 'baz')]
-
- :param dict1: the dictionary to merge into
- :param dict2: the dictionary containing the data that should be merged
- """
- for key, val2 in dict2.items():
- if val2 is not None:
- val1 = dict1.get(key)
- if isinstance(val2, dict):
- if val1 is None:
- val1 = {}
- if isinstance(val1, Alias):
- val1 = (val1, val2)
- elif isinstance(val1, tuple):
- alias, others = val1
- others = others.copy()
- merge(others, val2)
- val1 = (alias, others)
- else:
- val1 = val1.copy()
- merge(val1, val2)
- else:
- val1 = val2
- dict1[key] = val1
-
-
-class Alias(object):
- """Representation of an alias in the locale data.
-
- An alias is a value that refers to some other part of the locale data,
- as specified by the `keys`.
- """
-
- def __init__(self, keys):
- self.keys = tuple(keys)
-
- def __repr__(self):
- return '<%s %r>' % (type(self).__name__, self.keys)
-
- def resolve(self, data):
- """Resolve the alias based on the given data.
-
- This is done recursively, so if one alias resolves to a second alias,
- that second alias will also be resolved.
-
- :param data: the locale data
- :type data: `dict`
- """
- base = data
- for key in self.keys:
- data = data[key]
- if isinstance(data, Alias):
- data = data.resolve(base)
- elif isinstance(data, tuple):
- alias, others = data
- data = alias.resolve(base)
- return data
-
-
-class LocaleDataDict(MutableMapping):
- """Dictionary wrapper that automatically resolves aliases to the actual
- values.
- """
-
- def __init__(self, data, base=None):
- self._data = data
- if base is None:
- base = data
- self.base = base
-
- def __len__(self):
- return len(self._data)
-
- def __iter__(self):
- return iter(self._data)
-
- def __getitem__(self, key):
- orig = val = self._data[key]
- if isinstance(val, Alias): # resolve an alias
- val = val.resolve(self.base)
- if isinstance(val, tuple): # Merge a partial dict with an alias
- alias, others = val
- val = alias.resolve(self.base).copy()
- merge(val, others)
- if type(val) is dict: # Return a nested alias-resolving dict
- val = LocaleDataDict(val, base=self.base)
- if val is not orig:
- self._data[key] = val
- return val
-
- def __setitem__(self, key, value):
- self._data[key] = value
-
- def __delitem__(self, key):
- del self._data[key]
-
- def copy(self):
- return LocaleDataDict(self._data.copy(), base=self.base)
diff --git a/vendor/babel/localedata/aa.dat b/vendor/babel/localedata/aa.dat
deleted file mode 100644
index 7a5e4987..00000000
Binary files a/vendor/babel/localedata/aa.dat and /dev/null differ
diff --git a/vendor/babel/localedata/aa_DJ.dat b/vendor/babel/localedata/aa_DJ.dat
deleted file mode 100644
index ceafe155..00000000
Binary files a/vendor/babel/localedata/aa_DJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/aa_ER.dat b/vendor/babel/localedata/aa_ER.dat
deleted file mode 100644
index 61ff1648..00000000
Binary files a/vendor/babel/localedata/aa_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/aa_ET.dat b/vendor/babel/localedata/aa_ET.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/aa_ET.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/af.dat b/vendor/babel/localedata/af.dat
deleted file mode 100644
index b17f184a..00000000
Binary files a/vendor/babel/localedata/af.dat and /dev/null differ
diff --git a/vendor/babel/localedata/af_NA.dat b/vendor/babel/localedata/af_NA.dat
deleted file mode 100644
index c915eedc..00000000
Binary files a/vendor/babel/localedata/af_NA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/af_ZA.dat b/vendor/babel/localedata/af_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/af_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/agq.dat b/vendor/babel/localedata/agq.dat
deleted file mode 100644
index 0c57e93b..00000000
Binary files a/vendor/babel/localedata/agq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/agq_CM.dat b/vendor/babel/localedata/agq_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/agq_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ak.dat b/vendor/babel/localedata/ak.dat
deleted file mode 100644
index fa10f57b..00000000
Binary files a/vendor/babel/localedata/ak.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ak_GH.dat b/vendor/babel/localedata/ak_GH.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ak_GH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/am.dat b/vendor/babel/localedata/am.dat
deleted file mode 100644
index 4bb060eb..00000000
Binary files a/vendor/babel/localedata/am.dat and /dev/null differ
diff --git a/vendor/babel/localedata/am_ET.dat b/vendor/babel/localedata/am_ET.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/am_ET.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar.dat b/vendor/babel/localedata/ar.dat
deleted file mode 100644
index 79d92cc7..00000000
Binary files a/vendor/babel/localedata/ar.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_001.dat b/vendor/babel/localedata/ar_001.dat
deleted file mode 100644
index 5b852b0b..00000000
Binary files a/vendor/babel/localedata/ar_001.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_AE.dat b/vendor/babel/localedata/ar_AE.dat
deleted file mode 100644
index 72b45424..00000000
--- a/vendor/babel/localedata/ar_AE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_BH.dat b/vendor/babel/localedata/ar_BH.dat
deleted file mode 100644
index 72b45424..00000000
--- a/vendor/babel/localedata/ar_BH.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_DJ.dat b/vendor/babel/localedata/ar_DJ.dat
deleted file mode 100644
index b0ee4421..00000000
Binary files a/vendor/babel/localedata/ar_DJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_DZ.dat b/vendor/babel/localedata/ar_DZ.dat
deleted file mode 100644
index bf61a6fb..00000000
Binary files a/vendor/babel/localedata/ar_DZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_EG.dat b/vendor/babel/localedata/ar_EG.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/ar_EG.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_EH.dat b/vendor/babel/localedata/ar_EH.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ar_EH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_ER.dat b/vendor/babel/localedata/ar_ER.dat
deleted file mode 100644
index 61ff1648..00000000
Binary files a/vendor/babel/localedata/ar_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_IL.dat b/vendor/babel/localedata/ar_IL.dat
deleted file mode 100644
index 36bd112d..00000000
--- a/vendor/babel/localedata/ar_IL.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_IQ.dat b/vendor/babel/localedata/ar_IQ.dat
deleted file mode 100644
index 882435e4..00000000
Binary files a/vendor/babel/localedata/ar_IQ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_JO.dat b/vendor/babel/localedata/ar_JO.dat
deleted file mode 100644
index 563ecb41..00000000
Binary files a/vendor/babel/localedata/ar_JO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_KM.dat b/vendor/babel/localedata/ar_KM.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ar_KM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_KW.dat b/vendor/babel/localedata/ar_KW.dat
deleted file mode 100644
index 72b45424..00000000
--- a/vendor/babel/localedata/ar_KW.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_LB.dat b/vendor/babel/localedata/ar_LB.dat
deleted file mode 100644
index 369f5368..00000000
Binary files a/vendor/babel/localedata/ar_LB.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_LY.dat b/vendor/babel/localedata/ar_LY.dat
deleted file mode 100644
index dc63b518..00000000
Binary files a/vendor/babel/localedata/ar_LY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_MA.dat b/vendor/babel/localedata/ar_MA.dat
deleted file mode 100644
index 741e7913..00000000
Binary files a/vendor/babel/localedata/ar_MA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_MR.dat b/vendor/babel/localedata/ar_MR.dat
deleted file mode 100644
index 6ea05710..00000000
Binary files a/vendor/babel/localedata/ar_MR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_OM.dat b/vendor/babel/localedata/ar_OM.dat
deleted file mode 100644
index 150c7e3b..00000000
--- a/vendor/babel/localedata/ar_OM.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_PS.dat b/vendor/babel/localedata/ar_PS.dat
deleted file mode 100644
index 889cfe8c..00000000
Binary files a/vendor/babel/localedata/ar_PS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_QA.dat b/vendor/babel/localedata/ar_QA.dat
deleted file mode 100644
index c63c35df..00000000
Binary files a/vendor/babel/localedata/ar_QA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_SA.dat b/vendor/babel/localedata/ar_SA.dat
deleted file mode 100644
index 052e7456..00000000
Binary files a/vendor/babel/localedata/ar_SA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_SD.dat b/vendor/babel/localedata/ar_SD.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/ar_SD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_SO.dat b/vendor/babel/localedata/ar_SO.dat
deleted file mode 100644
index 39a66503..00000000
Binary files a/vendor/babel/localedata/ar_SO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_SY.dat b/vendor/babel/localedata/ar_SY.dat
deleted file mode 100644
index 96f96b03..00000000
Binary files a/vendor/babel/localedata/ar_SY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_TD.dat b/vendor/babel/localedata/ar_TD.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/ar_TD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ar_TN.dat b/vendor/babel/localedata/ar_TN.dat
deleted file mode 100644
index 5144a9c7..00000000
Binary files a/vendor/babel/localedata/ar_TN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ar_YE.dat b/vendor/babel/localedata/ar_YE.dat
deleted file mode 100644
index 052e7456..00000000
Binary files a/vendor/babel/localedata/ar_YE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/as.dat b/vendor/babel/localedata/as.dat
deleted file mode 100644
index ecf4a3fb..00000000
Binary files a/vendor/babel/localedata/as.dat and /dev/null differ
diff --git a/vendor/babel/localedata/as_IN.dat b/vendor/babel/localedata/as_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/as_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/asa.dat b/vendor/babel/localedata/asa.dat
deleted file mode 100644
index 599f6193..00000000
Binary files a/vendor/babel/localedata/asa.dat and /dev/null differ
diff --git a/vendor/babel/localedata/asa_TZ.dat b/vendor/babel/localedata/asa_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/asa_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ast.dat b/vendor/babel/localedata/ast.dat
deleted file mode 100644
index b3544d0e..00000000
Binary files a/vendor/babel/localedata/ast.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ast_ES.dat b/vendor/babel/localedata/ast_ES.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/ast_ES.dat and /dev/null differ
diff --git a/vendor/babel/localedata/az.dat b/vendor/babel/localedata/az.dat
deleted file mode 100644
index c31ec593..00000000
Binary files a/vendor/babel/localedata/az.dat and /dev/null differ
diff --git a/vendor/babel/localedata/az_Cyrl.dat b/vendor/babel/localedata/az_Cyrl.dat
deleted file mode 100644
index 1d74d11b..00000000
Binary files a/vendor/babel/localedata/az_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/az_Cyrl_AZ.dat b/vendor/babel/localedata/az_Cyrl_AZ.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/az_Cyrl_AZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/az_Latn.dat b/vendor/babel/localedata/az_Latn.dat
deleted file mode 100644
index 980ab6b6..00000000
Binary files a/vendor/babel/localedata/az_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/az_Latn_AZ.dat b/vendor/babel/localedata/az_Latn_AZ.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/az_Latn_AZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bas.dat b/vendor/babel/localedata/bas.dat
deleted file mode 100644
index fe53dafc..00000000
Binary files a/vendor/babel/localedata/bas.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bas_CM.dat b/vendor/babel/localedata/bas_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/bas_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/be.dat b/vendor/babel/localedata/be.dat
deleted file mode 100644
index 00270ce9..00000000
Binary files a/vendor/babel/localedata/be.dat and /dev/null differ
diff --git a/vendor/babel/localedata/be_BY.dat b/vendor/babel/localedata/be_BY.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/be_BY.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/bem.dat b/vendor/babel/localedata/bem.dat
deleted file mode 100644
index 65713a7c..00000000
Binary files a/vendor/babel/localedata/bem.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bem_ZM.dat b/vendor/babel/localedata/bem_ZM.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/bem_ZM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bez.dat b/vendor/babel/localedata/bez.dat
deleted file mode 100644
index aa7bfc25..00000000
Binary files a/vendor/babel/localedata/bez.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bez_TZ.dat b/vendor/babel/localedata/bez_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/bez_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bg.dat b/vendor/babel/localedata/bg.dat
deleted file mode 100644
index 35d43429..00000000
Binary files a/vendor/babel/localedata/bg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bg_BG.dat b/vendor/babel/localedata/bg_BG.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/bg_BG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bm.dat b/vendor/babel/localedata/bm.dat
deleted file mode 100644
index 9f5202cd..00000000
Binary files a/vendor/babel/localedata/bm.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bm_ML.dat b/vendor/babel/localedata/bm_ML.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/bm_ML.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bn.dat b/vendor/babel/localedata/bn.dat
deleted file mode 100644
index c5be3e56..00000000
Binary files a/vendor/babel/localedata/bn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bn_BD.dat b/vendor/babel/localedata/bn_BD.dat
deleted file mode 100644
index 281a7813..00000000
--- a/vendor/babel/localedata/bn_BD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/bn_IN.dat b/vendor/babel/localedata/bn_IN.dat
deleted file mode 100644
index 07613a58..00000000
Binary files a/vendor/babel/localedata/bn_IN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bo.dat b/vendor/babel/localedata/bo.dat
deleted file mode 100644
index bcfa2184..00000000
Binary files a/vendor/babel/localedata/bo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bo_CN.dat b/vendor/babel/localedata/bo_CN.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/bo_CN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/bo_IN.dat b/vendor/babel/localedata/bo_IN.dat
deleted file mode 100644
index fbda3e34..00000000
Binary files a/vendor/babel/localedata/bo_IN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/br.dat b/vendor/babel/localedata/br.dat
deleted file mode 100644
index 2c2bc2cc..00000000
Binary files a/vendor/babel/localedata/br.dat and /dev/null differ
diff --git a/vendor/babel/localedata/br_FR.dat b/vendor/babel/localedata/br_FR.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/br_FR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/brx.dat b/vendor/babel/localedata/brx.dat
deleted file mode 100644
index aaa57e92..00000000
Binary files a/vendor/babel/localedata/brx.dat and /dev/null differ
diff --git a/vendor/babel/localedata/brx_IN.dat b/vendor/babel/localedata/brx_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/brx_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/bs.dat b/vendor/babel/localedata/bs.dat
deleted file mode 100644
index 82abeed2..00000000
Binary files a/vendor/babel/localedata/bs.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bs_Cyrl.dat b/vendor/babel/localedata/bs_Cyrl.dat
deleted file mode 100644
index f152d9de..00000000
Binary files a/vendor/babel/localedata/bs_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bs_Cyrl_BA.dat b/vendor/babel/localedata/bs_Cyrl_BA.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/bs_Cyrl_BA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bs_Latn.dat b/vendor/babel/localedata/bs_Latn.dat
deleted file mode 100644
index a882c5bc..00000000
Binary files a/vendor/babel/localedata/bs_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/bs_Latn_BA.dat b/vendor/babel/localedata/bs_Latn_BA.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/bs_Latn_BA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/byn.dat b/vendor/babel/localedata/byn.dat
deleted file mode 100644
index 6cbcf5a4..00000000
Binary files a/vendor/babel/localedata/byn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/byn_ER.dat b/vendor/babel/localedata/byn_ER.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/byn_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ca.dat b/vendor/babel/localedata/ca.dat
deleted file mode 100644
index 82aa8738..00000000
Binary files a/vendor/babel/localedata/ca.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ca_AD.dat b/vendor/babel/localedata/ca_AD.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/ca_AD.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ca_ES.dat b/vendor/babel/localedata/ca_ES.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/ca_ES.dat and /dev/null differ
diff --git a/vendor/babel/localedata/cgg.dat b/vendor/babel/localedata/cgg.dat
deleted file mode 100644
index 7550fa75..00000000
Binary files a/vendor/babel/localedata/cgg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/cgg_UG.dat b/vendor/babel/localedata/cgg_UG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/cgg_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/chr.dat b/vendor/babel/localedata/chr.dat
deleted file mode 100644
index 65dee5bb..00000000
Binary files a/vendor/babel/localedata/chr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/chr_US.dat b/vendor/babel/localedata/chr_US.dat
deleted file mode 100644
index e1639abe..00000000
--- a/vendor/babel/localedata/chr_US.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/cs.dat b/vendor/babel/localedata/cs.dat
deleted file mode 100644
index f85d6ade..00000000
Binary files a/vendor/babel/localedata/cs.dat and /dev/null differ
diff --git a/vendor/babel/localedata/cs_CZ.dat b/vendor/babel/localedata/cs_CZ.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/cs_CZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/cy.dat b/vendor/babel/localedata/cy.dat
deleted file mode 100644
index c6ec58fe..00000000
Binary files a/vendor/babel/localedata/cy.dat and /dev/null differ
diff --git a/vendor/babel/localedata/cy_GB.dat b/vendor/babel/localedata/cy_GB.dat
deleted file mode 100644
index 401708ff..00000000
--- a/vendor/babel/localedata/cy_GB.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/da.dat b/vendor/babel/localedata/da.dat
deleted file mode 100644
index 47548dd0..00000000
Binary files a/vendor/babel/localedata/da.dat and /dev/null differ
diff --git a/vendor/babel/localedata/da_DK.dat b/vendor/babel/localedata/da_DK.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/da_DK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dav.dat b/vendor/babel/localedata/dav.dat
deleted file mode 100644
index cc17bc0b..00000000
Binary files a/vendor/babel/localedata/dav.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dav_KE.dat b/vendor/babel/localedata/dav_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/dav_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/de.dat b/vendor/babel/localedata/de.dat
deleted file mode 100644
index ba55b507..00000000
Binary files a/vendor/babel/localedata/de.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_AT.dat b/vendor/babel/localedata/de_AT.dat
deleted file mode 100644
index bee43e31..00000000
Binary files a/vendor/babel/localedata/de_AT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_BE.dat b/vendor/babel/localedata/de_BE.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/de_BE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_CH.dat b/vendor/babel/localedata/de_CH.dat
deleted file mode 100644
index a4d26be1..00000000
Binary files a/vendor/babel/localedata/de_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_DE.dat b/vendor/babel/localedata/de_DE.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/de_DE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_LI.dat b/vendor/babel/localedata/de_LI.dat
deleted file mode 100644
index 2b92c9b0..00000000
Binary files a/vendor/babel/localedata/de_LI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/de_LU.dat b/vendor/babel/localedata/de_LU.dat
deleted file mode 100644
index 8d080e12..00000000
Binary files a/vendor/babel/localedata/de_LU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dje.dat b/vendor/babel/localedata/dje.dat
deleted file mode 100644
index b3997c75..00000000
Binary files a/vendor/babel/localedata/dje.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dje_NE.dat b/vendor/babel/localedata/dje_NE.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/dje_NE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dua.dat b/vendor/babel/localedata/dua.dat
deleted file mode 100644
index 2693dc17..00000000
Binary files a/vendor/babel/localedata/dua.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dua_CM.dat b/vendor/babel/localedata/dua_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/dua_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dyo.dat b/vendor/babel/localedata/dyo.dat
deleted file mode 100644
index 9bd62330..00000000
Binary files a/vendor/babel/localedata/dyo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dyo_SN.dat b/vendor/babel/localedata/dyo_SN.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/dyo_SN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dz.dat b/vendor/babel/localedata/dz.dat
deleted file mode 100644
index 0ba26a88..00000000
Binary files a/vendor/babel/localedata/dz.dat and /dev/null differ
diff --git a/vendor/babel/localedata/dz_BT.dat b/vendor/babel/localedata/dz_BT.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/dz_BT.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ebu.dat b/vendor/babel/localedata/ebu.dat
deleted file mode 100644
index 2ce0ac43..00000000
Binary files a/vendor/babel/localedata/ebu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ebu_KE.dat b/vendor/babel/localedata/ebu_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ebu_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ee.dat b/vendor/babel/localedata/ee.dat
deleted file mode 100644
index 28c27433..00000000
Binary files a/vendor/babel/localedata/ee.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ee_GH.dat b/vendor/babel/localedata/ee_GH.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ee_GH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ee_TG.dat b/vendor/babel/localedata/ee_TG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ee_TG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/el.dat b/vendor/babel/localedata/el.dat
deleted file mode 100644
index 9c10ce51..00000000
Binary files a/vendor/babel/localedata/el.dat and /dev/null differ
diff --git a/vendor/babel/localedata/el_CY.dat b/vendor/babel/localedata/el_CY.dat
deleted file mode 100644
index 83f7d854..00000000
Binary files a/vendor/babel/localedata/el_CY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/el_GR.dat b/vendor/babel/localedata/el_GR.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/el_GR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en.dat b/vendor/babel/localedata/en.dat
deleted file mode 100644
index cbe140ca..00000000
Binary files a/vendor/babel/localedata/en.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_150.dat b/vendor/babel/localedata/en_150.dat
deleted file mode 100644
index 23a79939..00000000
Binary files a/vendor/babel/localedata/en_150.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_AG.dat b/vendor/babel/localedata/en_AG.dat
deleted file mode 100644
index c6f15402..00000000
Binary files a/vendor/babel/localedata/en_AG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_AS.dat b/vendor/babel/localedata/en_AS.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/en_AS.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_AU.dat b/vendor/babel/localedata/en_AU.dat
deleted file mode 100644
index 14472b36..00000000
Binary files a/vendor/babel/localedata/en_AU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BB.dat b/vendor/babel/localedata/en_BB.dat
deleted file mode 100644
index 40f7b970..00000000
Binary files a/vendor/babel/localedata/en_BB.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BE.dat b/vendor/babel/localedata/en_BE.dat
deleted file mode 100644
index 89586c28..00000000
Binary files a/vendor/babel/localedata/en_BE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BM.dat b/vendor/babel/localedata/en_BM.dat
deleted file mode 100644
index cf27a79b..00000000
Binary files a/vendor/babel/localedata/en_BM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BS.dat b/vendor/babel/localedata/en_BS.dat
deleted file mode 100644
index 9f24a114..00000000
Binary files a/vendor/babel/localedata/en_BS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BW.dat b/vendor/babel/localedata/en_BW.dat
deleted file mode 100644
index a27e49f6..00000000
Binary files a/vendor/babel/localedata/en_BW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_BZ.dat b/vendor/babel/localedata/en_BZ.dat
deleted file mode 100644
index de2936c1..00000000
Binary files a/vendor/babel/localedata/en_BZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_CA.dat b/vendor/babel/localedata/en_CA.dat
deleted file mode 100644
index f46ef188..00000000
Binary files a/vendor/babel/localedata/en_CA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_CM.dat b/vendor/babel/localedata/en_CM.dat
deleted file mode 100644
index ec06b5e9..00000000
Binary files a/vendor/babel/localedata/en_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_DM.dat b/vendor/babel/localedata/en_DM.dat
deleted file mode 100644
index c6f15402..00000000
Binary files a/vendor/babel/localedata/en_DM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_Dsrt.dat b/vendor/babel/localedata/en_Dsrt.dat
deleted file mode 100644
index c9b5e98d..00000000
Binary files a/vendor/babel/localedata/en_Dsrt.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_Dsrt_US.dat b/vendor/babel/localedata/en_Dsrt_US.dat
deleted file mode 100644
index e1639abe..00000000
--- a/vendor/babel/localedata/en_Dsrt_US.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_FJ.dat b/vendor/babel/localedata/en_FJ.dat
deleted file mode 100644
index 33e22056..00000000
Binary files a/vendor/babel/localedata/en_FJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_FM.dat b/vendor/babel/localedata/en_FM.dat
deleted file mode 100644
index b2c2947d..00000000
Binary files a/vendor/babel/localedata/en_FM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GB.dat b/vendor/babel/localedata/en_GB.dat
deleted file mode 100644
index 2baebd09..00000000
Binary files a/vendor/babel/localedata/en_GB.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GD.dat b/vendor/babel/localedata/en_GD.dat
deleted file mode 100644
index 049f10a1..00000000
Binary files a/vendor/babel/localedata/en_GD.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GG.dat b/vendor/babel/localedata/en_GG.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/en_GG.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_GH.dat b/vendor/babel/localedata/en_GH.dat
deleted file mode 100644
index dceb36d4..00000000
Binary files a/vendor/babel/localedata/en_GH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GI.dat b/vendor/babel/localedata/en_GI.dat
deleted file mode 100644
index 33a2e60a..00000000
Binary files a/vendor/babel/localedata/en_GI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GM.dat b/vendor/babel/localedata/en_GM.dat
deleted file mode 100644
index a7c4e455..00000000
Binary files a/vendor/babel/localedata/en_GM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GU.dat b/vendor/babel/localedata/en_GU.dat
deleted file mode 100644
index b022c614..00000000
Binary files a/vendor/babel/localedata/en_GU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_GY.dat b/vendor/babel/localedata/en_GY.dat
deleted file mode 100644
index 19a886ca..00000000
Binary files a/vendor/babel/localedata/en_GY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_HK.dat b/vendor/babel/localedata/en_HK.dat
deleted file mode 100644
index a62e0137..00000000
Binary files a/vendor/babel/localedata/en_HK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_IE.dat b/vendor/babel/localedata/en_IE.dat
deleted file mode 100644
index e4bd14ef..00000000
Binary files a/vendor/babel/localedata/en_IE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_IM.dat b/vendor/babel/localedata/en_IM.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/en_IM.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_IN.dat b/vendor/babel/localedata/en_IN.dat
deleted file mode 100644
index cea4cae9..00000000
Binary files a/vendor/babel/localedata/en_IN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_JE.dat b/vendor/babel/localedata/en_JE.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/en_JE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_JM.dat b/vendor/babel/localedata/en_JM.dat
deleted file mode 100644
index e792cb93..00000000
Binary files a/vendor/babel/localedata/en_JM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_KE.dat b/vendor/babel/localedata/en_KE.dat
deleted file mode 100644
index f1dc0e5d..00000000
Binary files a/vendor/babel/localedata/en_KE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_KI.dat b/vendor/babel/localedata/en_KI.dat
deleted file mode 100644
index b87da16d..00000000
Binary files a/vendor/babel/localedata/en_KI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_KN.dat b/vendor/babel/localedata/en_KN.dat
deleted file mode 100644
index 049f10a1..00000000
Binary files a/vendor/babel/localedata/en_KN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_KY.dat b/vendor/babel/localedata/en_KY.dat
deleted file mode 100644
index a6415f49..00000000
Binary files a/vendor/babel/localedata/en_KY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_LC.dat b/vendor/babel/localedata/en_LC.dat
deleted file mode 100644
index 049f10a1..00000000
Binary files a/vendor/babel/localedata/en_LC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_LR.dat b/vendor/babel/localedata/en_LR.dat
deleted file mode 100644
index e92eac71..00000000
Binary files a/vendor/babel/localedata/en_LR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_LS.dat b/vendor/babel/localedata/en_LS.dat
deleted file mode 100644
index 76aab995..00000000
Binary files a/vendor/babel/localedata/en_LS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MG.dat b/vendor/babel/localedata/en_MG.dat
deleted file mode 100644
index 25efe8a0..00000000
Binary files a/vendor/babel/localedata/en_MG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MH.dat b/vendor/babel/localedata/en_MH.dat
deleted file mode 100644
index 2a51e5ab..00000000
Binary files a/vendor/babel/localedata/en_MH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MP.dat b/vendor/babel/localedata/en_MP.dat
deleted file mode 100644
index b2c2947d..00000000
Binary files a/vendor/babel/localedata/en_MP.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MT.dat b/vendor/babel/localedata/en_MT.dat
deleted file mode 100644
index d68588a1..00000000
Binary files a/vendor/babel/localedata/en_MT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MU.dat b/vendor/babel/localedata/en_MU.dat
deleted file mode 100644
index 6434affc..00000000
Binary files a/vendor/babel/localedata/en_MU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_MW.dat b/vendor/babel/localedata/en_MW.dat
deleted file mode 100644
index 2b728133..00000000
Binary files a/vendor/babel/localedata/en_MW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_NA.dat b/vendor/babel/localedata/en_NA.dat
deleted file mode 100644
index ab7159fb..00000000
Binary files a/vendor/babel/localedata/en_NA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_NG.dat b/vendor/babel/localedata/en_NG.dat
deleted file mode 100644
index ca4464e6..00000000
Binary files a/vendor/babel/localedata/en_NG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_NZ.dat b/vendor/babel/localedata/en_NZ.dat
deleted file mode 100644
index 1e8d8df3..00000000
Binary files a/vendor/babel/localedata/en_NZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_PG.dat b/vendor/babel/localedata/en_PG.dat
deleted file mode 100644
index 57dc8c55..00000000
Binary files a/vendor/babel/localedata/en_PG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_PH.dat b/vendor/babel/localedata/en_PH.dat
deleted file mode 100644
index edf7178f..00000000
Binary files a/vendor/babel/localedata/en_PH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_PK.dat b/vendor/babel/localedata/en_PK.dat
deleted file mode 100644
index 40744ea8..00000000
Binary files a/vendor/babel/localedata/en_PK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_PR.dat b/vendor/babel/localedata/en_PR.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/en_PR.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_PW.dat b/vendor/babel/localedata/en_PW.dat
deleted file mode 100644
index b2c2947d..00000000
Binary files a/vendor/babel/localedata/en_PW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SB.dat b/vendor/babel/localedata/en_SB.dat
deleted file mode 100644
index eaab8887..00000000
Binary files a/vendor/babel/localedata/en_SB.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SC.dat b/vendor/babel/localedata/en_SC.dat
deleted file mode 100644
index 355ec817..00000000
Binary files a/vendor/babel/localedata/en_SC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SG.dat b/vendor/babel/localedata/en_SG.dat
deleted file mode 100644
index d12d553c..00000000
Binary files a/vendor/babel/localedata/en_SG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SL.dat b/vendor/babel/localedata/en_SL.dat
deleted file mode 100644
index a9b33f38..00000000
Binary files a/vendor/babel/localedata/en_SL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SS.dat b/vendor/babel/localedata/en_SS.dat
deleted file mode 100644
index 98b33925..00000000
Binary files a/vendor/babel/localedata/en_SS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_SZ.dat b/vendor/babel/localedata/en_SZ.dat
deleted file mode 100644
index 2bd0229d..00000000
Binary files a/vendor/babel/localedata/en_SZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_TC.dat b/vendor/babel/localedata/en_TC.dat
deleted file mode 100644
index 59cbead6..00000000
Binary files a/vendor/babel/localedata/en_TC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_TO.dat b/vendor/babel/localedata/en_TO.dat
deleted file mode 100644
index 5f95a001..00000000
Binary files a/vendor/babel/localedata/en_TO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_TT.dat b/vendor/babel/localedata/en_TT.dat
deleted file mode 100644
index fa9a6ce1..00000000
Binary files a/vendor/babel/localedata/en_TT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_TZ.dat b/vendor/babel/localedata/en_TZ.dat
deleted file mode 100644
index 26922be1..00000000
Binary files a/vendor/babel/localedata/en_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_UG.dat b/vendor/babel/localedata/en_UG.dat
deleted file mode 100644
index c41cbbf0..00000000
Binary files a/vendor/babel/localedata/en_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_UM.dat b/vendor/babel/localedata/en_UM.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/en_UM.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_US.dat b/vendor/babel/localedata/en_US.dat
deleted file mode 100644
index e1639abe..00000000
--- a/vendor/babel/localedata/en_US.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_US_POSIX.dat b/vendor/babel/localedata/en_US_POSIX.dat
deleted file mode 100644
index 09cbe7ec..00000000
Binary files a/vendor/babel/localedata/en_US_POSIX.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_VC.dat b/vendor/babel/localedata/en_VC.dat
deleted file mode 100644
index 049f10a1..00000000
Binary files a/vendor/babel/localedata/en_VC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_VG.dat b/vendor/babel/localedata/en_VG.dat
deleted file mode 100644
index 59cbead6..00000000
Binary files a/vendor/babel/localedata/en_VG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_VI.dat b/vendor/babel/localedata/en_VI.dat
deleted file mode 100644
index e1639abe..00000000
--- a/vendor/babel/localedata/en_VI.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/en_VU.dat b/vendor/babel/localedata/en_VU.dat
deleted file mode 100644
index bf189111..00000000
Binary files a/vendor/babel/localedata/en_VU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_WS.dat b/vendor/babel/localedata/en_WS.dat
deleted file mode 100644
index d9693cc4..00000000
Binary files a/vendor/babel/localedata/en_WS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_ZA.dat b/vendor/babel/localedata/en_ZA.dat
deleted file mode 100644
index c66ff2ba..00000000
Binary files a/vendor/babel/localedata/en_ZA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_ZM.dat b/vendor/babel/localedata/en_ZM.dat
deleted file mode 100644
index 6faaea85..00000000
Binary files a/vendor/babel/localedata/en_ZM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/en_ZW.dat b/vendor/babel/localedata/en_ZW.dat
deleted file mode 100644
index 97fee561..00000000
Binary files a/vendor/babel/localedata/en_ZW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/eo.dat b/vendor/babel/localedata/eo.dat
deleted file mode 100644
index 452c8491..00000000
Binary files a/vendor/babel/localedata/eo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es.dat b/vendor/babel/localedata/es.dat
deleted file mode 100644
index a48af1bc..00000000
Binary files a/vendor/babel/localedata/es.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_419.dat b/vendor/babel/localedata/es_419.dat
deleted file mode 100644
index b3a15f1b..00000000
Binary files a/vendor/babel/localedata/es_419.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_AR.dat b/vendor/babel/localedata/es_AR.dat
deleted file mode 100644
index 7b21f4fc..00000000
Binary files a/vendor/babel/localedata/es_AR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_BO.dat b/vendor/babel/localedata/es_BO.dat
deleted file mode 100644
index 438c3600..00000000
Binary files a/vendor/babel/localedata/es_BO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_CL.dat b/vendor/babel/localedata/es_CL.dat
deleted file mode 100644
index e11cc51d..00000000
Binary files a/vendor/babel/localedata/es_CL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_CO.dat b/vendor/babel/localedata/es_CO.dat
deleted file mode 100644
index dd043336..00000000
Binary files a/vendor/babel/localedata/es_CO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_CR.dat b/vendor/babel/localedata/es_CR.dat
deleted file mode 100644
index f433899f..00000000
Binary files a/vendor/babel/localedata/es_CR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_CU.dat b/vendor/babel/localedata/es_CU.dat
deleted file mode 100644
index 72288202..00000000
Binary files a/vendor/babel/localedata/es_CU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_DO.dat b/vendor/babel/localedata/es_DO.dat
deleted file mode 100644
index 66bebe84..00000000
Binary files a/vendor/babel/localedata/es_DO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_EA.dat b/vendor/babel/localedata/es_EA.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/es_EA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_EC.dat b/vendor/babel/localedata/es_EC.dat
deleted file mode 100644
index 83d1eaf0..00000000
Binary files a/vendor/babel/localedata/es_EC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_ES.dat b/vendor/babel/localedata/es_ES.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/es_ES.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_GQ.dat b/vendor/babel/localedata/es_GQ.dat
deleted file mode 100644
index 13b86e08..00000000
Binary files a/vendor/babel/localedata/es_GQ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_GT.dat b/vendor/babel/localedata/es_GT.dat
deleted file mode 100644
index 83f5f6a0..00000000
Binary files a/vendor/babel/localedata/es_GT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_HN.dat b/vendor/babel/localedata/es_HN.dat
deleted file mode 100644
index 4aa9304d..00000000
Binary files a/vendor/babel/localedata/es_HN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_IC.dat b/vendor/babel/localedata/es_IC.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/es_IC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_MX.dat b/vendor/babel/localedata/es_MX.dat
deleted file mode 100644
index ae1c2a34..00000000
Binary files a/vendor/babel/localedata/es_MX.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_NI.dat b/vendor/babel/localedata/es_NI.dat
deleted file mode 100644
index 7dfe1848..00000000
Binary files a/vendor/babel/localedata/es_NI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_PA.dat b/vendor/babel/localedata/es_PA.dat
deleted file mode 100644
index 1222b460..00000000
Binary files a/vendor/babel/localedata/es_PA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_PE.dat b/vendor/babel/localedata/es_PE.dat
deleted file mode 100644
index 4da74281..00000000
Binary files a/vendor/babel/localedata/es_PE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_PH.dat b/vendor/babel/localedata/es_PH.dat
deleted file mode 100644
index f4663c6e..00000000
Binary files a/vendor/babel/localedata/es_PH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_PR.dat b/vendor/babel/localedata/es_PR.dat
deleted file mode 100644
index 8db3f313..00000000
Binary files a/vendor/babel/localedata/es_PR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_PY.dat b/vendor/babel/localedata/es_PY.dat
deleted file mode 100644
index 0a022b42..00000000
Binary files a/vendor/babel/localedata/es_PY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_SV.dat b/vendor/babel/localedata/es_SV.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/es_SV.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/es_US.dat b/vendor/babel/localedata/es_US.dat
deleted file mode 100644
index e427ff3c..00000000
Binary files a/vendor/babel/localedata/es_US.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_UY.dat b/vendor/babel/localedata/es_UY.dat
deleted file mode 100644
index bfd9e033..00000000
Binary files a/vendor/babel/localedata/es_UY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/es_VE.dat b/vendor/babel/localedata/es_VE.dat
deleted file mode 100644
index 65b44e1b..00000000
Binary files a/vendor/babel/localedata/es_VE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/et.dat b/vendor/babel/localedata/et.dat
deleted file mode 100644
index a9d8bb9e..00000000
Binary files a/vendor/babel/localedata/et.dat and /dev/null differ
diff --git a/vendor/babel/localedata/et_EE.dat b/vendor/babel/localedata/et_EE.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/et_EE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/eu.dat b/vendor/babel/localedata/eu.dat
deleted file mode 100644
index 6131e096..00000000
Binary files a/vendor/babel/localedata/eu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/eu_ES.dat b/vendor/babel/localedata/eu_ES.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/eu_ES.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ewo.dat b/vendor/babel/localedata/ewo.dat
deleted file mode 100644
index 24172c24..00000000
Binary files a/vendor/babel/localedata/ewo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ewo_CM.dat b/vendor/babel/localedata/ewo_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ewo_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fa.dat b/vendor/babel/localedata/fa.dat
deleted file mode 100644
index e5d7d4a2..00000000
Binary files a/vendor/babel/localedata/fa.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fa_AF.dat b/vendor/babel/localedata/fa_AF.dat
deleted file mode 100644
index b7592aa2..00000000
Binary files a/vendor/babel/localedata/fa_AF.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fa_IR.dat b/vendor/babel/localedata/fa_IR.dat
deleted file mode 100644
index 150c7e3b..00000000
--- a/vendor/babel/localedata/fa_IR.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ff.dat b/vendor/babel/localedata/ff.dat
deleted file mode 100644
index 5b3aab1c..00000000
Binary files a/vendor/babel/localedata/ff.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ff_SN.dat b/vendor/babel/localedata/ff_SN.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ff_SN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fi.dat b/vendor/babel/localedata/fi.dat
deleted file mode 100644
index cd638377..00000000
Binary files a/vendor/babel/localedata/fi.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fi_FI.dat b/vendor/babel/localedata/fi_FI.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fi_FI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fil.dat b/vendor/babel/localedata/fil.dat
deleted file mode 100644
index 4e790acd..00000000
Binary files a/vendor/babel/localedata/fil.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fil_PH.dat b/vendor/babel/localedata/fil_PH.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/fil_PH.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fo.dat b/vendor/babel/localedata/fo.dat
deleted file mode 100644
index 53dad881..00000000
Binary files a/vendor/babel/localedata/fo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fo_FO.dat b/vendor/babel/localedata/fo_FO.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fo_FO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr.dat b/vendor/babel/localedata/fr.dat
deleted file mode 100644
index 12624b77..00000000
Binary files a/vendor/babel/localedata/fr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_BE.dat b/vendor/babel/localedata/fr_BE.dat
deleted file mode 100644
index 873a78c0..00000000
Binary files a/vendor/babel/localedata/fr_BE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_BF.dat b/vendor/babel/localedata/fr_BF.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_BF.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_BI.dat b/vendor/babel/localedata/fr_BI.dat
deleted file mode 100644
index 0e37e699..00000000
Binary files a/vendor/babel/localedata/fr_BI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_BJ.dat b/vendor/babel/localedata/fr_BJ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_BJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_BL.dat b/vendor/babel/localedata/fr_BL.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_BL.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_CA.dat b/vendor/babel/localedata/fr_CA.dat
deleted file mode 100644
index 22e00e6a..00000000
Binary files a/vendor/babel/localedata/fr_CA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_CD.dat b/vendor/babel/localedata/fr_CD.dat
deleted file mode 100644
index 54d87d99..00000000
Binary files a/vendor/babel/localedata/fr_CD.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_CF.dat b/vendor/babel/localedata/fr_CF.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_CF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_CG.dat b/vendor/babel/localedata/fr_CG.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_CG.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_CH.dat b/vendor/babel/localedata/fr_CH.dat
deleted file mode 100644
index da2a9705..00000000
Binary files a/vendor/babel/localedata/fr_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_CI.dat b/vendor/babel/localedata/fr_CI.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_CI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_CM.dat b/vendor/babel/localedata/fr_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/fr_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_DJ.dat b/vendor/babel/localedata/fr_DJ.dat
deleted file mode 100644
index b0ee4421..00000000
Binary files a/vendor/babel/localedata/fr_DJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_DZ.dat b/vendor/babel/localedata/fr_DZ.dat
deleted file mode 100644
index be317e2b..00000000
Binary files a/vendor/babel/localedata/fr_DZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_FR.dat b/vendor/babel/localedata/fr_FR.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fr_FR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_GA.dat b/vendor/babel/localedata/fr_GA.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_GA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_GF.dat b/vendor/babel/localedata/fr_GF.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fr_GF.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_GN.dat b/vendor/babel/localedata/fr_GN.dat
deleted file mode 100644
index 4207c303..00000000
Binary files a/vendor/babel/localedata/fr_GN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_GP.dat b/vendor/babel/localedata/fr_GP.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fr_GP.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_GQ.dat b/vendor/babel/localedata/fr_GQ.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_GQ.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_HT.dat b/vendor/babel/localedata/fr_HT.dat
deleted file mode 100644
index b57f296d..00000000
Binary files a/vendor/babel/localedata/fr_HT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_KM.dat b/vendor/babel/localedata/fr_KM.dat
deleted file mode 100644
index 6a215c9a..00000000
Binary files a/vendor/babel/localedata/fr_KM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_LU.dat b/vendor/babel/localedata/fr_LU.dat
deleted file mode 100644
index 947f11cb..00000000
Binary files a/vendor/babel/localedata/fr_LU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_MA.dat b/vendor/babel/localedata/fr_MA.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/fr_MA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_MC.dat b/vendor/babel/localedata/fr_MC.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fr_MC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_MF.dat b/vendor/babel/localedata/fr_MF.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_MF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_MG.dat b/vendor/babel/localedata/fr_MG.dat
deleted file mode 100644
index 507d9879..00000000
Binary files a/vendor/babel/localedata/fr_MG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_ML.dat b/vendor/babel/localedata/fr_ML.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_ML.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_MQ.dat b/vendor/babel/localedata/fr_MQ.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fr_MQ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_MR.dat b/vendor/babel/localedata/fr_MR.dat
deleted file mode 100644
index e37ceddb..00000000
Binary files a/vendor/babel/localedata/fr_MR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_MU.dat b/vendor/babel/localedata/fr_MU.dat
deleted file mode 100644
index 1dcad22d..00000000
Binary files a/vendor/babel/localedata/fr_MU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_NC.dat b/vendor/babel/localedata/fr_NC.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_NC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_NE.dat b/vendor/babel/localedata/fr_NE.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_NE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_PF.dat b/vendor/babel/localedata/fr_PF.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_PF.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_RE.dat b/vendor/babel/localedata/fr_RE.dat
deleted file mode 100644
index 9721f8c0..00000000
Binary files a/vendor/babel/localedata/fr_RE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_RW.dat b/vendor/babel/localedata/fr_RW.dat
deleted file mode 100644
index a6a51af8..00000000
Binary files a/vendor/babel/localedata/fr_RW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_SC.dat b/vendor/babel/localedata/fr_SC.dat
deleted file mode 100644
index 017b99b9..00000000
Binary files a/vendor/babel/localedata/fr_SC.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_SN.dat b/vendor/babel/localedata/fr_SN.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_SN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_SY.dat b/vendor/babel/localedata/fr_SY.dat
deleted file mode 100644
index d2dd10e5..00000000
Binary files a/vendor/babel/localedata/fr_SY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_TD.dat b/vendor/babel/localedata/fr_TD.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/fr_TD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/fr_TG.dat b/vendor/babel/localedata/fr_TG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_TG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_TN.dat b/vendor/babel/localedata/fr_TN.dat
deleted file mode 100644
index 70cc0661..00000000
Binary files a/vendor/babel/localedata/fr_TN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_VU.dat b/vendor/babel/localedata/fr_VU.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_VU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fr_YT.dat b/vendor/babel/localedata/fr_YT.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/fr_YT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fur.dat b/vendor/babel/localedata/fur.dat
deleted file mode 100644
index 92767739..00000000
Binary files a/vendor/babel/localedata/fur.dat and /dev/null differ
diff --git a/vendor/babel/localedata/fur_IT.dat b/vendor/babel/localedata/fur_IT.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/fur_IT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ga.dat b/vendor/babel/localedata/ga.dat
deleted file mode 100644
index e47984a3..00000000
Binary files a/vendor/babel/localedata/ga.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ga_IE.dat b/vendor/babel/localedata/ga_IE.dat
deleted file mode 100644
index 401708ff..00000000
--- a/vendor/babel/localedata/ga_IE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/gd.dat b/vendor/babel/localedata/gd.dat
deleted file mode 100644
index d8d4a035..00000000
Binary files a/vendor/babel/localedata/gd.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gd_GB.dat b/vendor/babel/localedata/gd_GB.dat
deleted file mode 100644
index 401708ff..00000000
--- a/vendor/babel/localedata/gd_GB.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/gl.dat b/vendor/babel/localedata/gl.dat
deleted file mode 100644
index c9fcaabf..00000000
Binary files a/vendor/babel/localedata/gl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gl_ES.dat b/vendor/babel/localedata/gl_ES.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/gl_ES.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gsw.dat b/vendor/babel/localedata/gsw.dat
deleted file mode 100644
index 06178116..00000000
Binary files a/vendor/babel/localedata/gsw.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gsw_CH.dat b/vendor/babel/localedata/gsw_CH.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/gsw_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gu.dat b/vendor/babel/localedata/gu.dat
deleted file mode 100644
index 19621ca2..00000000
Binary files a/vendor/babel/localedata/gu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gu_IN.dat b/vendor/babel/localedata/gu_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/gu_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/guz.dat b/vendor/babel/localedata/guz.dat
deleted file mode 100644
index d287c50c..00000000
Binary files a/vendor/babel/localedata/guz.dat and /dev/null differ
diff --git a/vendor/babel/localedata/guz_KE.dat b/vendor/babel/localedata/guz_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/guz_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/gv.dat b/vendor/babel/localedata/gv.dat
deleted file mode 100644
index 4d923589..00000000
Binary files a/vendor/babel/localedata/gv.dat and /dev/null differ
diff --git a/vendor/babel/localedata/gv_GB.dat b/vendor/babel/localedata/gv_GB.dat
deleted file mode 100644
index 401708ff..00000000
--- a/vendor/babel/localedata/gv_GB.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ha.dat b/vendor/babel/localedata/ha.dat
deleted file mode 100644
index d42e1f23..00000000
Binary files a/vendor/babel/localedata/ha.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ha_Latn.dat b/vendor/babel/localedata/ha_Latn.dat
deleted file mode 100644
index 27760a1c..00000000
Binary files a/vendor/babel/localedata/ha_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ha_Latn_GH.dat b/vendor/babel/localedata/ha_Latn_GH.dat
deleted file mode 100644
index a6c4ac10..00000000
Binary files a/vendor/babel/localedata/ha_Latn_GH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ha_Latn_NE.dat b/vendor/babel/localedata/ha_Latn_NE.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ha_Latn_NE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ha_Latn_NG.dat b/vendor/babel/localedata/ha_Latn_NG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ha_Latn_NG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/haw.dat b/vendor/babel/localedata/haw.dat
deleted file mode 100644
index 74c46ef8..00000000
Binary files a/vendor/babel/localedata/haw.dat and /dev/null differ
diff --git a/vendor/babel/localedata/haw_US.dat b/vendor/babel/localedata/haw_US.dat
deleted file mode 100644
index e1639abe..00000000
--- a/vendor/babel/localedata/haw_US.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/he.dat b/vendor/babel/localedata/he.dat
deleted file mode 100644
index f085ae17..00000000
Binary files a/vendor/babel/localedata/he.dat and /dev/null differ
diff --git a/vendor/babel/localedata/he_IL.dat b/vendor/babel/localedata/he_IL.dat
deleted file mode 100644
index 36bd112d..00000000
--- a/vendor/babel/localedata/he_IL.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/hi.dat b/vendor/babel/localedata/hi.dat
deleted file mode 100644
index 26f01c7e..00000000
Binary files a/vendor/babel/localedata/hi.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hi_IN.dat b/vendor/babel/localedata/hi_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/hi_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/hr.dat b/vendor/babel/localedata/hr.dat
deleted file mode 100644
index c11d3951..00000000
Binary files a/vendor/babel/localedata/hr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hr_BA.dat b/vendor/babel/localedata/hr_BA.dat
deleted file mode 100644
index 7b236885..00000000
Binary files a/vendor/babel/localedata/hr_BA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hr_HR.dat b/vendor/babel/localedata/hr_HR.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/hr_HR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hu.dat b/vendor/babel/localedata/hu.dat
deleted file mode 100644
index ddc9aae1..00000000
Binary files a/vendor/babel/localedata/hu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hu_HU.dat b/vendor/babel/localedata/hu_HU.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/hu_HU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hy.dat b/vendor/babel/localedata/hy.dat
deleted file mode 100644
index 59fc3928..00000000
Binary files a/vendor/babel/localedata/hy.dat and /dev/null differ
diff --git a/vendor/babel/localedata/hy_AM.dat b/vendor/babel/localedata/hy_AM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/hy_AM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ia.dat b/vendor/babel/localedata/ia.dat
deleted file mode 100644
index d97e3257..00000000
Binary files a/vendor/babel/localedata/ia.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ia_FR.dat b/vendor/babel/localedata/ia_FR.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/ia_FR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/id.dat b/vendor/babel/localedata/id.dat
deleted file mode 100644
index 1b8398a6..00000000
Binary files a/vendor/babel/localedata/id.dat and /dev/null differ
diff --git a/vendor/babel/localedata/id_ID.dat b/vendor/babel/localedata/id_ID.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/id_ID.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ig.dat b/vendor/babel/localedata/ig.dat
deleted file mode 100644
index c19bb598..00000000
Binary files a/vendor/babel/localedata/ig.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ig_NG.dat b/vendor/babel/localedata/ig_NG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ig_NG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ii.dat b/vendor/babel/localedata/ii.dat
deleted file mode 100644
index 1b6499e9..00000000
Binary files a/vendor/babel/localedata/ii.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ii_CN.dat b/vendor/babel/localedata/ii_CN.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/ii_CN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/is.dat b/vendor/babel/localedata/is.dat
deleted file mode 100644
index f1996ea6..00000000
Binary files a/vendor/babel/localedata/is.dat and /dev/null differ
diff --git a/vendor/babel/localedata/is_IS.dat b/vendor/babel/localedata/is_IS.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/is_IS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/it.dat b/vendor/babel/localedata/it.dat
deleted file mode 100644
index b084d771..00000000
Binary files a/vendor/babel/localedata/it.dat and /dev/null differ
diff --git a/vendor/babel/localedata/it_CH.dat b/vendor/babel/localedata/it_CH.dat
deleted file mode 100644
index d37370cc..00000000
Binary files a/vendor/babel/localedata/it_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/it_IT.dat b/vendor/babel/localedata/it_IT.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/it_IT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/it_SM.dat b/vendor/babel/localedata/it_SM.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/it_SM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ja.dat b/vendor/babel/localedata/ja.dat
deleted file mode 100644
index 7351a747..00000000
Binary files a/vendor/babel/localedata/ja.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ja_JP.dat b/vendor/babel/localedata/ja_JP.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/ja_JP.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/jgo.dat b/vendor/babel/localedata/jgo.dat
deleted file mode 100644
index 616271b5..00000000
Binary files a/vendor/babel/localedata/jgo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/jgo_CM.dat b/vendor/babel/localedata/jgo_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/jgo_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/jmc.dat b/vendor/babel/localedata/jmc.dat
deleted file mode 100644
index ccc3b836..00000000
Binary files a/vendor/babel/localedata/jmc.dat and /dev/null differ
diff --git a/vendor/babel/localedata/jmc_TZ.dat b/vendor/babel/localedata/jmc_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/jmc_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ka.dat b/vendor/babel/localedata/ka.dat
deleted file mode 100644
index 1979e8aa..00000000
Binary files a/vendor/babel/localedata/ka.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ka_GE.dat b/vendor/babel/localedata/ka_GE.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ka_GE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kab.dat b/vendor/babel/localedata/kab.dat
deleted file mode 100644
index 409ba3b0..00000000
Binary files a/vendor/babel/localedata/kab.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kab_DZ.dat b/vendor/babel/localedata/kab_DZ.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/kab_DZ.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kam.dat b/vendor/babel/localedata/kam.dat
deleted file mode 100644
index 70c78d05..00000000
Binary files a/vendor/babel/localedata/kam.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kam_KE.dat b/vendor/babel/localedata/kam_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/kam_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kde.dat b/vendor/babel/localedata/kde.dat
deleted file mode 100644
index 3468c068..00000000
Binary files a/vendor/babel/localedata/kde.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kde_TZ.dat b/vendor/babel/localedata/kde_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/kde_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kea.dat b/vendor/babel/localedata/kea.dat
deleted file mode 100644
index 36e669e1..00000000
Binary files a/vendor/babel/localedata/kea.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kea_CV.dat b/vendor/babel/localedata/kea_CV.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/kea_CV.dat and /dev/null differ
diff --git a/vendor/babel/localedata/khq.dat b/vendor/babel/localedata/khq.dat
deleted file mode 100644
index 4e900a78..00000000
Binary files a/vendor/babel/localedata/khq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/khq_ML.dat b/vendor/babel/localedata/khq_ML.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/khq_ML.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ki.dat b/vendor/babel/localedata/ki.dat
deleted file mode 100644
index d30ce01f..00000000
Binary files a/vendor/babel/localedata/ki.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ki_KE.dat b/vendor/babel/localedata/ki_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ki_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kk.dat b/vendor/babel/localedata/kk.dat
deleted file mode 100644
index 3125ea54..00000000
Binary files a/vendor/babel/localedata/kk.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kk_Cyrl.dat b/vendor/babel/localedata/kk_Cyrl.dat
deleted file mode 100644
index 27760a1c..00000000
Binary files a/vendor/babel/localedata/kk_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kk_Cyrl_KZ.dat b/vendor/babel/localedata/kk_Cyrl_KZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/kk_Cyrl_KZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kkj.dat b/vendor/babel/localedata/kkj.dat
deleted file mode 100644
index bd2d7b08..00000000
Binary files a/vendor/babel/localedata/kkj.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kkj_CM.dat b/vendor/babel/localedata/kkj_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/kkj_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kl.dat b/vendor/babel/localedata/kl.dat
deleted file mode 100644
index 5c13a69f..00000000
Binary files a/vendor/babel/localedata/kl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kl_GL.dat b/vendor/babel/localedata/kl_GL.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/kl_GL.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kln.dat b/vendor/babel/localedata/kln.dat
deleted file mode 100644
index a5cc0352..00000000
Binary files a/vendor/babel/localedata/kln.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kln_KE.dat b/vendor/babel/localedata/kln_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/kln_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/km.dat b/vendor/babel/localedata/km.dat
deleted file mode 100644
index 4613359c..00000000
Binary files a/vendor/babel/localedata/km.dat and /dev/null differ
diff --git a/vendor/babel/localedata/km_KH.dat b/vendor/babel/localedata/km_KH.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/km_KH.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kn.dat b/vendor/babel/localedata/kn.dat
deleted file mode 100644
index c136cc5f..00000000
Binary files a/vendor/babel/localedata/kn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kn_IN.dat b/vendor/babel/localedata/kn_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/kn_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ko.dat b/vendor/babel/localedata/ko.dat
deleted file mode 100644
index 5910e0d6..00000000
Binary files a/vendor/babel/localedata/ko.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ko_KP.dat b/vendor/babel/localedata/ko_KP.dat
deleted file mode 100644
index 4b4537f7..00000000
Binary files a/vendor/babel/localedata/ko_KP.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ko_KR.dat b/vendor/babel/localedata/ko_KR.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/ko_KR.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/kok.dat b/vendor/babel/localedata/kok.dat
deleted file mode 100644
index 012c2e20..00000000
Binary files a/vendor/babel/localedata/kok.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kok_IN.dat b/vendor/babel/localedata/kok_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/kok_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ks.dat b/vendor/babel/localedata/ks.dat
deleted file mode 100644
index bd4a4272..00000000
Binary files a/vendor/babel/localedata/ks.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ks_Arab.dat b/vendor/babel/localedata/ks_Arab.dat
deleted file mode 100644
index 27760a1c..00000000
Binary files a/vendor/babel/localedata/ks_Arab.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ks_Arab_IN.dat b/vendor/babel/localedata/ks_Arab_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/ks_Arab_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ksb.dat b/vendor/babel/localedata/ksb.dat
deleted file mode 100644
index 4a160056..00000000
Binary files a/vendor/babel/localedata/ksb.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ksb_TZ.dat b/vendor/babel/localedata/ksb_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ksb_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ksf.dat b/vendor/babel/localedata/ksf.dat
deleted file mode 100644
index 11881d44..00000000
Binary files a/vendor/babel/localedata/ksf.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ksf_CM.dat b/vendor/babel/localedata/ksf_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ksf_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ksh.dat b/vendor/babel/localedata/ksh.dat
deleted file mode 100644
index 385e52e4..00000000
Binary files a/vendor/babel/localedata/ksh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ksh_DE.dat b/vendor/babel/localedata/ksh_DE.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/ksh_DE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kw.dat b/vendor/babel/localedata/kw.dat
deleted file mode 100644
index 4056d0ad..00000000
Binary files a/vendor/babel/localedata/kw.dat and /dev/null differ
diff --git a/vendor/babel/localedata/kw_GB.dat b/vendor/babel/localedata/kw_GB.dat
deleted file mode 100644
index 401708ff..00000000
--- a/vendor/babel/localedata/kw_GB.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ky.dat b/vendor/babel/localedata/ky.dat
deleted file mode 100644
index cff43ec9..00000000
Binary files a/vendor/babel/localedata/ky.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ky_KG.dat b/vendor/babel/localedata/ky_KG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ky_KG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lag.dat b/vendor/babel/localedata/lag.dat
deleted file mode 100644
index 922e70fb..00000000
Binary files a/vendor/babel/localedata/lag.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lag_TZ.dat b/vendor/babel/localedata/lag_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/lag_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lg.dat b/vendor/babel/localedata/lg.dat
deleted file mode 100644
index dbbf1eba..00000000
Binary files a/vendor/babel/localedata/lg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lg_UG.dat b/vendor/babel/localedata/lg_UG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/lg_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ln.dat b/vendor/babel/localedata/ln.dat
deleted file mode 100644
index 320079bb..00000000
Binary files a/vendor/babel/localedata/ln.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ln_AO.dat b/vendor/babel/localedata/ln_AO.dat
deleted file mode 100644
index dc23f4ec..00000000
Binary files a/vendor/babel/localedata/ln_AO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ln_CD.dat b/vendor/babel/localedata/ln_CD.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/ln_CD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ln_CF.dat b/vendor/babel/localedata/ln_CF.dat
deleted file mode 100644
index 4c19ce3b..00000000
--- a/vendor/babel/localedata/ln_CF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqML U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ln_CG.dat b/vendor/babel/localedata/ln_CG.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/ln_CG.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/lo.dat b/vendor/babel/localedata/lo.dat
deleted file mode 100644
index 561bad36..00000000
Binary files a/vendor/babel/localedata/lo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lo_LA.dat b/vendor/babel/localedata/lo_LA.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/lo_LA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/lt.dat b/vendor/babel/localedata/lt.dat
deleted file mode 100644
index c05b9188..00000000
Binary files a/vendor/babel/localedata/lt.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lt_LT.dat b/vendor/babel/localedata/lt_LT.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/lt_LT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lu.dat b/vendor/babel/localedata/lu.dat
deleted file mode 100644
index 5d495573..00000000
Binary files a/vendor/babel/localedata/lu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lu_CD.dat b/vendor/babel/localedata/lu_CD.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/lu_CD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/luo.dat b/vendor/babel/localedata/luo.dat
deleted file mode 100644
index 326e796e..00000000
Binary files a/vendor/babel/localedata/luo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/luo_KE.dat b/vendor/babel/localedata/luo_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/luo_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/luy.dat b/vendor/babel/localedata/luy.dat
deleted file mode 100644
index b9706a1f..00000000
Binary files a/vendor/babel/localedata/luy.dat and /dev/null differ
diff --git a/vendor/babel/localedata/luy_KE.dat b/vendor/babel/localedata/luy_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/luy_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/lv.dat b/vendor/babel/localedata/lv.dat
deleted file mode 100644
index a3f770d4..00000000
Binary files a/vendor/babel/localedata/lv.dat and /dev/null differ
diff --git a/vendor/babel/localedata/lv_LV.dat b/vendor/babel/localedata/lv_LV.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/lv_LV.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mas.dat b/vendor/babel/localedata/mas.dat
deleted file mode 100644
index 6f17d0de..00000000
Binary files a/vendor/babel/localedata/mas.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mas_KE.dat b/vendor/babel/localedata/mas_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/mas_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/mas_TZ.dat b/vendor/babel/localedata/mas_TZ.dat
deleted file mode 100644
index 5e753954..00000000
Binary files a/vendor/babel/localedata/mas_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mer.dat b/vendor/babel/localedata/mer.dat
deleted file mode 100644
index 265eac28..00000000
Binary files a/vendor/babel/localedata/mer.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mer_KE.dat b/vendor/babel/localedata/mer_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/mer_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/mfe.dat b/vendor/babel/localedata/mfe.dat
deleted file mode 100644
index e146820f..00000000
Binary files a/vendor/babel/localedata/mfe.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mfe_MU.dat b/vendor/babel/localedata/mfe_MU.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/mfe_MU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mg.dat b/vendor/babel/localedata/mg.dat
deleted file mode 100644
index bbab19f0..00000000
Binary files a/vendor/babel/localedata/mg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mg_MG.dat b/vendor/babel/localedata/mg_MG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/mg_MG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mgh.dat b/vendor/babel/localedata/mgh.dat
deleted file mode 100644
index 12987fc6..00000000
Binary files a/vendor/babel/localedata/mgh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mgh_MZ.dat b/vendor/babel/localedata/mgh_MZ.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/mgh_MZ.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/mgo.dat b/vendor/babel/localedata/mgo.dat
deleted file mode 100644
index c90ac45f..00000000
Binary files a/vendor/babel/localedata/mgo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mgo_CM.dat b/vendor/babel/localedata/mgo_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/mgo_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mk.dat b/vendor/babel/localedata/mk.dat
deleted file mode 100644
index 098b2262..00000000
Binary files a/vendor/babel/localedata/mk.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mk_MK.dat b/vendor/babel/localedata/mk_MK.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/mk_MK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ml.dat b/vendor/babel/localedata/ml.dat
deleted file mode 100644
index df293ad9..00000000
Binary files a/vendor/babel/localedata/ml.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ml_IN.dat b/vendor/babel/localedata/ml_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/ml_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/mn.dat b/vendor/babel/localedata/mn.dat
deleted file mode 100644
index 8b3efac6..00000000
Binary files a/vendor/babel/localedata/mn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mn_Cyrl.dat b/vendor/babel/localedata/mn_Cyrl.dat
deleted file mode 100644
index 27760a1c..00000000
Binary files a/vendor/babel/localedata/mn_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mn_Cyrl_MN.dat b/vendor/babel/localedata/mn_Cyrl_MN.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/mn_Cyrl_MN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mr.dat b/vendor/babel/localedata/mr.dat
deleted file mode 100644
index 29dde4e7..00000000
Binary files a/vendor/babel/localedata/mr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mr_IN.dat b/vendor/babel/localedata/mr_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/mr_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ms.dat b/vendor/babel/localedata/ms.dat
deleted file mode 100644
index a6974ea4..00000000
Binary files a/vendor/babel/localedata/ms.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ms_Latn.dat b/vendor/babel/localedata/ms_Latn.dat
deleted file mode 100644
index 1ba8202e..00000000
Binary files a/vendor/babel/localedata/ms_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ms_Latn_BN.dat b/vendor/babel/localedata/ms_Latn_BN.dat
deleted file mode 100644
index d76b0c96..00000000
Binary files a/vendor/babel/localedata/ms_Latn_BN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ms_Latn_MY.dat b/vendor/babel/localedata/ms_Latn_MY.dat
deleted file mode 100644
index 50808663..00000000
Binary files a/vendor/babel/localedata/ms_Latn_MY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ms_Latn_SG.dat b/vendor/babel/localedata/ms_Latn_SG.dat
deleted file mode 100644
index 5120c305..00000000
Binary files a/vendor/babel/localedata/ms_Latn_SG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mt.dat b/vendor/babel/localedata/mt.dat
deleted file mode 100644
index cbf2feb1..00000000
Binary files a/vendor/babel/localedata/mt.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mt_MT.dat b/vendor/babel/localedata/mt_MT.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/mt_MT.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/mua.dat b/vendor/babel/localedata/mua.dat
deleted file mode 100644
index dd4881c8..00000000
Binary files a/vendor/babel/localedata/mua.dat and /dev/null differ
diff --git a/vendor/babel/localedata/mua_CM.dat b/vendor/babel/localedata/mua_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/mua_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/my.dat b/vendor/babel/localedata/my.dat
deleted file mode 100644
index 6482e5ea..00000000
Binary files a/vendor/babel/localedata/my.dat and /dev/null differ
diff --git a/vendor/babel/localedata/my_MM.dat b/vendor/babel/localedata/my_MM.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/my_MM.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/naq.dat b/vendor/babel/localedata/naq.dat
deleted file mode 100644
index 87fc01f8..00000000
Binary files a/vendor/babel/localedata/naq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/naq_NA.dat b/vendor/babel/localedata/naq_NA.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/naq_NA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nb.dat b/vendor/babel/localedata/nb.dat
deleted file mode 100644
index aa34863b..00000000
Binary files a/vendor/babel/localedata/nb.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nb_NO.dat b/vendor/babel/localedata/nb_NO.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/nb_NO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nd.dat b/vendor/babel/localedata/nd.dat
deleted file mode 100644
index 231008ec..00000000
Binary files a/vendor/babel/localedata/nd.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nd_ZW.dat b/vendor/babel/localedata/nd_ZW.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/nd_ZW.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ne.dat b/vendor/babel/localedata/ne.dat
deleted file mode 100644
index d078fcf4..00000000
Binary files a/vendor/babel/localedata/ne.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ne_IN.dat b/vendor/babel/localedata/ne_IN.dat
deleted file mode 100644
index 8044567a..00000000
Binary files a/vendor/babel/localedata/ne_IN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ne_NP.dat b/vendor/babel/localedata/ne_NP.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/ne_NP.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/nl.dat b/vendor/babel/localedata/nl.dat
deleted file mode 100644
index ace2ad64..00000000
Binary files a/vendor/babel/localedata/nl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_AW.dat b/vendor/babel/localedata/nl_AW.dat
deleted file mode 100644
index 6f68c997..00000000
Binary files a/vendor/babel/localedata/nl_AW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_BE.dat b/vendor/babel/localedata/nl_BE.dat
deleted file mode 100644
index c722c78c..00000000
Binary files a/vendor/babel/localedata/nl_BE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_CW.dat b/vendor/babel/localedata/nl_CW.dat
deleted file mode 100644
index 11b34d92..00000000
Binary files a/vendor/babel/localedata/nl_CW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_NL.dat b/vendor/babel/localedata/nl_NL.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/nl_NL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_SR.dat b/vendor/babel/localedata/nl_SR.dat
deleted file mode 100644
index 91804fbf..00000000
Binary files a/vendor/babel/localedata/nl_SR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nl_SX.dat b/vendor/babel/localedata/nl_SX.dat
deleted file mode 100644
index 11b34d92..00000000
Binary files a/vendor/babel/localedata/nl_SX.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nmg.dat b/vendor/babel/localedata/nmg.dat
deleted file mode 100644
index 41987a1e..00000000
Binary files a/vendor/babel/localedata/nmg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nmg_CM.dat b/vendor/babel/localedata/nmg_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/nmg_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nn.dat b/vendor/babel/localedata/nn.dat
deleted file mode 100644
index c810a884..00000000
Binary files a/vendor/babel/localedata/nn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nn_NO.dat b/vendor/babel/localedata/nn_NO.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/nn_NO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nnh.dat b/vendor/babel/localedata/nnh.dat
deleted file mode 100644
index 28dbf242..00000000
Binary files a/vendor/babel/localedata/nnh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nnh_CM.dat b/vendor/babel/localedata/nnh_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/nnh_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nr.dat b/vendor/babel/localedata/nr.dat
deleted file mode 100644
index 019afc0a..00000000
Binary files a/vendor/babel/localedata/nr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nr_ZA.dat b/vendor/babel/localedata/nr_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/nr_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/nso.dat b/vendor/babel/localedata/nso.dat
deleted file mode 100644
index 0a37bd06..00000000
Binary files a/vendor/babel/localedata/nso.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nso_ZA.dat b/vendor/babel/localedata/nso_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/nso_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/nus.dat b/vendor/babel/localedata/nus.dat
deleted file mode 100644
index 3ad9c0cc..00000000
Binary files a/vendor/babel/localedata/nus.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nus_SD.dat b/vendor/babel/localedata/nus_SD.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/nus_SD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/nyn.dat b/vendor/babel/localedata/nyn.dat
deleted file mode 100644
index f13b314b..00000000
Binary files a/vendor/babel/localedata/nyn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/nyn_UG.dat b/vendor/babel/localedata/nyn_UG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/nyn_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/om.dat b/vendor/babel/localedata/om.dat
deleted file mode 100644
index 53213cfe..00000000
Binary files a/vendor/babel/localedata/om.dat and /dev/null differ
diff --git a/vendor/babel/localedata/om_ET.dat b/vendor/babel/localedata/om_ET.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/om_ET.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/om_KE.dat b/vendor/babel/localedata/om_KE.dat
deleted file mode 100644
index b126edd7..00000000
Binary files a/vendor/babel/localedata/om_KE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/or.dat b/vendor/babel/localedata/or.dat
deleted file mode 100644
index c01ab442..00000000
Binary files a/vendor/babel/localedata/or.dat and /dev/null differ
diff --git a/vendor/babel/localedata/or_IN.dat b/vendor/babel/localedata/or_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/or_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/os.dat b/vendor/babel/localedata/os.dat
deleted file mode 100644
index 0a01ac8b..00000000
Binary files a/vendor/babel/localedata/os.dat and /dev/null differ
diff --git a/vendor/babel/localedata/os_GE.dat b/vendor/babel/localedata/os_GE.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/os_GE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/os_RU.dat b/vendor/babel/localedata/os_RU.dat
deleted file mode 100644
index b1b0d843..00000000
Binary files a/vendor/babel/localedata/os_RU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pa.dat b/vendor/babel/localedata/pa.dat
deleted file mode 100644
index 100c3779..00000000
Binary files a/vendor/babel/localedata/pa.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pa_Arab.dat b/vendor/babel/localedata/pa_Arab.dat
deleted file mode 100644
index b32025cf..00000000
Binary files a/vendor/babel/localedata/pa_Arab.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pa_Arab_PK.dat b/vendor/babel/localedata/pa_Arab_PK.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/pa_Arab_PK.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/pa_Guru.dat b/vendor/babel/localedata/pa_Guru.dat
deleted file mode 100644
index 27760a1c..00000000
Binary files a/vendor/babel/localedata/pa_Guru.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pa_Guru_IN.dat b/vendor/babel/localedata/pa_Guru_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/pa_Guru_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/pl.dat b/vendor/babel/localedata/pl.dat
deleted file mode 100644
index 11abe814..00000000
Binary files a/vendor/babel/localedata/pl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pl_PL.dat b/vendor/babel/localedata/pl_PL.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/pl_PL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ps.dat b/vendor/babel/localedata/ps.dat
deleted file mode 100644
index 6521e4b3..00000000
Binary files a/vendor/babel/localedata/ps.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ps_AF.dat b/vendor/babel/localedata/ps_AF.dat
deleted file mode 100644
index 150c7e3b..00000000
--- a/vendor/babel/localedata/ps_AF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/pt.dat b/vendor/babel/localedata/pt.dat
deleted file mode 100644
index bf22a14e..00000000
Binary files a/vendor/babel/localedata/pt.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_AO.dat b/vendor/babel/localedata/pt_AO.dat
deleted file mode 100644
index cd4cd79d..00000000
Binary files a/vendor/babel/localedata/pt_AO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_BR.dat b/vendor/babel/localedata/pt_BR.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/pt_BR.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/pt_CV.dat b/vendor/babel/localedata/pt_CV.dat
deleted file mode 100644
index 98f10615..00000000
Binary files a/vendor/babel/localedata/pt_CV.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_GW.dat b/vendor/babel/localedata/pt_GW.dat
deleted file mode 100644
index 98f10615..00000000
Binary files a/vendor/babel/localedata/pt_GW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_MO.dat b/vendor/babel/localedata/pt_MO.dat
deleted file mode 100644
index d40c46f1..00000000
Binary files a/vendor/babel/localedata/pt_MO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_MZ.dat b/vendor/babel/localedata/pt_MZ.dat
deleted file mode 100644
index bfd25510..00000000
Binary files a/vendor/babel/localedata/pt_MZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_PT.dat b/vendor/babel/localedata/pt_PT.dat
deleted file mode 100644
index 203b692c..00000000
Binary files a/vendor/babel/localedata/pt_PT.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_ST.dat b/vendor/babel/localedata/pt_ST.dat
deleted file mode 100644
index 30882bde..00000000
Binary files a/vendor/babel/localedata/pt_ST.dat and /dev/null differ
diff --git a/vendor/babel/localedata/pt_TL.dat b/vendor/babel/localedata/pt_TL.dat
deleted file mode 100644
index 6b5a0f9f..00000000
Binary files a/vendor/babel/localedata/pt_TL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rm.dat b/vendor/babel/localedata/rm.dat
deleted file mode 100644
index c03c5aed..00000000
Binary files a/vendor/babel/localedata/rm.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rm_CH.dat b/vendor/babel/localedata/rm_CH.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/rm_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rn.dat b/vendor/babel/localedata/rn.dat
deleted file mode 100644
index 50efb2e9..00000000
Binary files a/vendor/babel/localedata/rn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rn_BI.dat b/vendor/babel/localedata/rn_BI.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/rn_BI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ro.dat b/vendor/babel/localedata/ro.dat
deleted file mode 100644
index 18ee70fa..00000000
Binary files a/vendor/babel/localedata/ro.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ro_MD.dat b/vendor/babel/localedata/ro_MD.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ro_MD.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ro_RO.dat b/vendor/babel/localedata/ro_RO.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ro_RO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rof.dat b/vendor/babel/localedata/rof.dat
deleted file mode 100644
index 28f38de9..00000000
Binary files a/vendor/babel/localedata/rof.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rof_TZ.dat b/vendor/babel/localedata/rof_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/rof_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/root.dat b/vendor/babel/localedata/root.dat
deleted file mode 100644
index 80ab0eb7..00000000
Binary files a/vendor/babel/localedata/root.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru.dat b/vendor/babel/localedata/ru.dat
deleted file mode 100644
index fc116df8..00000000
Binary files a/vendor/babel/localedata/ru.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_BY.dat b/vendor/babel/localedata/ru_BY.dat
deleted file mode 100644
index 640cb796..00000000
Binary files a/vendor/babel/localedata/ru_BY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_KG.dat b/vendor/babel/localedata/ru_KG.dat
deleted file mode 100644
index 87f33896..00000000
Binary files a/vendor/babel/localedata/ru_KG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_KZ.dat b/vendor/babel/localedata/ru_KZ.dat
deleted file mode 100644
index 62d0b246..00000000
Binary files a/vendor/babel/localedata/ru_KZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_MD.dat b/vendor/babel/localedata/ru_MD.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ru_MD.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_RU.dat b/vendor/babel/localedata/ru_RU.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/ru_RU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ru_UA.dat b/vendor/babel/localedata/ru_UA.dat
deleted file mode 100644
index c726ba81..00000000
Binary files a/vendor/babel/localedata/ru_UA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rw.dat b/vendor/babel/localedata/rw.dat
deleted file mode 100644
index 0403c67b..00000000
Binary files a/vendor/babel/localedata/rw.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rw_RW.dat b/vendor/babel/localedata/rw_RW.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/rw_RW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rwk.dat b/vendor/babel/localedata/rwk.dat
deleted file mode 100644
index d18d3144..00000000
Binary files a/vendor/babel/localedata/rwk.dat and /dev/null differ
diff --git a/vendor/babel/localedata/rwk_TZ.dat b/vendor/babel/localedata/rwk_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/rwk_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sah.dat b/vendor/babel/localedata/sah.dat
deleted file mode 100644
index 38fb037c..00000000
Binary files a/vendor/babel/localedata/sah.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sah_RU.dat b/vendor/babel/localedata/sah_RU.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sah_RU.dat and /dev/null differ
diff --git a/vendor/babel/localedata/saq.dat b/vendor/babel/localedata/saq.dat
deleted file mode 100644
index 858cb6a0..00000000
Binary files a/vendor/babel/localedata/saq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/saq_KE.dat b/vendor/babel/localedata/saq_KE.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/saq_KE.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/sbp.dat b/vendor/babel/localedata/sbp.dat
deleted file mode 100644
index 36f50811..00000000
Binary files a/vendor/babel/localedata/sbp.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sbp_TZ.dat b/vendor/babel/localedata/sbp_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/sbp_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/se.dat b/vendor/babel/localedata/se.dat
deleted file mode 100644
index 4093ad3e..00000000
Binary files a/vendor/babel/localedata/se.dat and /dev/null differ
diff --git a/vendor/babel/localedata/se_FI.dat b/vendor/babel/localedata/se_FI.dat
deleted file mode 100644
index 561ae0fd..00000000
Binary files a/vendor/babel/localedata/se_FI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/se_NO.dat b/vendor/babel/localedata/se_NO.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/se_NO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/seh.dat b/vendor/babel/localedata/seh.dat
deleted file mode 100644
index 63922010..00000000
Binary files a/vendor/babel/localedata/seh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/seh_MZ.dat b/vendor/babel/localedata/seh_MZ.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/seh_MZ.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ses.dat b/vendor/babel/localedata/ses.dat
deleted file mode 100644
index d537b3f8..00000000
Binary files a/vendor/babel/localedata/ses.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ses_ML.dat b/vendor/babel/localedata/ses_ML.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ses_ML.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sg.dat b/vendor/babel/localedata/sg.dat
deleted file mode 100644
index f7e398c8..00000000
Binary files a/vendor/babel/localedata/sg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sg_CF.dat b/vendor/babel/localedata/sg_CF.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/sg_CF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/shi.dat b/vendor/babel/localedata/shi.dat
deleted file mode 100644
index 8adbb59a..00000000
Binary files a/vendor/babel/localedata/shi.dat and /dev/null differ
diff --git a/vendor/babel/localedata/shi_Latn.dat b/vendor/babel/localedata/shi_Latn.dat
deleted file mode 100644
index 1cb6147c..00000000
Binary files a/vendor/babel/localedata/shi_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/shi_Latn_MA.dat b/vendor/babel/localedata/shi_Latn_MA.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/shi_Latn_MA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/shi_Tfng.dat b/vendor/babel/localedata/shi_Tfng.dat
deleted file mode 100644
index 21966f5f..00000000
Binary files a/vendor/babel/localedata/shi_Tfng.dat and /dev/null differ
diff --git a/vendor/babel/localedata/shi_Tfng_MA.dat b/vendor/babel/localedata/shi_Tfng_MA.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/shi_Tfng_MA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/si.dat b/vendor/babel/localedata/si.dat
deleted file mode 100644
index ecb30a76..00000000
Binary files a/vendor/babel/localedata/si.dat and /dev/null differ
diff --git a/vendor/babel/localedata/si_LK.dat b/vendor/babel/localedata/si_LK.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/si_LK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sk.dat b/vendor/babel/localedata/sk.dat
deleted file mode 100644
index 59fa86d2..00000000
Binary files a/vendor/babel/localedata/sk.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sk_SK.dat b/vendor/babel/localedata/sk_SK.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/sk_SK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sl.dat b/vendor/babel/localedata/sl.dat
deleted file mode 100644
index 7810cc35..00000000
Binary files a/vendor/babel/localedata/sl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sl_SI.dat b/vendor/babel/localedata/sl_SI.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sl_SI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sn.dat b/vendor/babel/localedata/sn.dat
deleted file mode 100644
index 29c97a36..00000000
Binary files a/vendor/babel/localedata/sn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sn_ZW.dat b/vendor/babel/localedata/sn_ZW.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/sn_ZW.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/so.dat b/vendor/babel/localedata/so.dat
deleted file mode 100644
index 7844a445..00000000
Binary files a/vendor/babel/localedata/so.dat and /dev/null differ
diff --git a/vendor/babel/localedata/so_DJ.dat b/vendor/babel/localedata/so_DJ.dat
deleted file mode 100644
index b0ee4421..00000000
Binary files a/vendor/babel/localedata/so_DJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/so_ET.dat b/vendor/babel/localedata/so_ET.dat
deleted file mode 100644
index b4322296..00000000
Binary files a/vendor/babel/localedata/so_ET.dat and /dev/null differ
diff --git a/vendor/babel/localedata/so_KE.dat b/vendor/babel/localedata/so_KE.dat
deleted file mode 100644
index b126edd7..00000000
Binary files a/vendor/babel/localedata/so_KE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/so_SO.dat b/vendor/babel/localedata/so_SO.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/so_SO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sq.dat b/vendor/babel/localedata/sq.dat
deleted file mode 100644
index a03fcf0a..00000000
Binary files a/vendor/babel/localedata/sq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sq_AL.dat b/vendor/babel/localedata/sq_AL.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sq_AL.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sq_MK.dat b/vendor/babel/localedata/sq_MK.dat
deleted file mode 100644
index 65bfa5c8..00000000
Binary files a/vendor/babel/localedata/sq_MK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sq_XK.dat b/vendor/babel/localedata/sq_XK.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sq_XK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr.dat b/vendor/babel/localedata/sr.dat
deleted file mode 100644
index ef9cd2cc..00000000
Binary files a/vendor/babel/localedata/sr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Cyrl.dat b/vendor/babel/localedata/sr_Cyrl.dat
deleted file mode 100644
index a882c5bc..00000000
Binary files a/vendor/babel/localedata/sr_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Cyrl_BA.dat b/vendor/babel/localedata/sr_Cyrl_BA.dat
deleted file mode 100644
index 8d9fa9f5..00000000
Binary files a/vendor/babel/localedata/sr_Cyrl_BA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Cyrl_ME.dat b/vendor/babel/localedata/sr_Cyrl_ME.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Cyrl_ME.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Cyrl_RS.dat b/vendor/babel/localedata/sr_Cyrl_RS.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Cyrl_RS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Cyrl_XK.dat b/vendor/babel/localedata/sr_Cyrl_XK.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Cyrl_XK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Latn.dat b/vendor/babel/localedata/sr_Latn.dat
deleted file mode 100644
index 57b44f1e..00000000
Binary files a/vendor/babel/localedata/sr_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Latn_BA.dat b/vendor/babel/localedata/sr_Latn_BA.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Latn_BA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Latn_ME.dat b/vendor/babel/localedata/sr_Latn_ME.dat
deleted file mode 100644
index b0f4d9b3..00000000
Binary files a/vendor/babel/localedata/sr_Latn_ME.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Latn_RS.dat b/vendor/babel/localedata/sr_Latn_RS.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Latn_RS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sr_Latn_XK.dat b/vendor/babel/localedata/sr_Latn_XK.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/sr_Latn_XK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ss.dat b/vendor/babel/localedata/ss.dat
deleted file mode 100644
index c7807243..00000000
Binary files a/vendor/babel/localedata/ss.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ss_SZ.dat b/vendor/babel/localedata/ss_SZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ss_SZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ss_ZA.dat b/vendor/babel/localedata/ss_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ss_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ssy.dat b/vendor/babel/localedata/ssy.dat
deleted file mode 100644
index 926fd85d..00000000
Binary files a/vendor/babel/localedata/ssy.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ssy_ER.dat b/vendor/babel/localedata/ssy_ER.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/ssy_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/st.dat b/vendor/babel/localedata/st.dat
deleted file mode 100644
index d19795e3..00000000
Binary files a/vendor/babel/localedata/st.dat and /dev/null differ
diff --git a/vendor/babel/localedata/st_LS.dat b/vendor/babel/localedata/st_LS.dat
deleted file mode 100644
index 348a1678..00000000
Binary files a/vendor/babel/localedata/st_LS.dat and /dev/null differ
diff --git a/vendor/babel/localedata/st_ZA.dat b/vendor/babel/localedata/st_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/st_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/sv.dat b/vendor/babel/localedata/sv.dat
deleted file mode 100644
index bce70f15..00000000
Binary files a/vendor/babel/localedata/sv.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sv_AX.dat b/vendor/babel/localedata/sv_AX.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/sv_AX.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sv_FI.dat b/vendor/babel/localedata/sv_FI.dat
deleted file mode 100644
index f42189dc..00000000
Binary files a/vendor/babel/localedata/sv_FI.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sv_SE.dat b/vendor/babel/localedata/sv_SE.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/sv_SE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sw.dat b/vendor/babel/localedata/sw.dat
deleted file mode 100644
index 6c525cad..00000000
Binary files a/vendor/babel/localedata/sw.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sw_KE.dat b/vendor/babel/localedata/sw_KE.dat
deleted file mode 100644
index 3c922118..00000000
Binary files a/vendor/babel/localedata/sw_KE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sw_TZ.dat b/vendor/babel/localedata/sw_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/sw_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/sw_UG.dat b/vendor/babel/localedata/sw_UG.dat
deleted file mode 100644
index 3b68eaa1..00000000
Binary files a/vendor/babel/localedata/sw_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/swc.dat b/vendor/babel/localedata/swc.dat
deleted file mode 100644
index 247ea257..00000000
Binary files a/vendor/babel/localedata/swc.dat and /dev/null differ
diff --git a/vendor/babel/localedata/swc_CD.dat b/vendor/babel/localedata/swc_CD.dat
deleted file mode 100644
index a7cee6f2..00000000
--- a/vendor/babel/localedata/swc_CD.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
Uzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}qUcurrency_namesq }q!U
unit_patternsq"}q#u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ta.dat b/vendor/babel/localedata/ta.dat
deleted file mode 100644
index 9115227a..00000000
Binary files a/vendor/babel/localedata/ta.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ta_IN.dat b/vendor/babel/localedata/ta_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/ta_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ta_LK.dat b/vendor/babel/localedata/ta_LK.dat
deleted file mode 100644
index 482cab29..00000000
Binary files a/vendor/babel/localedata/ta_LK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ta_MY.dat b/vendor/babel/localedata/ta_MY.dat
deleted file mode 100644
index d3980d49..00000000
Binary files a/vendor/babel/localedata/ta_MY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ta_SG.dat b/vendor/babel/localedata/ta_SG.dat
deleted file mode 100644
index d2b3c0c9..00000000
Binary files a/vendor/babel/localedata/ta_SG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/te.dat b/vendor/babel/localedata/te.dat
deleted file mode 100644
index 82dde54f..00000000
Binary files a/vendor/babel/localedata/te.dat and /dev/null differ
diff --git a/vendor/babel/localedata/te_IN.dat b/vendor/babel/localedata/te_IN.dat
deleted file mode 100644
index 1564619c..00000000
--- a/vendor/babel/localedata/te_IN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq }q!Ucurrency_namesq"}q#U
unit_patternsq$}q%u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/teo.dat b/vendor/babel/localedata/teo.dat
deleted file mode 100644
index 15490c3a..00000000
Binary files a/vendor/babel/localedata/teo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/teo_KE.dat b/vendor/babel/localedata/teo_KE.dat
deleted file mode 100644
index b126edd7..00000000
Binary files a/vendor/babel/localedata/teo_KE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/teo_UG.dat b/vendor/babel/localedata/teo_UG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/teo_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tg.dat b/vendor/babel/localedata/tg.dat
deleted file mode 100644
index 2ca7e3c8..00000000
Binary files a/vendor/babel/localedata/tg.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tg_Cyrl.dat b/vendor/babel/localedata/tg_Cyrl.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/tg_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tg_Cyrl_TJ.dat b/vendor/babel/localedata/tg_Cyrl_TJ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/tg_Cyrl_TJ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/th.dat b/vendor/babel/localedata/th.dat
deleted file mode 100644
index e052aa59..00000000
Binary files a/vendor/babel/localedata/th.dat and /dev/null differ
diff --git a/vendor/babel/localedata/th_TH.dat b/vendor/babel/localedata/th_TH.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/th_TH.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/ti.dat b/vendor/babel/localedata/ti.dat
deleted file mode 100644
index b5ce842b..00000000
Binary files a/vendor/babel/localedata/ti.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ti_ER.dat b/vendor/babel/localedata/ti_ER.dat
deleted file mode 100644
index 1e2f1e30..00000000
Binary files a/vendor/babel/localedata/ti_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ti_ET.dat b/vendor/babel/localedata/ti_ET.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ti_ET.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/tig.dat b/vendor/babel/localedata/tig.dat
deleted file mode 100644
index 8e82e8f6..00000000
Binary files a/vendor/babel/localedata/tig.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tig_ER.dat b/vendor/babel/localedata/tig_ER.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/tig_ER.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tn.dat b/vendor/babel/localedata/tn.dat
deleted file mode 100644
index d1a30428..00000000
Binary files a/vendor/babel/localedata/tn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tn_BW.dat b/vendor/babel/localedata/tn_BW.dat
deleted file mode 100644
index 325d2b09..00000000
Binary files a/vendor/babel/localedata/tn_BW.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tn_ZA.dat b/vendor/babel/localedata/tn_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/tn_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/to.dat b/vendor/babel/localedata/to.dat
deleted file mode 100644
index 80c43614..00000000
Binary files a/vendor/babel/localedata/to.dat and /dev/null differ
diff --git a/vendor/babel/localedata/to_TO.dat b/vendor/babel/localedata/to_TO.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/to_TO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tr.dat b/vendor/babel/localedata/tr.dat
deleted file mode 100644
index 292d0071..00000000
Binary files a/vendor/babel/localedata/tr.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tr_CY.dat b/vendor/babel/localedata/tr_CY.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/tr_CY.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tr_TR.dat b/vendor/babel/localedata/tr_TR.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/tr_TR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ts.dat b/vendor/babel/localedata/ts.dat
deleted file mode 100644
index c24c9e40..00000000
Binary files a/vendor/babel/localedata/ts.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ts_ZA.dat b/vendor/babel/localedata/ts_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ts_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/twq.dat b/vendor/babel/localedata/twq.dat
deleted file mode 100644
index f9c3773a..00000000
Binary files a/vendor/babel/localedata/twq.dat and /dev/null differ
diff --git a/vendor/babel/localedata/twq_NE.dat b/vendor/babel/localedata/twq_NE.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/twq_NE.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tzm.dat b/vendor/babel/localedata/tzm.dat
deleted file mode 100644
index 2543fb39..00000000
Binary files a/vendor/babel/localedata/tzm.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tzm_Latn.dat b/vendor/babel/localedata/tzm_Latn.dat
deleted file mode 100644
index 500194c5..00000000
Binary files a/vendor/babel/localedata/tzm_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/tzm_Latn_MA.dat b/vendor/babel/localedata/tzm_Latn_MA.dat
deleted file mode 100644
index 01c29af9..00000000
--- a/vendor/babel/localedata/tzm_Latn_MA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/uk.dat b/vendor/babel/localedata/uk.dat
deleted file mode 100644
index 2ce73b76..00000000
Binary files a/vendor/babel/localedata/uk.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uk_UA.dat b/vendor/babel/localedata/uk_UA.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/uk_UA.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ur.dat b/vendor/babel/localedata/ur.dat
deleted file mode 100644
index 325b5415..00000000
Binary files a/vendor/babel/localedata/ur.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ur_IN.dat b/vendor/babel/localedata/ur_IN.dat
deleted file mode 100644
index a8f52387..00000000
Binary files a/vendor/babel/localedata/ur_IN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ur_PK.dat b/vendor/babel/localedata/ur_PK.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/ur_PK.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/uz.dat b/vendor/babel/localedata/uz.dat
deleted file mode 100644
index 799049cf..00000000
Binary files a/vendor/babel/localedata/uz.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uz_Arab.dat b/vendor/babel/localedata/uz_Arab.dat
deleted file mode 100644
index 29426be7..00000000
Binary files a/vendor/babel/localedata/uz_Arab.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uz_Arab_AF.dat b/vendor/babel/localedata/uz_Arab_AF.dat
deleted file mode 100644
index 150c7e3b..00000000
--- a/vendor/babel/localedata/uz_Arab_AF.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(U
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}q Uvariantsq!}q"Ucurrency_namesq#}q$U
unit_patternsq%}q&u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/uz_Cyrl.dat b/vendor/babel/localedata/uz_Cyrl.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/uz_Cyrl.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uz_Cyrl_UZ.dat b/vendor/babel/localedata/uz_Cyrl_UZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/uz_Cyrl_UZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uz_Latn.dat b/vendor/babel/localedata/uz_Latn.dat
deleted file mode 100644
index febdc7c3..00000000
Binary files a/vendor/babel/localedata/uz_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/uz_Latn_UZ.dat b/vendor/babel/localedata/uz_Latn_UZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/uz_Latn_UZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vai.dat b/vendor/babel/localedata/vai.dat
deleted file mode 100644
index 8decb6fe..00000000
Binary files a/vendor/babel/localedata/vai.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vai_Latn.dat b/vendor/babel/localedata/vai_Latn.dat
deleted file mode 100644
index 8b6be240..00000000
Binary files a/vendor/babel/localedata/vai_Latn.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vai_Latn_LR.dat b/vendor/babel/localedata/vai_Latn_LR.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/vai_Latn_LR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vai_Vaii.dat b/vendor/babel/localedata/vai_Vaii.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/vai_Vaii.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vai_Vaii_LR.dat b/vendor/babel/localedata/vai_Vaii_LR.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/vai_Vaii_LR.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ve.dat b/vendor/babel/localedata/ve.dat
deleted file mode 100644
index a547fffa..00000000
Binary files a/vendor/babel/localedata/ve.dat and /dev/null differ
diff --git a/vendor/babel/localedata/ve_ZA.dat b/vendor/babel/localedata/ve_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/ve_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/vi.dat b/vendor/babel/localedata/vi.dat
deleted file mode 100644
index 2c1eb2d9..00000000
Binary files a/vendor/babel/localedata/vi.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vi_VN.dat b/vendor/babel/localedata/vi_VN.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/vi_VN.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vo.dat b/vendor/babel/localedata/vo.dat
deleted file mode 100644
index 979ea71e..00000000
Binary files a/vendor/babel/localedata/vo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vun.dat b/vendor/babel/localedata/vun.dat
deleted file mode 100644
index f023b138..00000000
Binary files a/vendor/babel/localedata/vun.dat and /dev/null differ
diff --git a/vendor/babel/localedata/vun_TZ.dat b/vendor/babel/localedata/vun_TZ.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/vun_TZ.dat and /dev/null differ
diff --git a/vendor/babel/localedata/wae.dat b/vendor/babel/localedata/wae.dat
deleted file mode 100644
index 98d0869e..00000000
Binary files a/vendor/babel/localedata/wae.dat and /dev/null differ
diff --git a/vendor/babel/localedata/wae_CH.dat b/vendor/babel/localedata/wae_CH.dat
deleted file mode 100644
index f981f107..00000000
Binary files a/vendor/babel/localedata/wae_CH.dat and /dev/null differ
diff --git a/vendor/babel/localedata/wal.dat b/vendor/babel/localedata/wal.dat
deleted file mode 100644
index 39a5a73b..00000000
Binary files a/vendor/babel/localedata/wal.dat and /dev/null differ
diff --git a/vendor/babel/localedata/wal_ET.dat b/vendor/babel/localedata/wal_ET.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/wal_ET.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/xh.dat b/vendor/babel/localedata/xh.dat
deleted file mode 100644
index 86f8bdc3..00000000
Binary files a/vendor/babel/localedata/xh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/xh_ZA.dat b/vendor/babel/localedata/xh_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/xh_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/xog.dat b/vendor/babel/localedata/xog.dat
deleted file mode 100644
index f660164e..00000000
Binary files a/vendor/babel/localedata/xog.dat and /dev/null differ
diff --git a/vendor/babel/localedata/xog_UG.dat b/vendor/babel/localedata/xog_UG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/xog_UG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/yav.dat b/vendor/babel/localedata/yav.dat
deleted file mode 100644
index 43d7148f..00000000
Binary files a/vendor/babel/localedata/yav.dat and /dev/null differ
diff --git a/vendor/babel/localedata/yav_CM.dat b/vendor/babel/localedata/yav_CM.dat
deleted file mode 100644
index 074603a4..00000000
Binary files a/vendor/babel/localedata/yav_CM.dat and /dev/null differ
diff --git a/vendor/babel/localedata/yo.dat b/vendor/babel/localedata/yo.dat
deleted file mode 100644
index 46120718..00000000
Binary files a/vendor/babel/localedata/yo.dat and /dev/null differ
diff --git a/vendor/babel/localedata/yo_NG.dat b/vendor/babel/localedata/yo_NG.dat
deleted file mode 100644
index 67b749dd..00000000
Binary files a/vendor/babel/localedata/yo_NG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh.dat b/vendor/babel/localedata/zh.dat
deleted file mode 100644
index cb916a89..00000000
Binary files a/vendor/babel/localedata/zh.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hans.dat b/vendor/babel/localedata/zh_Hans.dat
deleted file mode 100644
index 980ab6b6..00000000
Binary files a/vendor/babel/localedata/zh_Hans.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hans_CN.dat b/vendor/babel/localedata/zh_Hans_CN.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/zh_Hans_CN.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/zh_Hans_HK.dat b/vendor/babel/localedata/zh_Hans_HK.dat
deleted file mode 100644
index 3d1a8484..00000000
Binary files a/vendor/babel/localedata/zh_Hans_HK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hans_MO.dat b/vendor/babel/localedata/zh_Hans_MO.dat
deleted file mode 100644
index 7caa1604..00000000
Binary files a/vendor/babel/localedata/zh_Hans_MO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hans_SG.dat b/vendor/babel/localedata/zh_Hans_SG.dat
deleted file mode 100644
index 7c57b7bf..00000000
Binary files a/vendor/babel/localedata/zh_Hans_SG.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hant.dat b/vendor/babel/localedata/zh_Hant.dat
deleted file mode 100644
index 6e093dd2..00000000
Binary files a/vendor/babel/localedata/zh_Hant.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hant_HK.dat b/vendor/babel/localedata/zh_Hant_HK.dat
deleted file mode 100644
index f5a59a1e..00000000
Binary files a/vendor/babel/localedata/zh_Hant_HK.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hant_MO.dat b/vendor/babel/localedata/zh_Hant_MO.dat
deleted file mode 100644
index 7ce4ddc0..00000000
Binary files a/vendor/babel/localedata/zh_Hant_MO.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zh_Hant_TW.dat b/vendor/babel/localedata/zh_Hant_TW.dat
deleted file mode 100644
index 81c89254..00000000
--- a/vendor/babel/localedata/zh_Hant_TW.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
U first_dayqKsUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq}qUvariantsq}q Ucurrency_namesq!}q"U
unit_patternsq#}q$u.
\ No newline at end of file
diff --git a/vendor/babel/localedata/zu.dat b/vendor/babel/localedata/zu.dat
deleted file mode 100644
index 99b984e8..00000000
Binary files a/vendor/babel/localedata/zu.dat and /dev/null differ
diff --git a/vendor/babel/localedata/zu_ZA.dat b/vendor/babel/localedata/zu_ZA.dat
deleted file mode 100644
index 35690913..00000000
--- a/vendor/babel/localedata/zu_ZA.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-€}q(Ucurrency_symbolsq}qUscientific_formatsq}qUpercent_formatsq}qUnumber_symbolsq}q Ucurrency_names_pluralq
-}qU week_dataq}q
(Umin_daysqKU
weekend_startqKU first_dayqKUweekend_endqKuUzone_formatsq}qUcurrency_formatsq}qU_versionqM5 U languagesq}qUterritoriesq}U
-time_zonesq}qUscriptsq}qUdecimal_formatsq}qU
-meta_zonesq }q!Uvariantsq"}q#Ucurrency_namesq$}q%U
unit_patternsq&}q'u.
\ No newline at end of file
diff --git a/vendor/babel/localtime/__init__.py b/vendor/babel/localtime/__init__.py
deleted file mode 100644
index cdb3e9b5..00000000
--- a/vendor/babel/localtime/__init__.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.localtime
- ~~~~~~~~~~~~~~~
-
- Babel specific fork of tzlocal to determine the local timezone
- of the system.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-import sys
-import pytz
-import time
-from datetime import timedelta, datetime
-from datetime import tzinfo
-from threading import RLock
-
-if sys.platform == 'win32':
- from babel.localtime._win32 import _get_localzone
-else:
- from babel.localtime._unix import _get_localzone
-
-
-_cached_tz = None
-_cache_lock = RLock()
-
-STDOFFSET = timedelta(seconds = -time.timezone)
-if time.daylight:
- DSTOFFSET = timedelta(seconds = -time.altzone)
-else:
- DSTOFFSET = STDOFFSET
-
-DSTDIFF = DSTOFFSET - STDOFFSET
-ZERO = timedelta(0)
-
-
-class _FallbackLocalTimezone(tzinfo):
-
- def utcoffset(self, dt):
- if self._isdst(dt):
- return DSTOFFSET
- else:
- return STDOFFSET
-
- def dst(self, dt):
- if self._isdst(dt):
- return DSTDIFF
- else:
- return ZERO
-
- def tzname(self, dt):
- return time.tzname[self._isdst(dt)]
-
- def _isdst(self, dt):
- tt = (dt.year, dt.month, dt.day,
- dt.hour, dt.minute, dt.second,
- dt.weekday(), 0, -1)
- stamp = time.mktime(tt)
- tt = time.localtime(stamp)
- return tt.tm_isdst > 0
-
-
-def get_localzone():
- """Returns the current underlying local timezone object.
- Generally this function does not need to be used, it's a
- better idea to use the :data:`LOCALTZ` singleton instead.
- """
- return _get_localzone()
-
-
-try:
- LOCALTZ = get_localzone()
-except pytz.UnknownTimeZoneError:
- LOCALTZ = _FallbackLocalTimezone()
diff --git a/vendor/babel/localtime/_unix.py b/vendor/babel/localtime/_unix.py
deleted file mode 100644
index b4a3b599..00000000
--- a/vendor/babel/localtime/_unix.py
+++ /dev/null
@@ -1,137 +0,0 @@
-from __future__ import with_statement
-import os
-import re
-import sys
-import pytz
-import subprocess
-
-_systemconfig_tz = re.compile(r'^Time Zone: (.*)$(?m)')
-
-
-def _tz_from_env(tzenv):
- if tzenv[0] == ':':
- tzenv = tzenv[1:]
-
- # TZ specifies a file
- if os.path.exists(tzenv):
- with open(tzenv, 'rb') as tzfile:
- return pytz.tzfile.build_tzinfo('local', tzfile)
-
- # TZ specifies a zoneinfo zone.
- try:
- tz = pytz.timezone(tzenv)
- # That worked, so we return this:
- return tz
- except pytz.UnknownTimeZoneError:
- raise pytz.UnknownTimeZoneError(
- "tzlocal() does not support non-zoneinfo timezones like %s. \n"
- "Please use a timezone in the form of Continent/City")
-
-def _get_localzone(_root='/'):
- """Tries to find the local timezone configuration.
- This method prefers finding the timezone name and passing that to pytz,
- over passing in the localtime file, as in the later case the zoneinfo
- name is unknown.
- The parameter _root makes the function look for files like /etc/localtime
- beneath the _root directory. This is primarily used by the tests.
- In normal usage you call the function without parameters.
- """
-
- tzenv = os.environ.get('TZ')
- if tzenv:
- return _tz_from_env(tzenv)
-
- # This is actually a pretty reliable way to test for the local time
- # zone on operating systems like OS X. On OS X especially this is the
- # only one that actually works.
- try:
- link_dst = os.readlink('/etc/localtime')
- except OSError:
- pass
- else:
- pos = link_dst.find('/zoneinfo/')
- if pos >= 0:
- zone_name = link_dst[pos + 10:]
- try:
- return pytz.timezone(zone_name)
- except pytz.UnknownTimeZoneError:
- pass
-
- # If we are on OS X now we are pretty sure that the rest of the
- # code will fail and just fall through until it hits the reading
- # of /etc/localtime and using it without name. At this point we
- # can invoke systemconfig which internally invokes ICU. ICU itself
- # does the same thing we do (readlink + compare file contents) but
- # since it knows where the zone files are that should be a bit
- # better than reimplementing the logic here.
- if sys.platform == 'darwin':
- c = subprocess.Popen(['systemsetup', '-gettimezone'],
- stdout=subprocess.PIPE)
- sys_result = c.communicate()[0]
- c.wait()
- tz_match = _systemconfig_tz.search(sys_result)
- if tz_match is not None:
- zone_name = tz_match.group(1)
- try:
- return pytz.timezone(zone_name)
- except pytz.UnknownTimeZoneError:
- pass
-
- # Now look for distribution specific configuration files
- # that contain the timezone name.
- tzpath = os.path.join(_root, 'etc/timezone')
- if os.path.exists(tzpath):
- with open(tzpath, 'rb') as tzfile:
- data = tzfile.read()
-
- # Issue #3 in tzlocal was that /etc/timezone was a zoneinfo file.
- # That's a misconfiguration, but we need to handle it gracefully:
- if data[:5] != 'TZif2':
- etctz = data.strip().decode()
- # Get rid of host definitions and comments:
- if ' ' in etctz:
- etctz, dummy = etctz.split(' ', 1)
- if '#' in etctz:
- etctz, dummy = etctz.split('#', 1)
- return pytz.timezone(etctz.replace(' ', '_'))
-
- # CentOS has a ZONE setting in /etc/sysconfig/clock,
- # OpenSUSE has a TIMEZONE setting in /etc/sysconfig/clock and
- # Gentoo has a TIMEZONE setting in /etc/conf.d/clock
- # We look through these files for a timezone:
- zone_re = re.compile('\s*ZONE\s*=\s*\"')
- timezone_re = re.compile('\s*TIMEZONE\s*=\s*\"')
- end_re = re.compile('\"')
-
- for filename in ('etc/sysconfig/clock', 'etc/conf.d/clock'):
- tzpath = os.path.join(_root, filename)
- if not os.path.exists(tzpath):
- continue
- with open(tzpath, 'rt') as tzfile:
- data = tzfile.readlines()
-
- for line in data:
- # Look for the ZONE= setting.
- match = zone_re.match(line)
- if match is None:
- # No ZONE= setting. Look for the TIMEZONE= setting.
- match = timezone_re.match(line)
- if match is not None:
- # Some setting existed
- line = line[match.end():]
- etctz = line[:end_re.search(line).start()]
-
- # We found a timezone
- return pytz.timezone(etctz.replace(' ', '_'))
-
- # No explicit setting existed. Use localtime
- for filename in ('etc/localtime', 'usr/local/etc/localtime'):
- tzpath = os.path.join(_root, filename)
-
- if not os.path.exists(tzpath):
- continue
-
- with open(tzpath, 'rb') as tzfile:
- return pytz.tzfile.build_tzinfo('local', tzfile)
-
- raise pytz.UnknownTimeZoneError('Can not find any timezone configuration')
diff --git a/vendor/babel/localtime/_win32.py b/vendor/babel/localtime/_win32.py
deleted file mode 100644
index 1f6ecc7c..00000000
--- a/vendor/babel/localtime/_win32.py
+++ /dev/null
@@ -1,89 +0,0 @@
-try:
- import _winreg as winreg
-except ImportError:
- try:
- import winreg
- except ImportError:
- winreg = None
-
-from babel.core import get_global
-import pytz
-
-
-tz_names = get_global('windows_zone_mapping')
-
-
-def valuestodict(key):
- """Convert a registry key's values to a dictionary."""
- dict = {}
- size = winreg.QueryInfoKey(key)[1]
- for i in range(size):
- data = winreg.EnumValue(key, i)
- dict[data[0]] = data[1]
- return dict
-
-
-def get_localzone_name():
- # Windows is special. It has unique time zone names (in several
- # meanings of the word) available, but unfortunately, they can be
- # translated to the language of the operating system, so we need to
- # do a backwards lookup, by going through all time zones and see which
- # one matches.
- handle = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
-
- TZLOCALKEYNAME = r'SYSTEM\CurrentControlSet\Control\TimeZoneInformation'
- localtz = winreg.OpenKey(handle, TZLOCALKEYNAME)
- keyvalues = valuestodict(localtz)
- localtz.Close()
- if 'TimeZoneKeyName' in keyvalues:
- # Windows 7 (and Vista?)
-
- # For some reason this returns a string with loads of NUL bytes at
- # least on some systems. I don't know if this is a bug somewhere, I
- # just work around it.
- tzkeyname = keyvalues['TimeZoneKeyName'].split('\x00', 1)[0]
- else:
- # Windows 2000 or XP
-
- # This is the localized name:
- tzwin = keyvalues['StandardName']
-
- # Open the list of timezones to look up the real name:
- TZKEYNAME = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones'
- tzkey = winreg.OpenKey(handle, TZKEYNAME)
-
- # Now, match this value to Time Zone information
- tzkeyname = None
- for i in range(winreg.QueryInfoKey(tzkey)[0]):
- subkey = winreg.EnumKey(tzkey, i)
- sub = winreg.OpenKey(tzkey, subkey)
- data = valuestodict(sub)
- sub.Close()
- if data['Std'] == tzwin:
- tzkeyname = subkey
- break
-
- tzkey.Close()
- handle.Close()
-
- if tzkeyname is None:
- raise LookupError('Can not find Windows timezone configuration')
-
- timezone = tz_names.get(tzkeyname)
- if timezone is None:
- # Nope, that didn't work. Try adding 'Standard Time',
- # it seems to work a lot of times:
- timezone = tz_names.get(tzkeyname + ' Standard Time')
-
- # Return what we have.
- if timezone is None:
- raise pytz.UnknownTimeZoneError('Can not find timezone ' + tzkeyname)
-
- return timezone
-
-
-def _get_localzone():
- if winreg is None:
- raise pytz.UnknownTimeZoneError(
- 'Runtime support not available')
- return pytz.timezone(get_localzone_name())
diff --git a/vendor/babel/messages/__init__.py b/vendor/babel/messages/__init__.py
deleted file mode 100644
index 1b63bae2..00000000
--- a/vendor/babel/messages/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages
- ~~~~~~~~~~~~~~
-
- Support for ``gettext`` message catalogs.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-from babel.messages.catalog import *
diff --git a/vendor/babel/messages/catalog.py b/vendor/babel/messages/catalog.py
deleted file mode 100644
index 501763b5..00000000
--- a/vendor/babel/messages/catalog.py
+++ /dev/null
@@ -1,831 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages.catalog
- ~~~~~~~~~~~~~~~~~~~~~~
-
- Data structures for message catalogs.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-import re
-import time
-
-from cgi import parse_header
-from datetime import datetime, time as time_
-from difflib import get_close_matches
-from email import message_from_string
-from copy import copy
-
-from babel import __version__ as VERSION
-from babel.core import Locale
-from babel.dates import format_datetime
-from babel.messages.plurals import get_plural
-from babel.util import odict, distinct, LOCALTZ, FixedOffsetTimezone
-from babel._compat import string_types, number_types, PY2, cmp
-
-__all__ = ['Message', 'Catalog', 'TranslationError']
-
-
-PYTHON_FORMAT = re.compile(r'''(?x)
- \%
- (?:\(([\w]*)\))?
- (
- [-#0\ +]?(?:\*|[\d]+)?
- (?:\.(?:\*|[\d]+))?
- [hlL]?
- )
- ([diouxXeEfFgGcrs%])
-''')
-
-
-class Message(object):
- """Representation of a single message in a catalog."""
-
- def __init__(self, id, string=u'', locations=(), flags=(), auto_comments=(),
- user_comments=(), previous_id=(), lineno=None, context=None):
- """Create the message object.
-
- :param id: the message ID, or a ``(singular, plural)`` tuple for
- pluralizable messages
- :param string: the translated message string, or a
- ``(singular, plural)`` tuple for pluralizable messages
- :param locations: a sequence of ``(filenname, lineno)`` tuples
- :param flags: a set or sequence of flags
- :param auto_comments: a sequence of automatic comments for the message
- :param user_comments: a sequence of user comments for the message
- :param previous_id: the previous message ID, or a ``(singular, plural)``
- tuple for pluralizable messages
- :param lineno: the line number on which the msgid line was found in the
- PO file, if any
- :param context: the message context
- """
- self.id = id #: The message ID
- if not string and self.pluralizable:
- string = (u'', u'')
- self.string = string #: The message translation
- self.locations = list(distinct(locations))
- self.flags = set(flags)
- if id and self.python_format:
- self.flags.add('python-format')
- else:
- self.flags.discard('python-format')
- self.auto_comments = list(distinct(auto_comments))
- self.user_comments = list(distinct(user_comments))
- if isinstance(previous_id, string_types):
- self.previous_id = [previous_id]
- else:
- self.previous_id = list(previous_id)
- self.lineno = lineno
- self.context = context
-
- def __repr__(self):
- return '<%s %r (flags: %r)>' % (type(self).__name__, self.id,
- list(self.flags))
-
- def __cmp__(self, obj):
- """Compare Messages, taking into account plural ids"""
- def values_to_compare():
- if isinstance(obj, Message):
- plural = self.pluralizable
- obj_plural = obj.pluralizable
- if plural and obj_plural:
- return self.id[0], obj.id[0]
- elif plural:
- return self.id[0], obj.id
- elif obj_plural:
- return self.id, obj.id[0]
- return self.id, obj.id
- this, other = values_to_compare()
- return cmp(this, other)
-
- def __gt__(self, other):
- return self.__cmp__(other) > 0
-
- def __lt__(self, other):
- return self.__cmp__(other) < 0
-
- def __ge__(self, other):
- return self.__cmp__(other) >= 0
-
- def __le__(self, other):
- return self.__cmp__(other) <= 0
-
- def __eq__(self, other):
- return self.__cmp__(other) == 0
-
- def __ne__(self, other):
- return self.__cmp__(other) != 0
-
- def clone(self):
- return Message(*map(copy, (self.id, self.string, self.locations,
- self.flags, self.auto_comments,
- self.user_comments, self.previous_id,
- self.lineno, self.context)))
-
- def check(self, catalog=None):
- """Run various validation checks on the message. Some validations
- are only performed if the catalog is provided. This method returns
- a sequence of `TranslationError` objects.
-
- :rtype: ``iterator``
- :param catalog: A catalog instance that is passed to the checkers
- :see: `Catalog.check` for a way to perform checks for all messages
- in a catalog.
- """
- from babel.messages.checkers import checkers
- errors = []
- for checker in checkers:
- try:
- checker(catalog, self)
- except TranslationError as e:
- errors.append(e)
- return errors
-
- @property
- def fuzzy(self):
- """Whether the translation is fuzzy.
-
- >>> Message('foo').fuzzy
- False
- >>> msg = Message('foo', 'foo', flags=['fuzzy'])
- >>> msg.fuzzy
- True
- >>> msg
-
-
- :type: `bool`"""
- return 'fuzzy' in self.flags
-
- @property
- def pluralizable(self):
- """Whether the message is plurizable.
-
- >>> Message('foo').pluralizable
- False
- >>> Message(('foo', 'bar')).pluralizable
- True
-
- :type: `bool`"""
- return isinstance(self.id, (list, tuple))
-
- @property
- def python_format(self):
- """Whether the message contains Python-style parameters.
-
- >>> Message('foo %(name)s bar').python_format
- True
- >>> Message(('foo %(name)s', 'foo %(name)s')).python_format
- True
-
- :type: `bool`"""
- ids = self.id
- if not isinstance(ids, (list, tuple)):
- ids = [ids]
- return any(PYTHON_FORMAT.search(id) for id in ids)
-
-
-class TranslationError(Exception):
- """Exception thrown by translation checkers when invalid message
- translations are encountered."""
-
-
-DEFAULT_HEADER = u"""\
-# Translations template for PROJECT.
-# Copyright (C) YEAR ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR , YEAR.
-#"""
-
-
-if PY2:
- def _parse_header(header_string):
- # message_from_string only works for str, not for unicode
- headers = message_from_string(header_string.encode('utf8'))
- decoded_headers = {}
- for name, value in headers.items():
- name = name.decode('utf8')
- value = value.decode('utf8')
- decoded_headers[name] = value
- return decoded_headers
-
-else:
- _parse_header = message_from_string
-
-
-class Catalog(object):
- """Representation of a message catalog."""
-
- def __init__(self, locale=None, domain=None, header_comment=DEFAULT_HEADER,
- project=None, version=None, copyright_holder=None,
- msgid_bugs_address=None, creation_date=None,
- revision_date=None, last_translator=None, language_team=None,
- charset=None, fuzzy=True):
- """Initialize the catalog object.
-
- :param locale: the locale identifier or `Locale` object, or `None`
- if the catalog is not bound to a locale (which basically
- means it's a template)
- :param domain: the message domain
- :param header_comment: the header comment as string, or `None` for the
- default header
- :param project: the project's name
- :param version: the project's version
- :param copyright_holder: the copyright holder of the catalog
- :param msgid_bugs_address: the email address or URL to submit bug
- reports to
- :param creation_date: the date the catalog was created
- :param revision_date: the date the catalog was revised
- :param last_translator: the name and email of the last translator
- :param language_team: the name and email of the language team
- :param charset: the encoding to use in the output (defaults to utf-8)
- :param fuzzy: the fuzzy bit on the catalog header
- """
- self.domain = domain #: The message domain
- if locale:
- locale = Locale.parse(locale)
- self.locale = locale #: The locale or `None`
- self._header_comment = header_comment
- self._messages = odict()
-
- self.project = project or 'PROJECT' #: The project name
- self.version = version or 'VERSION' #: The project version
- self.copyright_holder = copyright_holder or 'ORGANIZATION'
- self.msgid_bugs_address = msgid_bugs_address or 'EMAIL@ADDRESS'
-
- self.last_translator = last_translator or 'FULL NAME '
- """Name and email address of the last translator."""
- self.language_team = language_team or 'LANGUAGE '
- """Name and email address of the language team."""
-
- self.charset = charset or 'utf-8'
-
- if creation_date is None:
- creation_date = datetime.now(LOCALTZ)
- elif isinstance(creation_date, datetime) and not creation_date.tzinfo:
- creation_date = creation_date.replace(tzinfo=LOCALTZ)
- self.creation_date = creation_date #: Creation date of the template
- if revision_date is None:
- revision_date = 'YEAR-MO-DA HO:MI+ZONE'
- elif isinstance(revision_date, datetime) and not revision_date.tzinfo:
- revision_date = revision_date.replace(tzinfo=LOCALTZ)
- self.revision_date = revision_date #: Last revision date of the catalog
- self.fuzzy = fuzzy #: Catalog header fuzzy bit (`True` or `False`)
-
- self.obsolete = odict() #: Dictionary of obsolete messages
- self._num_plurals = None
- self._plural_expr = None
-
- def _get_header_comment(self):
- comment = self._header_comment
- year = datetime.now(LOCALTZ).strftime('%Y')
- if hasattr(self.revision_date, 'strftime'):
- year = self.revision_date.strftime('%Y')
- comment = comment.replace('PROJECT', self.project) \
- .replace('VERSION', self.version) \
- .replace('YEAR', year) \
- .replace('ORGANIZATION', self.copyright_holder)
- if self.locale:
- comment = comment.replace('Translations template', '%s translations'
- % self.locale.english_name)
- return comment
-
- def _set_header_comment(self, string):
- self._header_comment = string
-
- header_comment = property(_get_header_comment, _set_header_comment, doc="""\
- The header comment for the catalog.
-
- >>> catalog = Catalog(project='Foobar', version='1.0',
- ... copyright_holder='Foo Company')
- >>> print catalog.header_comment #doctest: +ELLIPSIS
- # Translations template for Foobar.
- # Copyright (C) ... Foo Company
- # This file is distributed under the same license as the Foobar project.
- # FIRST AUTHOR , ....
- #
-
- The header can also be set from a string. Any known upper-case variables
- will be replaced when the header is retrieved again:
-
- >>> catalog = Catalog(project='Foobar', version='1.0',
- ... copyright_holder='Foo Company')
- >>> catalog.header_comment = '''\\
- ... # The POT for my really cool PROJECT project.
- ... # Copyright (C) 1990-2003 ORGANIZATION
- ... # This file is distributed under the same license as the PROJECT
- ... # project.
- ... #'''
- >>> print catalog.header_comment
- # The POT for my really cool Foobar project.
- # Copyright (C) 1990-2003 Foo Company
- # This file is distributed under the same license as the Foobar
- # project.
- #
-
- :type: `unicode`
- """)
-
- def _get_mime_headers(self):
- headers = []
- headers.append(('Project-Id-Version',
- '%s %s' % (self.project, self.version)))
- headers.append(('Report-Msgid-Bugs-To', self.msgid_bugs_address))
- headers.append(('POT-Creation-Date',
- format_datetime(self.creation_date, 'yyyy-MM-dd HH:mmZ',
- locale='en')))
- if isinstance(self.revision_date, (datetime, time_) + number_types):
- headers.append(('PO-Revision-Date',
- format_datetime(self.revision_date,
- 'yyyy-MM-dd HH:mmZ', locale='en')))
- else:
- headers.append(('PO-Revision-Date', self.revision_date))
- headers.append(('Last-Translator', self.last_translator))
- if (self.locale is not None) and ('LANGUAGE' in self.language_team):
- headers.append(('Language-Team',
- self.language_team.replace('LANGUAGE',
- str(self.locale))))
- else:
- headers.append(('Language-Team', self.language_team))
- if self.locale is not None:
- headers.append(('Plural-Forms', self.plural_forms))
- headers.append(('MIME-Version', '1.0'))
- headers.append(('Content-Type',
- 'text/plain; charset=%s' % self.charset))
- headers.append(('Content-Transfer-Encoding', '8bit'))
- headers.append(('Generated-By', 'Babel %s\n' % VERSION))
- return headers
-
- def _set_mime_headers(self, headers):
- for name, value in headers:
- name = name.lower()
- if name == 'project-id-version':
- parts = value.split(' ')
- self.project = u' '.join(parts[:-1])
- self.version = parts[-1]
- elif name == 'report-msgid-bugs-to':
- self.msgid_bugs_address = value
- elif name == 'last-translator':
- self.last_translator = value
- elif name == 'language-team':
- self.language_team = value
- elif name == 'content-type':
- mimetype, params = parse_header(value)
- if 'charset' in params:
- self.charset = params['charset'].lower()
- elif name == 'plural-forms':
- _, params = parse_header(' ;' + value)
- self._num_plurals = int(params.get('nplurals', 2))
- self._plural_expr = params.get('plural', '(n != 1)')
- elif name == 'pot-creation-date':
- # FIXME: this should use dates.parse_datetime as soon as that
- # is ready
- value, tzoffset, _ = re.split('([+-]\d{4})$', value, 1)
-
- tt = time.strptime(value, '%Y-%m-%d %H:%M')
- ts = time.mktime(tt)
-
- # Separate the offset into a sign component, hours, and minutes
- plus_minus_s, rest = tzoffset[0], tzoffset[1:]
- hours_offset_s, mins_offset_s = rest[:2], rest[2:]
-
- # Make them all integers
- plus_minus = int(plus_minus_s + '1')
- hours_offset = int(hours_offset_s)
- mins_offset = int(mins_offset_s)
-
- # Calculate net offset
- net_mins_offset = hours_offset * 60
- net_mins_offset += mins_offset
- net_mins_offset *= plus_minus
-
- # Create an offset object
- tzoffset = FixedOffsetTimezone(net_mins_offset)
-
- # Store the offset in a datetime object
- dt = datetime.fromtimestamp(ts)
- self.creation_date = dt.replace(tzinfo=tzoffset)
- elif name == 'po-revision-date':
- # Keep the value if it's not the default one
- if 'YEAR' not in value:
- # FIXME: this should use dates.parse_datetime as soon as
- # that is ready
- value, tzoffset, _ = re.split('([+-]\d{4})$', value, 1)
- tt = time.strptime(value, '%Y-%m-%d %H:%M')
- ts = time.mktime(tt)
-
- # Separate the offset into a sign component, hours, and
- # minutes
- plus_minus_s, rest = tzoffset[0], tzoffset[1:]
- hours_offset_s, mins_offset_s = rest[:2], rest[2:]
-
- # Make them all integers
- plus_minus = int(plus_minus_s + '1')
- hours_offset = int(hours_offset_s)
- mins_offset = int(mins_offset_s)
-
- # Calculate net offset
- net_mins_offset = hours_offset * 60
- net_mins_offset += mins_offset
- net_mins_offset *= plus_minus
-
- # Create an offset object
- tzoffset = FixedOffsetTimezone(net_mins_offset)
-
- # Store the offset in a datetime object
- dt = datetime.fromtimestamp(ts)
- self.revision_date = dt.replace(tzinfo=tzoffset)
-
- mime_headers = property(_get_mime_headers, _set_mime_headers, doc="""\
- The MIME headers of the catalog, used for the special ``msgid ""`` entry.
-
- The behavior of this property changes slightly depending on whether a locale
- is set or not, the latter indicating that the catalog is actually a template
- for actual translations.
-
- Here's an example of the output for such a catalog template:
-
- >>> from babel.dates import UTC
- >>> created = datetime(1990, 4, 1, 15, 30, tzinfo=UTC)
- >>> catalog = Catalog(project='Foobar', version='1.0',
- ... creation_date=created)
- >>> for name, value in catalog.mime_headers:
- ... print '%s: %s' % (name, value)
- Project-Id-Version: Foobar 1.0
- Report-Msgid-Bugs-To: EMAIL@ADDRESS
- POT-Creation-Date: 1990-04-01 15:30+0000
- PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE
- Last-Translator: FULL NAME
- Language-Team: LANGUAGE
- MIME-Version: 1.0
- Content-Type: text/plain; charset=utf-8
- Content-Transfer-Encoding: 8bit
- Generated-By: Babel ...
-
- And here's an example of the output when the locale is set:
-
- >>> revised = datetime(1990, 8, 3, 12, 0, tzinfo=UTC)
- >>> catalog = Catalog(locale='de_DE', project='Foobar', version='1.0',
- ... creation_date=created, revision_date=revised,
- ... last_translator='John Doe ',
- ... language_team='de_DE ')
- >>> for name, value in catalog.mime_headers:
- ... print '%s: %s' % (name, value)
- Project-Id-Version: Foobar 1.0
- Report-Msgid-Bugs-To: EMAIL@ADDRESS
- POT-Creation-Date: 1990-04-01 15:30+0000
- PO-Revision-Date: 1990-08-03 12:00+0000
- Last-Translator: John Doe
- Language-Team: de_DE
- Plural-Forms: nplurals=2; plural=(n != 1)
- MIME-Version: 1.0
- Content-Type: text/plain; charset=utf-8
- Content-Transfer-Encoding: 8bit
- Generated-By: Babel ...
-
- :type: `list`
- """)
-
- @property
- def num_plurals(self):
- """The number of plurals used by the catalog or locale.
-
- >>> Catalog(locale='en').num_plurals
- 2
- >>> Catalog(locale='ga').num_plurals
- 3
-
- :type: `int`"""
- if self._num_plurals is None:
- num = 2
- if self.locale:
- num = get_plural(self.locale)[0]
- self._num_plurals = num
- return self._num_plurals
-
- @property
- def plural_expr(self):
- """The plural expression used by the catalog or locale.
-
- >>> Catalog(locale='en').plural_expr
- '(n != 1)'
- >>> Catalog(locale='ga').plural_expr
- '(n==1 ? 0 : n==2 ? 1 : 2)'
-
- :type: `string_types`"""
- if self._plural_expr is None:
- expr = '(n != 1)'
- if self.locale:
- expr = get_plural(self.locale)[1]
- self._plural_expr = expr
- return self._plural_expr
-
- @property
- def plural_forms(self):
- """Return the plural forms declaration for the locale.
-
- >>> Catalog(locale='en').plural_forms
- 'nplurals=2; plural=(n != 1)'
- >>> Catalog(locale='pt_BR').plural_forms
- 'nplurals=2; plural=(n > 1)'
-
- :type: `str`"""
- return 'nplurals=%s; plural=%s' % (self.num_plurals, self.plural_expr)
-
- def __contains__(self, id):
- """Return whether the catalog has a message with the specified ID."""
- return self._key_for(id) in self._messages
-
- def __len__(self):
- """The number of messages in the catalog.
-
- This does not include the special ``msgid ""`` entry."""
- return len(self._messages)
-
- def __iter__(self):
- """Iterates through all the entries in the catalog, in the order they
- were added, yielding a `Message` object for every entry.
-
- :rtype: ``iterator``"""
- buf = []
- for name, value in self.mime_headers:
- buf.append('%s: %s' % (name, value))
- flags = set()
- if self.fuzzy:
- flags |= set(['fuzzy'])
- yield Message(u'', '\n'.join(buf), flags=flags)
- for key in self._messages:
- yield self._messages[key]
-
- def __repr__(self):
- locale = ''
- if self.locale:
- locale = ' %s' % self.locale
- return '<%s %r%s>' % (type(self).__name__, self.domain, locale)
-
- def __delitem__(self, id):
- """Delete the message with the specified ID."""
- self.delete(id)
-
- def __getitem__(self, id):
- """Return the message with the specified ID.
-
- :param id: the message ID
- """
- return self.get(id)
-
- def __setitem__(self, id, message):
- """Add or update the message with the specified ID.
-
- >>> catalog = Catalog()
- >>> catalog[u'foo'] = Message(u'foo')
- >>> catalog[u'foo']
-
-
- If a message with that ID is already in the catalog, it is updated
- to include the locations and flags of the new message.
-
- >>> catalog = Catalog()
- >>> catalog[u'foo'] = Message(u'foo', locations=[('main.py', 1)])
- >>> catalog[u'foo'].locations
- [('main.py', 1)]
- >>> catalog[u'foo'] = Message(u'foo', locations=[('utils.py', 5)])
- >>> catalog[u'foo'].locations
- [('main.py', 1), ('utils.py', 5)]
-
- :param id: the message ID
- :param message: the `Message` object
- """
- assert isinstance(message, Message), 'expected a Message object'
- key = self._key_for(id, message.context)
- current = self._messages.get(key)
- if current:
- if message.pluralizable and not current.pluralizable:
- # The new message adds pluralization
- current.id = message.id
- current.string = message.string
- current.locations = list(distinct(current.locations +
- message.locations))
- current.auto_comments = list(distinct(current.auto_comments +
- message.auto_comments))
- current.user_comments = list(distinct(current.user_comments +
- message.user_comments))
- current.flags |= message.flags
- message = current
- elif id == '':
- # special treatment for the header message
- self.mime_headers = _parse_header(message.string).items()
- self.header_comment = '\n'.join([('# %s' % c).rstrip() for c
- in message.user_comments])
- self.fuzzy = message.fuzzy
- else:
- if isinstance(id, (list, tuple)):
- assert isinstance(message.string, (list, tuple)), \
- 'Expected sequence but got %s' % type(message.string)
- self._messages[key] = message
-
- def add(self, id, string=None, locations=(), flags=(), auto_comments=(),
- user_comments=(), previous_id=(), lineno=None, context=None):
- """Add or update the message with the specified ID.
-
- >>> catalog = Catalog()
- >>> catalog.add(u'foo')
-
- >>> catalog[u'foo']
-
-
- This method simply constructs a `Message` object with the given
- arguments and invokes `__setitem__` with that object.
-
- :param id: the message ID, or a ``(singular, plural)`` tuple for
- pluralizable messages
- :param string: the translated message string, or a
- ``(singular, plural)`` tuple for pluralizable messages
- :param locations: a sequence of ``(filenname, lineno)`` tuples
- :param flags: a set or sequence of flags
- :param auto_comments: a sequence of automatic comments
- :param user_comments: a sequence of user comments
- :param previous_id: the previous message ID, or a ``(singular, plural)``
- tuple for pluralizable messages
- :param lineno: the line number on which the msgid line was found in the
- PO file, if any
- :param context: the message context
- """
- message = Message(id, string, list(locations), flags, auto_comments,
- user_comments, previous_id, lineno=lineno,
- context=context)
- self[id] = message
- return message
-
- def check(self):
- """Run various validation checks on the translations in the catalog.
-
- For every message which fails validation, this method yield a
- ``(message, errors)`` tuple, where ``message`` is the `Message` object
- and ``errors`` is a sequence of `TranslationError` objects.
-
- :rtype: ``iterator``
- """
- for message in self._messages.values():
- errors = message.check(catalog=self)
- if errors:
- yield message, errors
-
- def get(self, id, context=None):
- """Return the message with the specified ID and context.
-
- :param id: the message ID
- :param context: the message context, or ``None`` for no context
- """
- return self._messages.get(self._key_for(id, context))
-
- def delete(self, id, context=None):
- """Delete the message with the specified ID and context.
-
- :param id: the message ID
- :param context: the message context, or ``None`` for no context
- """
- key = self._key_for(id, context)
- if key in self._messages:
- del self._messages[key]
-
- def update(self, template, no_fuzzy_matching=False):
- """Update the catalog based on the given template catalog.
-
- >>> from babel.messages import Catalog
- >>> template = Catalog()
- >>> template.add('green', locations=[('main.py', 99)])
-
- >>> template.add('blue', locations=[('main.py', 100)])
-
- >>> template.add(('salad', 'salads'), locations=[('util.py', 42)])
-
- >>> catalog = Catalog(locale='de_DE')
- >>> catalog.add('blue', u'blau', locations=[('main.py', 98)])
-
- >>> catalog.add('head', u'Kopf', locations=[('util.py', 33)])
-
- >>> catalog.add(('salad', 'salads'), (u'Salat', u'Salate'),
- ... locations=[('util.py', 38)])
-
-
- >>> catalog.update(template)
- >>> len(catalog)
- 3
-
- >>> msg1 = catalog['green']
- >>> msg1.string
- >>> msg1.locations
- [('main.py', 99)]
-
- >>> msg2 = catalog['blue']
- >>> msg2.string
- u'blau'
- >>> msg2.locations
- [('main.py', 100)]
-
- >>> msg3 = catalog['salad']
- >>> msg3.string
- (u'Salat', u'Salate')
- >>> msg3.locations
- [('util.py', 42)]
-
- Messages that are in the catalog but not in the template are removed
- from the main collection, but can still be accessed via the `obsolete`
- member:
-
- >>> 'head' in catalog
- False
- >>> catalog.obsolete.values()
- []
-
- :param template: the reference catalog, usually read from a POT file
- :param no_fuzzy_matching: whether to use fuzzy matching of message IDs
- """
- messages = self._messages
- remaining = messages.copy()
- self._messages = odict()
-
- # Prepare for fuzzy matching
- fuzzy_candidates = []
- if not no_fuzzy_matching:
- fuzzy_candidates = dict([
- (self._key_for(msgid), messages[msgid].context)
- for msgid in messages if msgid and messages[msgid].string
- ])
- fuzzy_matches = set()
-
- def _merge(message, oldkey, newkey):
- message = message.clone()
- fuzzy = False
- if oldkey != newkey:
- fuzzy = True
- fuzzy_matches.add(oldkey)
- oldmsg = messages.get(oldkey)
- if isinstance(oldmsg.id, string_types):
- message.previous_id = [oldmsg.id]
- else:
- message.previous_id = list(oldmsg.id)
- else:
- oldmsg = remaining.pop(oldkey, None)
- message.string = oldmsg.string
- if isinstance(message.id, (list, tuple)):
- if not isinstance(message.string, (list, tuple)):
- fuzzy = True
- message.string = tuple(
- [message.string] + ([u''] * (len(message.id) - 1))
- )
- elif len(message.string) != self.num_plurals:
- fuzzy = True
- message.string = tuple(message.string[:len(oldmsg.string)])
- elif isinstance(message.string, (list, tuple)):
- fuzzy = True
- message.string = message.string[0]
- message.flags |= oldmsg.flags
- if fuzzy:
- message.flags |= set([u'fuzzy'])
- self[message.id] = message
-
- for message in template:
- if message.id:
- key = self._key_for(message.id, message.context)
- if key in messages:
- _merge(message, key, key)
- else:
- if no_fuzzy_matching is False:
- # do some fuzzy matching with difflib
- if isinstance(key, tuple):
- matchkey = key[0] # just the msgid, no context
- else:
- matchkey = key
- matches = get_close_matches(matchkey.lower().strip(),
- fuzzy_candidates.keys(), 1)
- if matches:
- newkey = matches[0]
- newctxt = fuzzy_candidates[newkey]
- if newctxt is not None:
- newkey = newkey, newctxt
- _merge(message, newkey, key)
- continue
-
- self[message.id] = message
-
- for msgid in remaining:
- if no_fuzzy_matching or msgid not in fuzzy_matches:
- self.obsolete[msgid] = remaining[msgid]
- # Make updated catalog's POT-Creation-Date equal to the template
- # used to update the catalog
- self.creation_date = template.creation_date
-
- def _key_for(self, id, context=None):
- """The key for a message is just the singular ID even for pluralizable
- messages, but is a ``(msgid, msgctxt)`` tuple for context-specific
- messages.
- """
- key = id
- if isinstance(key, (list, tuple)):
- key = id[0]
- if context is not None:
- key = (key, context)
- return key
diff --git a/vendor/babel/messages/checkers.py b/vendor/babel/messages/checkers.py
deleted file mode 100644
index 24ecdcfe..00000000
--- a/vendor/babel/messages/checkers.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages.checkers
- ~~~~~~~~~~~~~~~~~~~~~~~
-
- Various routines that help with validation of translations.
-
- :since: version 0.9
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-from babel.messages.catalog import TranslationError, PYTHON_FORMAT
-from babel._compat import string_types, izip
-
-
-#: list of format chars that are compatible to each other
-_string_format_compatibilities = [
- set(['i', 'd', 'u']),
- set(['x', 'X']),
- set(['f', 'F', 'g', 'G'])
-]
-
-
-def num_plurals(catalog, message):
- """Verify the number of plurals in the translation."""
- if not message.pluralizable:
- if not isinstance(message.string, string_types):
- raise TranslationError("Found plural forms for non-pluralizable "
- "message")
- return
-
- # skip further tests if no catalog is provided.
- elif catalog is None:
- return
-
- msgstrs = message.string
- if not isinstance(msgstrs, (list, tuple)):
- msgstrs = (msgstrs,)
- if len(msgstrs) != catalog.num_plurals:
- raise TranslationError("Wrong number of plural forms (expected %d)" %
- catalog.num_plurals)
-
-
-def python_format(catalog, message):
- """Verify the format string placeholders in the translation."""
- if 'python-format' not in message.flags:
- return
- msgids = message.id
- if not isinstance(msgids, (list, tuple)):
- msgids = (msgids,)
- msgstrs = message.string
- if not isinstance(msgstrs, (list, tuple)):
- msgstrs = (msgstrs,)
-
- for msgid, msgstr in izip(msgids, msgstrs):
- if msgstr:
- _validate_format(msgid, msgstr)
-
-
-def _validate_format(format, alternative):
- """Test format string `alternative` against `format`. `format` can be the
- msgid of a message and `alternative` one of the `msgstr`\s. The two
- arguments are not interchangeable as `alternative` may contain less
- placeholders if `format` uses named placeholders.
-
- The behavior of this function is undefined if the string does not use
- string formattings.
-
- If the string formatting of `alternative` is compatible to `format` the
- function returns `None`, otherwise a `TranslationError` is raised.
-
- Examples for compatible format strings:
-
- >>> _validate_format('Hello %s!', 'Hallo %s!')
- >>> _validate_format('Hello %i!', 'Hallo %d!')
-
- Example for an incompatible format strings:
-
- >>> _validate_format('Hello %(name)s!', 'Hallo %s!')
- Traceback (most recent call last):
- ...
- TranslationError: the format strings are of different kinds
-
- This function is used by the `python_format` checker.
-
- :param format: The original format string
- :param alternative: The alternative format string that should be checked
- against format
- :raises TranslationError: on formatting errors
- """
-
- def _parse(string):
- result = []
- for match in PYTHON_FORMAT.finditer(string):
- name, format, typechar = match.groups()
- if typechar == '%' and name is None:
- continue
- result.append((name, str(typechar)))
- return result
-
- def _compatible(a, b):
- if a == b:
- return True
- for set in _string_format_compatibilities:
- if a in set and b in set:
- return True
- return False
-
- def _check_positional(results):
- positional = None
- for name, char in results:
- if positional is None:
- positional = name is None
- else:
- if (name is None) != positional:
- raise TranslationError('format string mixes positional '
- 'and named placeholders')
- return bool(positional)
-
- a, b = map(_parse, (format, alternative))
-
- # now check if both strings are positional or named
- a_positional, b_positional = map(_check_positional, (a, b))
- if a_positional and not b_positional and not b:
- raise TranslationError('placeholders are incompatible')
- elif a_positional != b_positional:
- raise TranslationError('the format strings are of different kinds')
-
- # if we are operating on positional strings both must have the
- # same number of format chars and those must be compatible
- if a_positional:
- if len(a) != len(b):
- raise TranslationError('positional format placeholders are '
- 'unbalanced')
- for idx, ((_, first), (_, second)) in enumerate(izip(a, b)):
- if not _compatible(first, second):
- raise TranslationError('incompatible format for placeholder '
- '%d: %r and %r are not compatible' %
- (idx + 1, first, second))
-
- # otherwise the second string must not have names the first one
- # doesn't have and the types of those included must be compatible
- else:
- type_map = dict(a)
- for name, typechar in b:
- if name not in type_map:
- raise TranslationError('unknown named placeholder %r' % name)
- elif not _compatible(typechar, type_map[name]):
- raise TranslationError('incompatible format for '
- 'placeholder %r: '
- '%r and %r are not compatible' %
- (name, typechar, type_map[name]))
-
-
-def _find_checkers():
- checkers = []
- try:
- from pkg_resources import working_set
- except ImportError:
- pass
- else:
- for entry_point in working_set.iter_entry_points('babel.checkers'):
- checkers.append(entry_point.load())
- if len(checkers) == 0:
- # if pkg_resources is not available or no usable egg-info was found
- # (see #230), just resort to hard-coded checkers
- return [num_plurals, python_format]
- return checkers
-
-
-checkers = _find_checkers()
diff --git a/vendor/babel/messages/extract.py b/vendor/babel/messages/extract.py
deleted file mode 100644
index 2f8084af..00000000
--- a/vendor/babel/messages/extract.py
+++ /dev/null
@@ -1,562 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages.extract
- ~~~~~~~~~~~~~~~~~~~~~~
-
- Basic infrastructure for extracting localizable messages from source files.
-
- This module defines an extensible system for collecting localizable message
- strings from a variety of sources. A native extractor for Python source
- files is builtin, extractors for other sources can be added using very
- simple plugins.
-
- The main entry points into the extraction functionality are the functions
- `extract_from_dir` and `extract_from_file`.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-import os
-import sys
-from tokenize import generate_tokens, COMMENT, NAME, OP, STRING
-
-from babel.util import parse_encoding, pathmatch, relpath
-from babel._compat import PY2, text_type
-from textwrap import dedent
-
-
-GROUP_NAME = 'babel.extractors'
-
-DEFAULT_KEYWORDS = {
- '_': None,
- 'gettext': None,
- 'ngettext': (1, 2),
- 'ugettext': None,
- 'ungettext': (1, 2),
- 'dgettext': (2,),
- 'dngettext': (2, 3),
- 'N_': None,
- 'pgettext': ((1, 'c'), 2)
-}
-
-DEFAULT_MAPPING = [('**.py', 'python')]
-
-empty_msgid_warning = (
-'%s: warning: Empty msgid. It is reserved by GNU gettext: gettext("") '
-'returns the header entry with meta information, not the empty string.')
-
-
-def _strip_comment_tags(comments, tags):
- """Helper function for `extract` that strips comment tags from strings
- in a list of comment lines. This functions operates in-place.
- """
- def _strip(line):
- for tag in tags:
- if line.startswith(tag):
- return line[len(tag):].strip()
- return line
- comments[:] = map(_strip, comments)
-
-
-def extract_from_dir(dirname=None, method_map=DEFAULT_MAPPING,
- options_map=None, keywords=DEFAULT_KEYWORDS,
- comment_tags=(), callback=None, strip_comment_tags=False):
- """Extract messages from any source files found in the given directory.
-
- This function generates tuples of the form ``(filename, lineno, message,
- comments, context)``.
-
- Which extraction method is used per file is determined by the `method_map`
- parameter, which maps extended glob patterns to extraction method names.
- For example, the following is the default mapping:
-
- >>> method_map = [
- ... ('**.py', 'python')
- ... ]
-
- This basically says that files with the filename extension ".py" at any
- level inside the directory should be processed by the "python" extraction
- method. Files that don't match any of the mapping patterns are ignored. See
- the documentation of the `pathmatch` function for details on the pattern
- syntax.
-
- The following extended mapping would also use the "genshi" extraction
- method on any file in "templates" subdirectory:
-
- >>> method_map = [
- ... ('**/templates/**.*', 'genshi'),
- ... ('**.py', 'python')
- ... ]
-
- The dictionary provided by the optional `options_map` parameter augments
- these mappings. It uses extended glob patterns as keys, and the values are
- dictionaries mapping options names to option values (both strings).
-
- The glob patterns of the `options_map` do not necessarily need to be the
- same as those used in the method mapping. For example, while all files in
- the ``templates`` folders in an application may be Genshi applications, the
- options for those files may differ based on extension:
-
- >>> options_map = {
- ... '**/templates/**.txt': {
- ... 'template_class': 'genshi.template:TextTemplate',
- ... 'encoding': 'latin-1'
- ... },
- ... '**/templates/**.html': {
- ... 'include_attrs': ''
- ... }
- ... }
-
- :param dirname: the path to the directory to extract messages from. If
- not given the current working directory is used.
- :param method_map: a list of ``(pattern, method)`` tuples that maps of
- extraction method names to extended glob patterns
- :param options_map: a dictionary of additional options (optional)
- :param keywords: a dictionary mapping keywords (i.e. names of functions
- that should be recognized as translation functions) to
- tuples that specify which of their arguments contain
- localizable strings
- :param comment_tags: a list of tags of translator comments to search for
- and include in the results
- :param callback: a function that is called for every file that message are
- extracted from, just before the extraction itself is
- performed; the function is passed the filename, the name
- of the extraction method and and the options dictionary as
- positional arguments, in that order
- :param strip_comment_tags: a flag that if set to `True` causes all comment
- tags to be removed from the collected comments.
- :see: `pathmatch`
- """
- if dirname is None:
- dirname = os.getcwd()
- if options_map is None:
- options_map = {}
-
- absname = os.path.abspath(dirname)
- for root, dirnames, filenames in os.walk(absname):
- for subdir in dirnames:
- if subdir.startswith('.') or subdir.startswith('_'):
- dirnames.remove(subdir)
- dirnames.sort()
- filenames.sort()
- for filename in filenames:
- filename = relpath(
- os.path.join(root, filename).replace(os.sep, '/'),
- dirname
- )
- for pattern, method in method_map:
- if pathmatch(pattern, filename):
- filepath = os.path.join(absname, filename)
- options = {}
- for opattern, odict in options_map.items():
- if pathmatch(opattern, filename):
- options = odict
- if callback:
- callback(filename, method, options)
- for lineno, message, comments, context in \
- extract_from_file(method, filepath,
- keywords=keywords,
- comment_tags=comment_tags,
- options=options,
- strip_comment_tags=
- strip_comment_tags):
- yield filename, lineno, message, comments, context
- break
-
-
-def extract_from_file(method, filename, keywords=DEFAULT_KEYWORDS,
- comment_tags=(), options=None, strip_comment_tags=False):
- """Extract messages from a specific file.
-
- This function returns a list of tuples of the form ``(lineno, funcname,
- message)``.
-
- :param filename: the path to the file to extract messages from
- :param method: a string specifying the extraction method (.e.g. "python")
- :param keywords: a dictionary mapping keywords (i.e. names of functions
- that should be recognized as translation functions) to
- tuples that specify which of their arguments contain
- localizable strings
- :param comment_tags: a list of translator tags to search for and include
- in the results
- :param strip_comment_tags: a flag that if set to `True` causes all comment
- tags to be removed from the collected comments.
- :param options: a dictionary of additional options (optional)
- """
- fileobj = open(filename, 'rb')
- try:
- return list(extract(method, fileobj, keywords, comment_tags, options,
- strip_comment_tags))
- finally:
- fileobj.close()
-
-
-def extract(method, fileobj, keywords=DEFAULT_KEYWORDS, comment_tags=(),
- options=None, strip_comment_tags=False):
- """Extract messages from the given file-like object using the specified
- extraction method.
-
- This function returns tuples of the form ``(lineno, message, comments)``.
-
- The implementation dispatches the actual extraction to plugins, based on the
- value of the ``method`` parameter.
-
- >>> source = '''# foo module
- ... def run(argv):
- ... print _('Hello, world!')
- ... '''
-
- >>> from StringIO import StringIO
- >>> for message in extract('python', StringIO(source)):
- ... print message
- (3, u'Hello, world!', [], None)
-
- :param method: a string specifying the extraction method (.e.g. "python");
- if this is a simple name, the extraction function will be
- looked up by entry point; if it is an explicit reference
- to a function (of the form ``package.module:funcname`` or
- ``package.module.funcname``), the corresponding function
- will be imported and used
- :param fileobj: the file-like object the messages should be extracted from
- :param keywords: a dictionary mapping keywords (i.e. names of functions
- that should be recognized as translation functions) to
- tuples that specify which of their arguments contain
- localizable strings
- :param comment_tags: a list of translator tags to search for and include
- in the results
- :param options: a dictionary of additional options (optional)
- :param strip_comment_tags: a flag that if set to `True` causes all comment
- tags to be removed from the collected comments.
- :raise ValueError: if the extraction method is not registered
- """
- func = None
- if ':' in method or '.' in method:
- if ':' not in method:
- lastdot = method.rfind('.')
- module, attrname = method[:lastdot], method[lastdot + 1:]
- else:
- module, attrname = method.split(':', 1)
- func = getattr(__import__(module, {}, {}, [attrname]), attrname)
- else:
- try:
- from pkg_resources import working_set
- except ImportError:
- pass
- else:
- for entry_point in working_set.iter_entry_points(GROUP_NAME,
- method):
- func = entry_point.load(require=True)
- break
- if func is None:
- # if pkg_resources is not available or no usable egg-info was found
- # (see #230), we resort to looking up the builtin extractors
- # directly
- builtin = {
- 'ignore': extract_nothing,
- 'python': extract_python,
- 'javascript': extract_javascript
- }
- func = builtin.get(method)
- if func is None:
- raise ValueError('Unknown extraction method %r' % method)
-
- results = func(fileobj, keywords.keys(), comment_tags,
- options=options or {})
-
- for lineno, funcname, messages, comments in results:
- if funcname:
- spec = keywords[funcname] or (1,)
- else:
- spec = (1,)
- if not isinstance(messages, (list, tuple)):
- messages = [messages]
- if not messages:
- continue
-
- # Validate the messages against the keyword's specification
- context = None
- msgs = []
- invalid = False
- # last_index is 1 based like the keyword spec
- last_index = len(messages)
- for index in spec:
- if isinstance(index, tuple):
- context = messages[index[0] - 1]
- continue
- if last_index < index:
- # Not enough arguments
- invalid = True
- break
- message = messages[index - 1]
- if message is None:
- invalid = True
- break
- msgs.append(message)
- if invalid:
- continue
-
- # keyword spec indexes are 1 based, therefore '-1'
- if isinstance(spec[0], tuple):
- # context-aware *gettext method
- first_msg_index = spec[1] - 1
- else:
- first_msg_index = spec[0] - 1
- if not messages[first_msg_index]:
- # An empty string msgid isn't valid, emit a warning
- where = '%s:%i' % (hasattr(fileobj, 'name') and \
- fileobj.name or '(unknown)', lineno)
- sys.stderr.write((empty_msgid_warning % where) + '\n')
- continue
-
- messages = tuple(msgs)
- if len(messages) == 1:
- messages = messages[0]
-
- if strip_comment_tags:
- _strip_comment_tags(comments, comment_tags)
- yield lineno, messages, comments, context
-
-
-def extract_nothing(fileobj, keywords, comment_tags, options):
- """Pseudo extractor that does not actually extract anything, but simply
- returns an empty list.
- """
- return []
-
-
-def extract_python(fileobj, keywords, comment_tags, options):
- """Extract messages from Python source code.
-
- It returns an iterator yielding tuples in the following form ``(lineno,
- funcname, message, comments)``.
-
- :param fileobj: the seekable, file-like object the messages should be
- extracted from
- :param keywords: a list of keywords (i.e. function names) that should be
- recognized as translation functions
- :param comment_tags: a list of translator tags to search for and include
- in the results
- :param options: a dictionary of additional options (optional)
- :rtype: ``iterator``
- """
- funcname = lineno = message_lineno = None
- call_stack = -1
- buf = []
- messages = []
- translator_comments = []
- in_def = in_translator_comments = False
- comment_tag = None
-
- encoding = parse_encoding(fileobj) or options.get('encoding', 'iso-8859-1')
-
- if PY2:
- next_line = fileobj.readline
- else:
- next_line = lambda: fileobj.readline().decode(encoding)
-
- tokens = generate_tokens(next_line)
- for tok, value, (lineno, _), _, _ in tokens:
- if call_stack == -1 and tok == NAME and value in ('def', 'class'):
- in_def = True
- elif tok == OP and value == '(':
- if in_def:
- # Avoid false positives for declarations such as:
- # def gettext(arg='message'):
- in_def = False
- continue
- if funcname:
- message_lineno = lineno
- call_stack += 1
- elif in_def and tok == OP and value == ':':
- # End of a class definition without parens
- in_def = False
- continue
- elif call_stack == -1 and tok == COMMENT:
- # Strip the comment token from the line
- if PY2:
- value = value.decode(encoding)
- value = value[1:].strip()
- if in_translator_comments and \
- translator_comments[-1][0] == lineno - 1:
- # We're already inside a translator comment, continue appending
- translator_comments.append((lineno, value))
- continue
- # If execution reaches this point, let's see if comment line
- # starts with one of the comment tags
- for comment_tag in comment_tags:
- if value.startswith(comment_tag):
- in_translator_comments = True
- translator_comments.append((lineno, value))
- break
- elif funcname and call_stack == 0:
- if tok == OP and value == ')':
- if buf:
- messages.append(''.join(buf))
- del buf[:]
- else:
- messages.append(None)
-
- if len(messages) > 1:
- messages = tuple(messages)
- else:
- messages = messages[0]
- # Comments don't apply unless they immediately preceed the
- # message
- if translator_comments and \
- translator_comments[-1][0] < message_lineno - 1:
- translator_comments = []
-
- yield (message_lineno, funcname, messages,
- [comment[1] for comment in translator_comments])
-
- funcname = lineno = message_lineno = None
- call_stack = -1
- messages = []
- translator_comments = []
- in_translator_comments = False
- elif tok == STRING:
- # Unwrap quotes in a safe manner, maintaining the string's
- # encoding
- # https://sourceforge.net/tracker/?func=detail&atid=355470&
- # aid=617979&group_id=5470
- value = eval('# coding=%s\n%s' % (str(encoding), value),
- {'__builtins__':{}}, {})
- if PY2 and not isinstance(value, text_type):
- value = value.decode(encoding)
- buf.append(value)
- elif tok == OP and value == ',':
- if buf:
- messages.append(''.join(buf))
- del buf[:]
- else:
- messages.append(None)
- if translator_comments:
- # We have translator comments, and since we're on a
- # comma(,) user is allowed to break into a new line
- # Let's increase the last comment's lineno in order
- # for the comment to still be a valid one
- old_lineno, old_comment = translator_comments.pop()
- translator_comments.append((old_lineno+1, old_comment))
- elif call_stack > 0 and tok == OP and value == ')':
- call_stack -= 1
- elif funcname and call_stack == -1:
- funcname = None
- elif tok == NAME and value in keywords:
- funcname = value
-
-
-def extract_javascript(fileobj, keywords, comment_tags, options):
- """Extract messages from JavaScript source code.
-
- :param fileobj: the seekable, file-like object the messages should be
- extracted from
- :param keywords: a list of keywords (i.e. function names) that should be
- recognized as translation functions
- :param comment_tags: a list of translator tags to search for and include
- in the results
- :param options: a dictionary of additional options (optional)
- """
- from babel.messages.jslexer import tokenize, unquote_string
- funcname = message_lineno = None
- messages = []
- last_argument = None
- translator_comments = []
- concatenate_next = False
- encoding = options.get('encoding', 'utf-8')
- last_token = None
- call_stack = -1
-
- for token in tokenize(fileobj.read().decode(encoding)):
- if token.type == 'operator' and token.value == '(':
- if funcname:
- message_lineno = token.lineno
- call_stack += 1
-
- elif call_stack == -1 and token.type == 'linecomment':
- value = token.value[2:].strip()
- if translator_comments and \
- translator_comments[-1][0] == token.lineno - 1:
- translator_comments.append((token.lineno, value))
- continue
-
- for comment_tag in comment_tags:
- if value.startswith(comment_tag):
- translator_comments.append((token.lineno, value.strip()))
- break
-
- elif token.type == 'multilinecomment':
- # only one multi-line comment may preceed a translation
- translator_comments = []
- value = token.value[2:-2].strip()
- for comment_tag in comment_tags:
- if value.startswith(comment_tag):
- lines = value.splitlines()
- if lines:
- lines[0] = lines[0].strip()
- lines[1:] = dedent('\n'.join(lines[1:])).splitlines()
- for offset, line in enumerate(lines):
- translator_comments.append((token.lineno + offset,
- line))
- break
-
- elif funcname and call_stack == 0:
- if token.type == 'operator' and token.value == ')':
- if last_argument is not None:
- messages.append(last_argument)
- if len(messages) > 1:
- messages = tuple(messages)
- elif messages:
- messages = messages[0]
- else:
- messages = None
-
- # Comments don't apply unless they immediately precede the
- # message
- if translator_comments and \
- translator_comments[-1][0] < message_lineno - 1:
- translator_comments = []
-
- if messages is not None:
- yield (message_lineno, funcname, messages,
- [comment[1] for comment in translator_comments])
-
- funcname = message_lineno = last_argument = None
- concatenate_next = False
- translator_comments = []
- messages = []
- call_stack = -1
-
- elif token.type == 'string':
- new_value = unquote_string(token.value)
- if concatenate_next:
- last_argument = (last_argument or '') + new_value
- concatenate_next = False
- else:
- last_argument = new_value
-
- elif token.type == 'operator':
- if token.value == ',':
- if last_argument is not None:
- messages.append(last_argument)
- last_argument = None
- else:
- messages.append(None)
- concatenate_next = False
- elif token.value == '+':
- concatenate_next = True
-
- elif call_stack > 0 and token.type == 'operator' \
- and token.value == ')':
- call_stack -= 1
-
- elif funcname and call_stack == -1:
- funcname = None
-
- elif call_stack == -1 and token.type == 'name' and \
- token.value in keywords and \
- (last_token is None or last_token.type != 'name' or
- last_token.value != 'function'):
- funcname = token.value
-
- last_token = token
diff --git a/vendor/babel/messages/frontend.py b/vendor/babel/messages/frontend.py
deleted file mode 100644
index 144bc98a..00000000
--- a/vendor/babel/messages/frontend.py
+++ /dev/null
@@ -1,1259 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages.frontend
- ~~~~~~~~~~~~~~~~~~~~~~~
-
- Frontends for the message extraction functionality.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-try:
- from ConfigParser import RawConfigParser
-except ImportError:
- from configparser import RawConfigParser
-from datetime import datetime
-from distutils import log
-from distutils.cmd import Command
-from distutils.errors import DistutilsOptionError, DistutilsSetupError
-from locale import getpreferredencoding
-import logging
-from optparse import OptionParser
-import os
-import re
-import shutil
-import sys
-import tempfile
-
-from babel import __version__ as VERSION
-from babel import Locale, localedata
-from babel.core import UnknownLocaleError
-from babel.messages.catalog import Catalog
-from babel.messages.extract import extract_from_dir, DEFAULT_KEYWORDS, \
- DEFAULT_MAPPING
-from babel.messages.mofile import write_mo
-from babel.messages.pofile import read_po, write_po
-from babel.util import odict, LOCALTZ
-from babel._compat import string_types, BytesIO, PY2
-
-
-class compile_catalog(Command):
- """Catalog compilation command for use in ``setup.py`` scripts.
-
- If correctly installed, this command is available to Setuptools-using
- setup scripts automatically. For projects using plain old ``distutils``,
- the command needs to be registered explicitly in ``setup.py``::
-
- from babel.messages.frontend import compile_catalog
-
- setup(
- ...
- cmdclass = {'compile_catalog': compile_catalog}
- )
-
- .. versionadded:: 0.9
- """
-
- description = 'compile message catalogs to binary MO files'
- user_options = [
- ('domain=', 'D',
- "domain of PO file (default 'messages')"),
- ('directory=', 'd',
- 'path to base directory containing the catalogs'),
- ('input-file=', 'i',
- 'name of the input file'),
- ('output-file=', 'o',
- "name of the output file (default "
- "'//LC_MESSAGES/.po')"),
- ('locale=', 'l',
- 'locale of the catalog to compile'),
- ('use-fuzzy', 'f',
- 'also include fuzzy translations'),
- ('statistics', None,
- 'print statistics about translations')
- ]
- boolean_options = ['use-fuzzy', 'statistics']
-
- def initialize_options(self):
- self.domain = 'messages'
- self.directory = None
- self.input_file = None
- self.output_file = None
- self.locale = None
- self.use_fuzzy = False
- self.statistics = False
-
- def finalize_options(self):
- if not self.input_file and not self.directory:
- raise DistutilsOptionError('you must specify either the input file '
- 'or the base directory')
- if not self.output_file and not self.directory:
- raise DistutilsOptionError('you must specify either the input file '
- 'or the base directory')
-
- def run(self):
- po_files = []
- mo_files = []
-
- if not self.input_file:
- if self.locale:
- po_files.append((self.locale,
- os.path.join(self.directory, self.locale,
- 'LC_MESSAGES',
- self.domain + '.po')))
- mo_files.append(os.path.join(self.directory, self.locale,
- 'LC_MESSAGES',
- self.domain + '.mo'))
- else:
- for locale in os.listdir(self.directory):
- po_file = os.path.join(self.directory, locale,
- 'LC_MESSAGES', self.domain + '.po')
- if os.path.exists(po_file):
- po_files.append((locale, po_file))
- mo_files.append(os.path.join(self.directory, locale,
- 'LC_MESSAGES',
- self.domain + '.mo'))
- else:
- po_files.append((self.locale, self.input_file))
- if self.output_file:
- mo_files.append(self.output_file)
- else:
- mo_files.append(os.path.join(self.directory, self.locale,
- 'LC_MESSAGES',
- self.domain + '.mo'))
-
- if not po_files:
- raise DistutilsOptionError('no message catalogs found')
-
- for idx, (locale, po_file) in enumerate(po_files):
- mo_file = mo_files[idx]
- infile = open(po_file, 'r')
- try:
- catalog = read_po(infile, locale)
- finally:
- infile.close()
-
- if self.statistics:
- translated = 0
- for message in list(catalog)[1:]:
- if message.string:
- translated +=1
- percentage = 0
- if len(catalog):
- percentage = translated * 100 // len(catalog)
- log.info('%d of %d messages (%d%%) translated in %r',
- translated, len(catalog), percentage, po_file)
-
- if catalog.fuzzy and not self.use_fuzzy:
- log.warn('catalog %r is marked as fuzzy, skipping', po_file)
- continue
-
- for message, errors in catalog.check():
- for error in errors:
- log.error('error: %s:%d: %s', po_file, message.lineno,
- error)
-
- log.info('compiling catalog %r to %r', po_file, mo_file)
-
- outfile = open(mo_file, 'wb')
- try:
- write_mo(outfile, catalog, use_fuzzy=self.use_fuzzy)
- finally:
- outfile.close()
-
-
-class extract_messages(Command):
- """Message extraction command for use in ``setup.py`` scripts.
-
- If correctly installed, this command is available to Setuptools-using
- setup scripts automatically. For projects using plain old ``distutils``,
- the command needs to be registered explicitly in ``setup.py``::
-
- from babel.messages.frontend import extract_messages
-
- setup(
- ...
- cmdclass = {'extract_messages': extract_messages}
- )
- """
-
- description = 'extract localizable strings from the project code'
- user_options = [
- ('charset=', None,
- 'charset to use in the output file'),
- ('keywords=', 'k',
- 'space-separated list of keywords to look for in addition to the '
- 'defaults'),
- ('no-default-keywords', None,
- 'do not include the default keywords'),
- ('mapping-file=', 'F',
- 'path to the mapping configuration file'),
- ('no-location', None,
- 'do not include location comments with filename and line number'),
- ('omit-header', None,
- 'do not include msgid "" entry in header'),
- ('output-file=', 'o',
- 'name of the output file'),
- ('width=', 'w',
- 'set output line width (default 76)'),
- ('no-wrap', None,
- 'do not break long message lines, longer than the output line width, '
- 'into several lines'),
- ('sort-output', None,
- 'generate sorted output (default False)'),
- ('sort-by-file', None,
- 'sort output by file location (default False)'),
- ('msgid-bugs-address=', None,
- 'set report address for msgid'),
- ('copyright-holder=', None,
- 'set copyright holder in output'),
- ('add-comments=', 'c',
- 'place comment block with TAG (or those preceding keyword lines) in '
- 'output file. Separate multiple TAGs with commas(,)'),
- ('strip-comments', None,
- 'strip the comment TAGs from the comments.'),
- ('input-dirs=', None,
- 'directories that should be scanned for messages. Separate multiple '
- 'directories with commas(,)'),
- ]
- boolean_options = [
- 'no-default-keywords', 'no-location', 'omit-header', 'no-wrap',
- 'sort-output', 'sort-by-file', 'strip-comments'
- ]
-
- def initialize_options(self):
- self.charset = 'utf-8'
- self.keywords = ''
- self._keywords = DEFAULT_KEYWORDS.copy()
- self.no_default_keywords = False
- self.mapping_file = None
- self.no_location = False
- self.omit_header = False
- self.output_file = None
- self.input_dirs = None
- self.width = None
- self.no_wrap = False
- self.sort_output = False
- self.sort_by_file = False
- self.msgid_bugs_address = None
- self.copyright_holder = None
- self.add_comments = None
- self._add_comments = []
- self.strip_comments = False
-
- def finalize_options(self):
- if self.no_default_keywords and not self.keywords:
- raise DistutilsOptionError('you must specify new keywords if you '
- 'disable the default ones')
- if self.no_default_keywords:
- self._keywords = {}
- if self.keywords:
- self._keywords.update(parse_keywords(self.keywords.split()))
-
- if not self.output_file:
- raise DistutilsOptionError('no output file specified')
- if self.no_wrap and self.width:
- raise DistutilsOptionError("'--no-wrap' and '--width' are mutually "
- "exclusive")
- if not self.no_wrap and not self.width:
- self.width = 76
- elif self.width is not None:
- self.width = int(self.width)
-
- if self.sort_output and self.sort_by_file:
- raise DistutilsOptionError("'--sort-output' and '--sort-by-file' "
- "are mutually exclusive")
-
- if self.input_dirs:
- self.input_dirs = re.split(',\s*', self.input_dirs)
- else:
- self.input_dirs = dict.fromkeys([k.split('.',1)[0]
- for k in self.distribution.packages
- ]).keys()
-
- if self.add_comments:
- self._add_comments = self.add_comments.split(',')
-
- def run(self):
- mappings = self._get_mappings()
- outfile = open(self.output_file, 'wb')
- try:
- catalog = Catalog(project=self.distribution.get_name(),
- version=self.distribution.get_version(),
- msgid_bugs_address=self.msgid_bugs_address,
- copyright_holder=self.copyright_holder,
- charset=self.charset)
-
- for dirname, (method_map, options_map) in mappings.items():
- def callback(filename, method, options):
- if method == 'ignore':
- return
- filepath = os.path.normpath(os.path.join(dirname, filename))
- optstr = ''
- if options:
- optstr = ' (%s)' % ', '.join(['%s="%s"' % (k, v) for
- k, v in options.items()])
- log.info('extracting messages from %s%s', filepath, optstr)
-
- extracted = extract_from_dir(dirname, method_map, options_map,
- keywords=self._keywords,
- comment_tags=self._add_comments,
- callback=callback,
- strip_comment_tags=
- self.strip_comments)
- for filename, lineno, message, comments, context in extracted:
- filepath = os.path.normpath(os.path.join(dirname, filename))
- catalog.add(message, None, [(filepath, lineno)],
- auto_comments=comments, context=context)
-
- log.info('writing PO template file to %s' % self.output_file)
- write_po(outfile, catalog, width=self.width,
- no_location=self.no_location,
- omit_header=self.omit_header,
- sort_output=self.sort_output,
- sort_by_file=self.sort_by_file)
- finally:
- outfile.close()
-
- def _get_mappings(self):
- mappings = {}
-
- if self.mapping_file:
- fileobj = open(self.mapping_file, 'U')
- try:
- method_map, options_map = parse_mapping(fileobj)
- for dirname in self.input_dirs:
- mappings[dirname] = method_map, options_map
- finally:
- fileobj.close()
-
- elif getattr(self.distribution, 'message_extractors', None):
- message_extractors = self.distribution.message_extractors
- for dirname, mapping in message_extractors.items():
- if isinstance(mapping, string_types):
- method_map, options_map = parse_mapping(BytesIO(mapping))
- else:
- method_map, options_map = [], {}
- for pattern, method, options in mapping:
- method_map.append((pattern, method))
- options_map[pattern] = options or {}
- mappings[dirname] = method_map, options_map
-
- else:
- for dirname in self.input_dirs:
- mappings[dirname] = DEFAULT_MAPPING, {}
-
- return mappings
-
-
-def check_message_extractors(dist, name, value):
- """Validate the ``message_extractors`` keyword argument to ``setup()``.
-
- :param dist: the distutils/setuptools ``Distribution`` object
- :param name: the name of the keyword argument (should always be
- "message_extractors")
- :param value: the value of the keyword argument
- :raise `DistutilsSetupError`: if the value is not valid
- """
- assert name == 'message_extractors'
- if not isinstance(value, dict):
- raise DistutilsSetupError('the value of the "message_extractors" '
- 'parameter must be a dictionary')
-
-
-class init_catalog(Command):
- """New catalog initialization command for use in ``setup.py`` scripts.
-
- If correctly installed, this command is available to Setuptools-using
- setup scripts automatically. For projects using plain old ``distutils``,
- the command needs to be registered explicitly in ``setup.py``::
-
- from babel.messages.frontend import init_catalog
-
- setup(
- ...
- cmdclass = {'init_catalog': init_catalog}
- )
- """
-
- description = 'create a new catalog based on a POT file'
- user_options = [
- ('domain=', 'D',
- "domain of PO file (default 'messages')"),
- ('input-file=', 'i',
- 'name of the input file'),
- ('output-dir=', 'd',
- 'path to output directory'),
- ('output-file=', 'o',
- "name of the output file (default "
- "'//LC_MESSAGES/.po')"),
- ('locale=', 'l',
- 'locale for the new localized catalog'),
- ('width=', 'w',
- 'set output line width (default 76)'),
- ('no-wrap', None,
- 'do not break long message lines, longer than the output line width, '
- 'into several lines'),
- ]
- boolean_options = ['no-wrap']
-
- def initialize_options(self):
- self.output_dir = None
- self.output_file = None
- self.input_file = None
- self.locale = None
- self.domain = 'messages'
- self.no_wrap = False
- self.width = None
-
- def finalize_options(self):
- if not self.input_file:
- raise DistutilsOptionError('you must specify the input file')
-
- if not self.locale:
- raise DistutilsOptionError('you must provide a locale for the '
- 'new catalog')
- try:
- self._locale = Locale.parse(self.locale)
- except UnknownLocaleError as e:
- raise DistutilsOptionError(e)
-
- if not self.output_file and not self.output_dir:
- raise DistutilsOptionError('you must specify the output directory')
- if not self.output_file:
- self.output_file = os.path.join(self.output_dir, self.locale,
- 'LC_MESSAGES', self.domain + '.po')
-
- if not os.path.exists(os.path.dirname(self.output_file)):
- os.makedirs(os.path.dirname(self.output_file))
- if self.no_wrap and self.width:
- raise DistutilsOptionError("'--no-wrap' and '--width' are mutually "
- "exclusive")
- if not self.no_wrap and not self.width:
- self.width = 76
- elif self.width is not None:
- self.width = int(self.width)
-
- def run(self):
- log.info('creating catalog %r based on %r', self.output_file,
- self.input_file)
-
- infile = open(self.input_file, 'r')
- try:
- # Although reading from the catalog template, read_po must be fed
- # the locale in order to correctly calculate plurals
- catalog = read_po(infile, locale=self.locale)
- finally:
- infile.close()
-
- catalog.locale = self._locale
- catalog.revision_date = datetime.now(LOCALTZ)
- catalog.fuzzy = False
-
- outfile = open(self.output_file, 'wb')
- try:
- write_po(outfile, catalog, width=self.width)
- finally:
- outfile.close()
-
-
-class update_catalog(Command):
- """Catalog merging command for use in ``setup.py`` scripts.
-
- If correctly installed, this command is available to Setuptools-using
- setup scripts automatically. For projects using plain old ``distutils``,
- the command needs to be registered explicitly in ``setup.py``::
-
- from babel.messages.frontend import update_catalog
-
- setup(
- ...
- cmdclass = {'update_catalog': update_catalog}
- )
-
- .. versionadded:: 0.9
- """
-
- description = 'update message catalogs from a POT file'
- user_options = [
- ('domain=', 'D',
- "domain of PO file (default 'messages')"),
- ('input-file=', 'i',
- 'name of the input file'),
- ('output-dir=', 'd',
- 'path to base directory containing the catalogs'),
- ('output-file=', 'o',
- "name of the output file (default "
- "'//LC_MESSAGES/.po')"),
- ('locale=', 'l',
- 'locale of the catalog to compile'),
- ('width=', 'w',
- 'set output line width (default 76)'),
- ('no-wrap', None,
- 'do not break long message lines, longer than the output line width, '
- 'into several lines'),
- ('ignore-obsolete=', None,
- 'whether to omit obsolete messages from the output'),
- ('no-fuzzy-matching', 'N',
- 'do not use fuzzy matching'),
- ('previous', None,
- 'keep previous msgids of translated messages')
- ]
- boolean_options = ['ignore_obsolete', 'no_fuzzy_matching', 'previous']
-
- def initialize_options(self):
- self.domain = 'messages'
- self.input_file = None
- self.output_dir = None
- self.output_file = None
- self.locale = None
- self.width = None
- self.no_wrap = False
- self.ignore_obsolete = False
- self.no_fuzzy_matching = False
- self.previous = False
-
- def finalize_options(self):
- if not self.input_file:
- raise DistutilsOptionError('you must specify the input file')
- if not self.output_file and not self.output_dir:
- raise DistutilsOptionError('you must specify the output file or '
- 'directory')
- if self.output_file and not self.locale:
- raise DistutilsOptionError('you must specify the locale')
- if self.no_wrap and self.width:
- raise DistutilsOptionError("'--no-wrap' and '--width' are mutually "
- "exclusive")
- if not self.no_wrap and not self.width:
- self.width = 76
- elif self.width is not None:
- self.width = int(self.width)
- if self.no_fuzzy_matching and self.previous:
- self.previous = False
-
- def run(self):
- po_files = []
- if not self.output_file:
- if self.locale:
- po_files.append((self.locale,
- os.path.join(self.output_dir, self.locale,
- 'LC_MESSAGES',
- self.domain + '.po')))
- else:
- for locale in os.listdir(self.output_dir):
- po_file = os.path.join(self.output_dir, locale,
- 'LC_MESSAGES',
- self.domain + '.po')
- if os.path.exists(po_file):
- po_files.append((locale, po_file))
- else:
- po_files.append((self.locale, self.output_file))
-
- domain = self.domain
- if not domain:
- domain = os.path.splitext(os.path.basename(self.input_file))[0]
-
- infile = open(self.input_file, 'U')
- try:
- template = read_po(infile)
- finally:
- infile.close()
-
- if not po_files:
- raise DistutilsOptionError('no message catalogs found')
-
- for locale, filename in po_files:
- log.info('updating catalog %r based on %r', filename,
- self.input_file)
- infile = open(filename, 'U')
- try:
- catalog = read_po(infile, locale=locale, domain=domain)
- finally:
- infile.close()
-
- catalog.update(template, self.no_fuzzy_matching)
-
- tmpname = os.path.join(os.path.dirname(filename),
- tempfile.gettempprefix() +
- os.path.basename(filename))
- tmpfile = open(tmpname, 'w')
- try:
- try:
- write_po(tmpfile, catalog,
- ignore_obsolete=self.ignore_obsolete,
- include_previous=self.previous, width=self.width)
- finally:
- tmpfile.close()
- except:
- os.remove(tmpname)
- raise
-
- try:
- os.rename(tmpname, filename)
- except OSError:
- # We're probably on Windows, which doesn't support atomic
- # renames, at least not through Python
- # If the error is in fact due to a permissions problem, that
- # same error is going to be raised from one of the following
- # operations
- os.remove(filename)
- shutil.copy(tmpname, filename)
- os.remove(tmpname)
-
-
-class CommandLineInterface(object):
- """Command-line interface.
-
- This class provides a simple command-line interface to the message
- extraction and PO file generation functionality.
- """
-
- usage = '%%prog %s [options] %s'
- version = '%%prog %s' % VERSION
- commands = {
- 'compile': 'compile message catalogs to MO files',
- 'extract': 'extract messages from source files and generate a POT file',
- 'init': 'create new message catalogs from a POT file',
- 'update': 'update existing message catalogs from a POT file'
- }
-
- def run(self, argv=sys.argv):
- """Main entry point of the command-line interface.
-
- :param argv: list of arguments passed on the command-line
- """
- self.parser = OptionParser(usage=self.usage % ('command', '[args]'),
- version=self.version)
- self.parser.disable_interspersed_args()
- self.parser.print_help = self._help
- self.parser.add_option('--list-locales', dest='list_locales',
- action='store_true',
- help="print all known locales and exit")
- self.parser.add_option('-v', '--verbose', action='store_const',
- dest='loglevel', const=logging.DEBUG,
- help='print as much as possible')
- self.parser.add_option('-q', '--quiet', action='store_const',
- dest='loglevel', const=logging.ERROR,
- help='print as little as possible')
- self.parser.set_defaults(list_locales=False, loglevel=logging.INFO)
-
- options, args = self.parser.parse_args(argv[1:])
-
- self._configure_logging(options.loglevel)
- if options.list_locales:
- identifiers = localedata.locale_identifiers()
- longest = max([len(identifier) for identifier in identifiers])
- identifiers.sort()
- format = u'%%-%ds %%s' % (longest + 1)
- for identifier in identifiers:
- locale = Locale.parse(identifier)
- output = format % (identifier, locale.english_name)
- print(output.encode(sys.stdout.encoding or
- getpreferredencoding() or
- 'ascii', 'replace'))
- return 0
-
- if not args:
- self.parser.error('no valid command or option passed. '
- 'Try the -h/--help option for more information.')
-
- cmdname = args[0]
- if cmdname not in self.commands:
- self.parser.error('unknown command "%s"' % cmdname)
-
- return getattr(self, cmdname)(args[1:])
-
- def _configure_logging(self, loglevel):
- self.log = logging.getLogger('babel')
- self.log.setLevel(loglevel)
- # Don't add a new handler for every instance initialization (#227), this
- # would cause duplicated output when the CommandLineInterface as an
- # normal Python class.
- if self.log.handlers:
- handler = self.log.handlers[0]
- else:
- handler = logging.StreamHandler()
- self.log.addHandler(handler)
- handler.setLevel(loglevel)
- formatter = logging.Formatter('%(message)s')
- handler.setFormatter(formatter)
-
- def _help(self):
- print(self.parser.format_help())
- print("commands:")
- longest = max([len(command) for command in self.commands])
- format = " %%-%ds %%s" % max(8, longest + 1)
- commands = sorted(self.commands.items())
- for name, description in commands:
- print(format % (name, description))
-
- def compile(self, argv):
- """Subcommand for compiling a message catalog to a MO file.
-
- :param argv: the command arguments
- :since: version 0.9
- """
- parser = OptionParser(usage=self.usage % ('compile', ''),
- description=self.commands['compile'])
- parser.add_option('--domain', '-D', dest='domain',
- help="domain of MO and PO files (default '%default')")
- parser.add_option('--directory', '-d', dest='directory',
- metavar='DIR', help='base directory of catalog files')
- parser.add_option('--locale', '-l', dest='locale', metavar='LOCALE',
- help='locale of the catalog')
- parser.add_option('--input-file', '-i', dest='input_file',
- metavar='FILE', help='name of the input file')
- parser.add_option('--output-file', '-o', dest='output_file',
- metavar='FILE',
- help="name of the output file (default "
- "'//LC_MESSAGES/"
- ".mo')")
- parser.add_option('--use-fuzzy', '-f', dest='use_fuzzy',
- action='store_true',
- help='also include fuzzy translations (default '
- '%default)')
- parser.add_option('--statistics', dest='statistics',
- action='store_true',
- help='print statistics about translations')
-
- parser.set_defaults(domain='messages', use_fuzzy=False,
- compile_all=False, statistics=False)
- options, args = parser.parse_args(argv)
-
- po_files = []
- mo_files = []
- if not options.input_file:
- if not options.directory:
- parser.error('you must specify either the input file or the '
- 'base directory')
- if options.locale:
- po_files.append((options.locale,
- os.path.join(options.directory,
- options.locale, 'LC_MESSAGES',
- options.domain + '.po')))
- mo_files.append(os.path.join(options.directory, options.locale,
- 'LC_MESSAGES',
- options.domain + '.mo'))
- else:
- for locale in os.listdir(options.directory):
- po_file = os.path.join(options.directory, locale,
- 'LC_MESSAGES', options.domain + '.po')
- if os.path.exists(po_file):
- po_files.append((locale, po_file))
- mo_files.append(os.path.join(options.directory, locale,
- 'LC_MESSAGES',
- options.domain + '.mo'))
- else:
- po_files.append((options.locale, options.input_file))
- if options.output_file:
- mo_files.append(options.output_file)
- else:
- if not options.directory:
- parser.error('you must specify either the input file or '
- 'the base directory')
- mo_files.append(os.path.join(options.directory, options.locale,
- 'LC_MESSAGES',
- options.domain + '.mo'))
- if not po_files:
- parser.error('no message catalogs found')
-
- for idx, (locale, po_file) in enumerate(po_files):
- mo_file = mo_files[idx]
- infile = open(po_file, 'r')
- try:
- catalog = read_po(infile, locale)
- finally:
- infile.close()
-
- if options.statistics:
- translated = 0
- for message in list(catalog)[1:]:
- if message.string:
- translated +=1
- percentage = 0
- if len(catalog):
- percentage = translated * 100 // len(catalog)
- self.log.info("%d of %d messages (%d%%) translated in %r",
- translated, len(catalog), percentage, po_file)
-
- if catalog.fuzzy and not options.use_fuzzy:
- self.log.warning('catalog %r is marked as fuzzy, skipping',
- po_file)
- continue
-
- for message, errors in catalog.check():
- for error in errors:
- self.log.error('error: %s:%d: %s', po_file, message.lineno,
- error)
-
- self.log.info('compiling catalog %r to %r', po_file, mo_file)
-
- outfile = open(mo_file, 'wb')
- try:
- write_mo(outfile, catalog, use_fuzzy=options.use_fuzzy)
- finally:
- outfile.close()
-
- def extract(self, argv):
- """Subcommand for extracting messages from source files and generating
- a POT file.
-
- :param argv: the command arguments
- """
- parser = OptionParser(usage=self.usage % ('extract', 'dir1 ...'),
- description=self.commands['extract'])
- parser.add_option('--charset', dest='charset',
- help='charset to use in the output (default '
- '"%default")')
- parser.add_option('-k', '--keyword', dest='keywords', action='append',
- help='keywords to look for in addition to the '
- 'defaults. You can specify multiple -k flags on '
- 'the command line.')
- parser.add_option('--no-default-keywords', dest='no_default_keywords',
- action='store_true',
- help="do not include the default keywords")
- parser.add_option('--mapping', '-F', dest='mapping_file',
- help='path to the extraction mapping file')
- parser.add_option('--no-location', dest='no_location',
- action='store_true',
- help='do not include location comments with filename '
- 'and line number')
- parser.add_option('--omit-header', dest='omit_header',
- action='store_true',
- help='do not include msgid "" entry in header')
- parser.add_option('-o', '--output', dest='output',
- help='path to the output POT file')
- parser.add_option('-w', '--width', dest='width', type='int',
- help="set output line width (default 76)")
- parser.add_option('--no-wrap', dest='no_wrap', action='store_true',
- help='do not break long message lines, longer than '
- 'the output line width, into several lines')
- parser.add_option('--sort-output', dest='sort_output',
- action='store_true',
- help='generate sorted output (default False)')
- parser.add_option('--sort-by-file', dest='sort_by_file',
- action='store_true',
- help='sort output by file location (default False)')
- parser.add_option('--msgid-bugs-address', dest='msgid_bugs_address',
- metavar='EMAIL@ADDRESS',
- help='set report address for msgid')
- parser.add_option('--copyright-holder', dest='copyright_holder',
- help='set copyright holder in output')
- parser.add_option('--project', dest='project',
- help='set project name in output')
- parser.add_option('--version', dest='version',
- help='set project version in output')
- parser.add_option('--add-comments', '-c', dest='comment_tags',
- metavar='TAG', action='append',
- help='place comment block with TAG (or those '
- 'preceding keyword lines) in output file. One '
- 'TAG per argument call')
- parser.add_option('--strip-comment-tags', '-s',
- dest='strip_comment_tags', action='store_true',
- help='Strip the comment tags from the comments.')
-
- parser.set_defaults(charset='utf-8', keywords=[],
- no_default_keywords=False, no_location=False,
- omit_header = False, width=None, no_wrap=False,
- sort_output=False, sort_by_file=False,
- comment_tags=[], strip_comment_tags=False)
- options, args = parser.parse_args(argv)
- if not args:
- parser.error('incorrect number of arguments')
-
- keywords = DEFAULT_KEYWORDS.copy()
- if options.no_default_keywords:
- if not options.keywords:
- parser.error('you must specify new keywords if you disable the '
- 'default ones')
- keywords = {}
- if options.keywords:
- keywords.update(parse_keywords(options.keywords))
-
- if options.mapping_file:
- fileobj = open(options.mapping_file, 'U')
- try:
- method_map, options_map = parse_mapping(fileobj)
- finally:
- fileobj.close()
- else:
- method_map = DEFAULT_MAPPING
- options_map = {}
-
- if options.width and options.no_wrap:
- parser.error("'--no-wrap' and '--width' are mutually exclusive.")
- elif not options.width and not options.no_wrap:
- options.width = 76
-
- if options.sort_output and options.sort_by_file:
- parser.error("'--sort-output' and '--sort-by-file' are mutually "
- "exclusive")
-
- catalog = Catalog(project=options.project,
- version=options.version,
- msgid_bugs_address=options.msgid_bugs_address,
- copyright_holder=options.copyright_holder,
- charset=options.charset)
-
- for dirname in args:
- if not os.path.isdir(dirname):
- parser.error('%r is not a directory' % dirname)
-
- def callback(filename, method, options):
- if method == 'ignore':
- return
- filepath = os.path.normpath(os.path.join(dirname, filename))
- optstr = ''
- if options:
- optstr = ' (%s)' % ', '.join(['%s="%s"' % (k, v) for
- k, v in options.items()])
- self.log.info('extracting messages from %s%s', filepath,
- optstr)
-
- extracted = extract_from_dir(dirname, method_map, options_map,
- keywords, options.comment_tags,
- callback=callback,
- strip_comment_tags=
- options.strip_comment_tags)
- for filename, lineno, message, comments, context in extracted:
- filepath = os.path.normpath(os.path.join(dirname, filename))
- catalog.add(message, None, [(filepath, lineno)],
- auto_comments=comments, context=context)
-
- catalog_charset = catalog.charset
- if options.output not in (None, '-'):
- self.log.info('writing PO template file to %s' % options.output)
- outfile = open(options.output, 'wb')
- close_output = True
- else:
- outfile = sys.stdout
-
- # This is a bit of a hack on Python 3. stdout is a text stream so
- # we need to find the underlying file when we write the PO. In
- # later versions of Babel we want the write_po function to accept
- # text or binary streams and automatically adjust the encoding.
- if not PY2 and hasattr(outfile, 'buffer'):
- catalog.charset = outfile.encoding
- outfile = outfile.buffer.raw
-
- close_output = False
-
- try:
- write_po(outfile, catalog, width=options.width,
- no_location=options.no_location,
- omit_header=options.omit_header,
- sort_output=options.sort_output,
- sort_by_file=options.sort_by_file)
- finally:
- if close_output:
- outfile.close()
- catalog.charset = catalog_charset
-
- def init(self, argv):
- """Subcommand for creating new message catalogs from a template.
-
- :param argv: the command arguments
- """
- parser = OptionParser(usage=self.usage % ('init', ''),
- description=self.commands['init'])
- parser.add_option('--domain', '-D', dest='domain',
- help="domain of PO file (default '%default')")
- parser.add_option('--input-file', '-i', dest='input_file',
- metavar='FILE', help='name of the input file')
- parser.add_option('--output-dir', '-d', dest='output_dir',
- metavar='DIR', help='path to output directory')
- parser.add_option('--output-file', '-o', dest='output_file',
- metavar='FILE',
- help="name of the output file (default "
- "'//LC_MESSAGES/"
- ".po')")
- parser.add_option('--locale', '-l', dest='locale', metavar='LOCALE',
- help='locale for the new localized catalog')
- parser.add_option('-w', '--width', dest='width', type='int',
- help="set output line width (default 76)")
- parser.add_option('--no-wrap', dest='no_wrap', action='store_true',
- help='do not break long message lines, longer than '
- 'the output line width, into several lines')
-
- parser.set_defaults(domain='messages')
- options, args = parser.parse_args(argv)
-
- if not options.locale:
- parser.error('you must provide a locale for the new catalog')
- try:
- locale = Locale.parse(options.locale)
- except UnknownLocaleError as e:
- parser.error(e)
-
- if not options.input_file:
- parser.error('you must specify the input file')
-
- if not options.output_file and not options.output_dir:
- parser.error('you must specify the output file or directory')
-
- if not options.output_file:
- options.output_file = os.path.join(options.output_dir,
- options.locale, 'LC_MESSAGES',
- options.domain + '.po')
- if not os.path.exists(os.path.dirname(options.output_file)):
- os.makedirs(os.path.dirname(options.output_file))
- if options.width and options.no_wrap:
- parser.error("'--no-wrap' and '--width' are mutually exclusive.")
- elif not options.width and not options.no_wrap:
- options.width = 76
-
- infile = open(options.input_file, 'r')
- try:
- # Although reading from the catalog template, read_po must be fed
- # the locale in order to correctly calculate plurals
- catalog = read_po(infile, locale=options.locale)
- finally:
- infile.close()
-
- catalog.locale = locale
- catalog.revision_date = datetime.now(LOCALTZ)
-
- self.log.info('creating catalog %r based on %r', options.output_file,
- options.input_file)
-
- outfile = open(options.output_file, 'wb')
- try:
- write_po(outfile, catalog, width=options.width)
- finally:
- outfile.close()
-
- def update(self, argv):
- """Subcommand for updating existing message catalogs from a template.
-
- :param argv: the command arguments
- :since: version 0.9
- """
- parser = OptionParser(usage=self.usage % ('update', ''),
- description=self.commands['update'])
- parser.add_option('--domain', '-D', dest='domain',
- help="domain of PO file (default '%default')")
- parser.add_option('--input-file', '-i', dest='input_file',
- metavar='FILE', help='name of the input file')
- parser.add_option('--output-dir', '-d', dest='output_dir',
- metavar='DIR', help='path to output directory')
- parser.add_option('--output-file', '-o', dest='output_file',
- metavar='FILE',
- help="name of the output file (default "
- "'//LC_MESSAGES/"
- ".po')")
- parser.add_option('--locale', '-l', dest='locale', metavar='LOCALE',
- help='locale of the translations catalog')
- parser.add_option('-w', '--width', dest='width', type='int',
- help="set output line width (default 76)")
- parser.add_option('--no-wrap', dest='no_wrap', action = 'store_true',
- help='do not break long message lines, longer than '
- 'the output line width, into several lines')
- parser.add_option('--ignore-obsolete', dest='ignore_obsolete',
- action='store_true',
- help='do not include obsolete messages in the output '
- '(default %default)')
- parser.add_option('--no-fuzzy-matching', '-N', dest='no_fuzzy_matching',
- action='store_true',
- help='do not use fuzzy matching (default %default)')
- parser.add_option('--previous', dest='previous', action='store_true',
- help='keep previous msgids of translated messages '
- '(default %default)')
-
- parser.set_defaults(domain='messages', ignore_obsolete=False,
- no_fuzzy_matching=False, previous=False)
- options, args = parser.parse_args(argv)
-
- if not options.input_file:
- parser.error('you must specify the input file')
- if not options.output_file and not options.output_dir:
- parser.error('you must specify the output file or directory')
- if options.output_file and not options.locale:
- parser.error('you must specify the locale')
- if options.no_fuzzy_matching and options.previous:
- options.previous = False
-
- po_files = []
- if not options.output_file:
- if options.locale:
- po_files.append((options.locale,
- os.path.join(options.output_dir,
- options.locale, 'LC_MESSAGES',
- options.domain + '.po')))
- else:
- for locale in os.listdir(options.output_dir):
- po_file = os.path.join(options.output_dir, locale,
- 'LC_MESSAGES',
- options.domain + '.po')
- if os.path.exists(po_file):
- po_files.append((locale, po_file))
- else:
- po_files.append((options.locale, options.output_file))
-
- domain = options.domain
- if not domain:
- domain = os.path.splitext(os.path.basename(options.input_file))[0]
-
- infile = open(options.input_file, 'U')
- try:
- template = read_po(infile)
- finally:
- infile.close()
-
- if not po_files:
- parser.error('no message catalogs found')
-
- if options.width and options.no_wrap:
- parser.error("'--no-wrap' and '--width' are mutually exclusive.")
- elif not options.width and not options.no_wrap:
- options.width = 76
- for locale, filename in po_files:
- self.log.info('updating catalog %r based on %r', filename,
- options.input_file)
- infile = open(filename, 'U')
- try:
- catalog = read_po(infile, locale=locale, domain=domain)
- finally:
- infile.close()
-
- catalog.update(template, options.no_fuzzy_matching)
-
- tmpname = os.path.join(os.path.dirname(filename),
- tempfile.gettempprefix() +
- os.path.basename(filename))
- tmpfile = open(tmpname, 'w')
- try:
- try:
- write_po(tmpfile, catalog,
- ignore_obsolete=options.ignore_obsolete,
- include_previous=options.previous,
- width=options.width)
- finally:
- tmpfile.close()
- except:
- os.remove(tmpname)
- raise
-
- try:
- os.rename(tmpname, filename)
- except OSError:
- # We're probably on Windows, which doesn't support atomic
- # renames, at least not through Python
- # If the error is in fact due to a permissions problem, that
- # same error is going to be raised from one of the following
- # operations
- os.remove(filename)
- shutil.copy(tmpname, filename)
- os.remove(tmpname)
-
-
-def main():
- return CommandLineInterface().run(sys.argv)
-
-
-def parse_mapping(fileobj, filename=None):
- """Parse an extraction method mapping from a file-like object.
-
- >>> buf = BytesIO(b'''
- ... [extractors]
- ... custom = mypackage.module:myfunc
- ...
- ... # Python source files
- ... [python: **.py]
- ...
- ... # Genshi templates
- ... [genshi: **/templates/**.html]
- ... include_attrs =
- ... [genshi: **/templates/**.txt]
- ... template_class = genshi.template:TextTemplate
- ... encoding = latin-1
- ...
- ... # Some custom extractor
- ... [custom: **/custom/*.*]
- ... ''')
-
- >>> method_map, options_map = parse_mapping(buf)
- >>> len(method_map)
- 4
-
- >>> method_map[0]
- ('**.py', 'python')
- >>> options_map['**.py']
- {}
- >>> method_map[1]
- ('**/templates/**.html', 'genshi')
- >>> options_map['**/templates/**.html']['include_attrs']
- ''
- >>> method_map[2]
- ('**/templates/**.txt', 'genshi')
- >>> options_map['**/templates/**.txt']['template_class']
- 'genshi.template:TextTemplate'
- >>> options_map['**/templates/**.txt']['encoding']
- 'latin-1'
-
- >>> method_map[3]
- ('**/custom/*.*', 'mypackage.module:myfunc')
- >>> options_map['**/custom/*.*']
- {}
-
- :param fileobj: a readable file-like object containing the configuration
- text to parse
- :see: `extract_from_directory`
- """
- extractors = {}
- method_map = []
- options_map = {}
-
- parser = RawConfigParser()
- parser._sections = odict(parser._sections) # We need ordered sections
- parser.readfp(fileobj, filename)
- for section in parser.sections():
- if section == 'extractors':
- extractors = dict(parser.items(section))
- else:
- method, pattern = [part.strip() for part in section.split(':', 1)]
- method_map.append((pattern, method))
- options_map[pattern] = dict(parser.items(section))
-
- if extractors:
- for idx, (pattern, method) in enumerate(method_map):
- if method in extractors:
- method = extractors[method]
- method_map[idx] = (pattern, method)
-
- return (method_map, options_map)
-
-
-def parse_keywords(strings=[]):
- """Parse keywords specifications from the given list of strings.
-
- >>> kw = parse_keywords(['_', 'dgettext:2', 'dngettext:2,3', 'pgettext:1c,2']).items()
- >>> kw.sort()
- >>> for keyword, indices in kw:
- ... print (keyword, indices)
- ('_', None)
- ('dgettext', (2,))
- ('dngettext', (2, 3))
- ('pgettext', ((1, 'c'), 2))
- """
- keywords = {}
- for string in strings:
- if ':' in string:
- funcname, indices = string.split(':')
- else:
- funcname, indices = string, None
- if funcname not in keywords:
- if indices:
- inds = []
- for x in indices.split(','):
- if x[-1] == 'c':
- inds.append((int(x[:-1]), 'c'))
- else:
- inds.append(int(x))
- indices = tuple(inds)
- keywords[funcname] = indices
- return keywords
-
-
-if __name__ == '__main__':
- main()
diff --git a/vendor/babel/messages/jslexer.py b/vendor/babel/messages/jslexer.py
deleted file mode 100644
index 22c6e1f9..00000000
--- a/vendor/babel/messages/jslexer.py
+++ /dev/null
@@ -1,166 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- babel.messages.jslexer
- ~~~~~~~~~~~~~~~~~~~~~~
-
- A simple JavaScript 1.5 lexer which is used for the JavaScript
- extractor.
-
- :copyright: (c) 2013 by the Babel Team.
- :license: BSD, see LICENSE for more details.
-"""
-
-from operator import itemgetter
-import re
-from babel._compat import unichr
-
-operators = [
- '+', '-', '*', '%', '!=', '==', '<', '>', '<=', '>=', '=',
- '+=', '-=', '*=', '%=', '<<', '>>', '>>>', '<<=', '>>=',
- '>>>=', '&', '&=', '|', '|=', '&&', '||', '^', '^=', '(', ')',
- '[', ']', '{', '}', '!', '--', '++', '~', ',', ';', '.', ':'
-]
-operators.sort(key=lambda a: -len(a))
-
-escapes = {'b': '\b', 'f': '\f', 'n': '\n', 'r': '\r', 't': '\t'}
-
-rules = [
- (None, re.compile(r'\s+(?u)')),
- (None, re.compile(r'' % (
- render_traceback(self, full=full),
- self.render_as_text().decode('utf-8', 'replace')
- )
-
- @property
- def is_template_syntax_error(self):
- """`True` if this is a template syntax error."""
- return isinstance(self.exc_value, TemplateSyntaxError)
-
- @property
- def exc_info(self):
- """Exception info tuple with a proxy around the frame objects."""
- return self.exc_type, self.exc_value, self.frames[0]
-
- @property
- def standard_exc_info(self):
- """Standard python exc_info for re-raising"""
- tb = self.frames[0]
- # the frame will be an actual traceback (or transparent proxy) if
- # we are on pypy or a python implementation with support for tproxy
- if type(tb) is not TracebackType:
- tb = tb.tb
- return self.exc_type, self.exc_value, tb
-
-
-def make_traceback(exc_info, source_hint=None):
- """Creates a processed traceback object from the exc_info."""
- exc_type, exc_value, tb = exc_info
- if isinstance(exc_value, TemplateSyntaxError):
- exc_info = translate_syntax_error(exc_value, source_hint)
- initial_skip = 0
- else:
- initial_skip = 1
- return translate_exception(exc_info, initial_skip)
-
-
-def translate_syntax_error(error, source=None):
- """Rewrites a syntax error to please traceback systems."""
- error.source = source
- error.translated = True
- exc_info = (error.__class__, error, None)
- filename = error.filename
- if filename is None:
- filename = ''
- return fake_exc_info(exc_info, filename, error.lineno)
-
-
-def translate_exception(exc_info, initial_skip=0):
- """If passed an exc_info it will automatically rewrite the exceptions
- all the way down to the correct line numbers and frames.
- """
- tb = exc_info[2]
- frames = []
-
- # skip some internal frames if wanted
- for x in range(initial_skip):
- if tb is not None:
- tb = tb.tb_next
- initial_tb = tb
-
- while tb is not None:
- # skip frames decorated with @internalcode. These are internal
- # calls we can't avoid and that are useless in template debugging
- # output.
- if tb.tb_frame.f_code in internal_code:
- tb = tb.tb_next
- continue
-
- # save a reference to the next frame if we override the current
- # one with a faked one.
- next = tb.tb_next
-
- # fake template exceptions
- template = tb.tb_frame.f_globals.get('__jinja_template__')
- if template is not None:
- lineno = template.get_corresponding_lineno(tb.tb_lineno)
- tb = fake_exc_info(exc_info[:2] + (tb,), template.filename,
- lineno)[2]
-
- frames.append(make_frame_proxy(tb))
- tb = next
-
- # if we don't have any exceptions in the frames left, we have to
- # reraise it unchanged.
- # XXX: can we backup here? when could this happen?
- if not frames:
- reraise(exc_info[0], exc_info[1], exc_info[2])
-
- return ProcessedTraceback(exc_info[0], exc_info[1], frames)
-
-
-def fake_exc_info(exc_info, filename, lineno):
- """Helper for `translate_exception`."""
- exc_type, exc_value, tb = exc_info
-
- # figure the real context out
- if tb is not None:
- real_locals = tb.tb_frame.f_locals.copy()
- ctx = real_locals.get('context')
- if ctx:
- locals = ctx.get_all()
- else:
- locals = {}
- for name, value in iteritems(real_locals):
- if name.startswith('l_') and value is not missing:
- locals[name[2:]] = value
-
- # if there is a local called __jinja_exception__, we get
- # rid of it to not break the debug functionality.
- locals.pop('__jinja_exception__', None)
- else:
- locals = {}
-
- # assamble fake globals we need
- globals = {
- '__name__': filename,
- '__file__': filename,
- '__jinja_exception__': exc_info[:2],
-
- # we don't want to keep the reference to the template around
- # to not cause circular dependencies, but we mark it as Jinja
- # frame for the ProcessedTraceback
- '__jinja_template__': None
- }
-
- # and fake the exception
- code = compile('\n' * (lineno - 1) + raise_helper, filename, 'exec')
-
- # if it's possible, change the name of the code. This won't work
- # on some python environments such as google appengine
- try:
- if tb is None:
- location = 'template'
- else:
- function = tb.tb_frame.f_code.co_name
- if function == 'root':
- location = 'top-level template code'
- elif function.startswith('block_'):
- location = 'block "%s"' % function[6:]
- else:
- location = 'template'
-
- if PY2:
- code = CodeType(0, code.co_nlocals, code.co_stacksize,
- code.co_flags, code.co_code, code.co_consts,
- code.co_names, code.co_varnames, filename,
- location, code.co_firstlineno,
- code.co_lnotab, (), ())
- else:
- code = CodeType(0, code.co_kwonlyargcount,
- code.co_nlocals, code.co_stacksize,
- code.co_flags, code.co_code, code.co_consts,
- code.co_names, code.co_varnames, filename,
- location, code.co_firstlineno,
- code.co_lnotab, (), ())
- except Exception as e:
- pass
-
- # execute the code and catch the new traceback
- try:
- exec(code, globals, locals)
- except:
- exc_info = sys.exc_info()
- new_tb = exc_info[2].tb_next
-
- # return without this frame
- return exc_info[:2] + (new_tb,)
-
-
-def _init_ugly_crap():
- """This function implements a few ugly things so that we can patch the
- traceback objects. The function returned allows resetting `tb_next` on
- any python traceback object. Do not attempt to use this on non cpython
- interpreters
- """
- import ctypes
- from types import TracebackType
-
- if PY2:
- # figure out size of _Py_ssize_t for Python 2:
- if hasattr(ctypes.pythonapi, 'Py_InitModule4_64'):
- _Py_ssize_t = ctypes.c_int64
- else:
- _Py_ssize_t = ctypes.c_int
- else:
- # platform ssize_t on Python 3
- _Py_ssize_t = ctypes.c_ssize_t
-
- # regular python
- class _PyObject(ctypes.Structure):
- pass
- _PyObject._fields_ = [
- ('ob_refcnt', _Py_ssize_t),
- ('ob_type', ctypes.POINTER(_PyObject))
- ]
-
- # python with trace
- if hasattr(sys, 'getobjects'):
- class _PyObject(ctypes.Structure):
- pass
- _PyObject._fields_ = [
- ('_ob_next', ctypes.POINTER(_PyObject)),
- ('_ob_prev', ctypes.POINTER(_PyObject)),
- ('ob_refcnt', _Py_ssize_t),
- ('ob_type', ctypes.POINTER(_PyObject))
- ]
-
- class _Traceback(_PyObject):
- pass
- _Traceback._fields_ = [
- ('tb_next', ctypes.POINTER(_Traceback)),
- ('tb_frame', ctypes.POINTER(_PyObject)),
- ('tb_lasti', ctypes.c_int),
- ('tb_lineno', ctypes.c_int)
- ]
-
- def tb_set_next(tb, next):
- """Set the tb_next attribute of a traceback object."""
- if not (isinstance(tb, TracebackType) and
- (next is None or isinstance(next, TracebackType))):
- raise TypeError('tb_set_next arguments must be traceback objects')
- obj = _Traceback.from_address(id(tb))
- if tb.tb_next is not None:
- old = _Traceback.from_address(id(tb.tb_next))
- old.ob_refcnt -= 1
- if next is None:
- obj.tb_next = ctypes.POINTER(_Traceback)()
- else:
- next = _Traceback.from_address(id(next))
- next.ob_refcnt += 1
- obj.tb_next = ctypes.pointer(next)
-
- return tb_set_next
-
-
-# try to get a tb_set_next implementation if we don't have transparent
-# proxies.
-tb_set_next = None
-if tproxy is None:
- try:
- tb_set_next = _init_ugly_crap()
- except:
- pass
- del _init_ugly_crap
diff --git a/vendor/jinja2/defaults.py b/vendor/jinja2/defaults.py
deleted file mode 100644
index 3717a722..00000000
--- a/vendor/jinja2/defaults.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.defaults
- ~~~~~~~~~~~~~~~
-
- Jinja default filters and tags.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-from jinja2._compat import range_type
-from jinja2.utils import generate_lorem_ipsum, Cycler, Joiner
-
-
-# defaults for the parser / lexer
-BLOCK_START_STRING = '{%'
-BLOCK_END_STRING = '%}'
-VARIABLE_START_STRING = '{{'
-VARIABLE_END_STRING = '}}'
-COMMENT_START_STRING = '{#'
-COMMENT_END_STRING = '#}'
-LINE_STATEMENT_PREFIX = None
-LINE_COMMENT_PREFIX = None
-TRIM_BLOCKS = False
-LSTRIP_BLOCKS = False
-NEWLINE_SEQUENCE = '\n'
-KEEP_TRAILING_NEWLINE = False
-
-
-# default filters, tests and namespace
-from jinja2.filters import FILTERS as DEFAULT_FILTERS
-from jinja2.tests import TESTS as DEFAULT_TESTS
-DEFAULT_NAMESPACE = {
- 'range': range_type,
- 'dict': dict,
- 'lipsum': generate_lorem_ipsum,
- 'cycler': Cycler,
- 'joiner': Joiner
-}
-
-
-# export all constants
-__all__ = tuple(x for x in locals().keys() if x.isupper())
diff --git a/vendor/jinja2/environment.py b/vendor/jinja2/environment.py
deleted file mode 100644
index 8b2572bb..00000000
--- a/vendor/jinja2/environment.py
+++ /dev/null
@@ -1,1213 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.environment
- ~~~~~~~~~~~~~~~~~~
-
- Provides a class that holds runtime and parsing time options.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import os
-import sys
-from jinja2 import nodes
-from jinja2.defaults import BLOCK_START_STRING, \
- BLOCK_END_STRING, VARIABLE_START_STRING, VARIABLE_END_STRING, \
- COMMENT_START_STRING, COMMENT_END_STRING, LINE_STATEMENT_PREFIX, \
- LINE_COMMENT_PREFIX, TRIM_BLOCKS, NEWLINE_SEQUENCE, \
- DEFAULT_FILTERS, DEFAULT_TESTS, DEFAULT_NAMESPACE, \
- KEEP_TRAILING_NEWLINE, LSTRIP_BLOCKS
-from jinja2.lexer import get_lexer, TokenStream
-from jinja2.parser import Parser
-from jinja2.nodes import EvalContext
-from jinja2.optimizer import optimize
-from jinja2.compiler import generate, CodeGenerator
-from jinja2.runtime import Undefined, new_context, Context
-from jinja2.exceptions import TemplateSyntaxError, TemplateNotFound, \
- TemplatesNotFound, TemplateRuntimeError
-from jinja2.utils import import_string, LRUCache, Markup, missing, \
- concat, consume, internalcode
-from jinja2._compat import imap, ifilter, string_types, iteritems, \
- text_type, reraise, implements_iterator, implements_to_string, \
- get_next, encode_filename, PY2, PYPY
-from functools import reduce
-
-
-# for direct template usage we have up to ten living environments
-_spontaneous_environments = LRUCache(10)
-
-# the function to create jinja traceback objects. This is dynamically
-# imported on the first exception in the exception handler.
-_make_traceback = None
-
-
-def get_spontaneous_environment(*args):
- """Return a new spontaneous environment. A spontaneous environment is an
- unnamed and unaccessible (in theory) environment that is used for
- templates generated from a string and not from the file system.
- """
- try:
- env = _spontaneous_environments.get(args)
- except TypeError:
- return Environment(*args)
- if env is not None:
- return env
- _spontaneous_environments[args] = env = Environment(*args)
- env.shared = True
- return env
-
-
-def create_cache(size):
- """Return the cache class for the given size."""
- if size == 0:
- return None
- if size < 0:
- return {}
- return LRUCache(size)
-
-
-def copy_cache(cache):
- """Create an empty copy of the given cache."""
- if cache is None:
- return None
- elif type(cache) is dict:
- return {}
- return LRUCache(cache.capacity)
-
-
-def load_extensions(environment, extensions):
- """Load the extensions from the list and bind it to the environment.
- Returns a dict of instantiated environments.
- """
- result = {}
- for extension in extensions:
- if isinstance(extension, string_types):
- extension = import_string(extension)
- result[extension.identifier] = extension(environment)
- return result
-
-
-def _environment_sanity_check(environment):
- """Perform a sanity check on the environment."""
- assert issubclass(environment.undefined, Undefined), 'undefined must ' \
- 'be a subclass of undefined because filters depend on it.'
- assert environment.block_start_string != \
- environment.variable_start_string != \
- environment.comment_start_string, 'block, variable and comment ' \
- 'start strings must be different'
- assert environment.newline_sequence in ('\r', '\r\n', '\n'), \
- 'newline_sequence set to unknown line ending string.'
- return environment
-
-
-class Environment(object):
- r"""The core component of Jinja is the `Environment`. It contains
- important shared variables like configuration, filters, tests,
- globals and others. Instances of this class may be modified if
- they are not shared and if no template was loaded so far.
- Modifications on environments after the first template was loaded
- will lead to surprising effects and undefined behavior.
-
- Here are the possible initialization parameters:
-
- `block_start_string`
- The string marking the beginning of a block. Defaults to ``'{%'``.
-
- `block_end_string`
- The string marking the end of a block. Defaults to ``'%}'``.
-
- `variable_start_string`
- The string marking the beginning of a print statement.
- Defaults to ``'{{'``.
-
- `variable_end_string`
- The string marking the end of a print statement. Defaults to
- ``'}}'``.
-
- `comment_start_string`
- The string marking the beginning of a comment. Defaults to ``'{#'``.
-
- `comment_end_string`
- The string marking the end of a comment. Defaults to ``'#}'``.
-
- `line_statement_prefix`
- If given and a string, this will be used as prefix for line based
- statements. See also :ref:`line-statements`.
-
- `line_comment_prefix`
- If given and a string, this will be used as prefix for line based
- comments. See also :ref:`line-statements`.
-
- .. versionadded:: 2.2
-
- `trim_blocks`
- If this is set to ``True`` the first newline after a block is
- removed (block, not variable tag!). Defaults to `False`.
-
- `lstrip_blocks`
- If this is set to ``True`` leading spaces and tabs are stripped
- from the start of a line to a block. Defaults to `False`.
-
- `newline_sequence`
- The sequence that starts a newline. Must be one of ``'\r'``,
- ``'\n'`` or ``'\r\n'``. The default is ``'\n'`` which is a
- useful default for Linux and OS X systems as well as web
- applications.
-
- `keep_trailing_newline`
- Preserve the trailing newline when rendering templates.
- The default is ``False``, which causes a single newline,
- if present, to be stripped from the end of the template.
-
- .. versionadded:: 2.7
-
- `extensions`
- List of Jinja extensions to use. This can either be import paths
- as strings or extension classes. For more information have a
- look at :ref:`the extensions documentation `.
-
- `optimized`
- should the optimizer be enabled? Default is `True`.
-
- `undefined`
- :class:`Undefined` or a subclass of it that is used to represent
- undefined values in the template.
-
- `finalize`
- A callable that can be used to process the result of a variable
- expression before it is output. For example one can convert
- `None` implicitly into an empty string here.
-
- `autoescape`
- If set to true the XML/HTML autoescaping feature is enabled by
- default. For more details about autoescaping see
- :class:`~jinja2.utils.Markup`. As of Jinja 2.4 this can also
- be a callable that is passed the template name and has to
- return `True` or `False` depending on autoescape should be
- enabled by default.
-
- .. versionchanged:: 2.4
- `autoescape` can now be a function
-
- `loader`
- The template loader for this environment.
-
- `cache_size`
- The size of the cache. Per default this is ``400`` which means
- that if more than 400 templates are loaded the loader will clean
- out the least recently used template. If the cache size is set to
- ``0`` templates are recompiled all the time, if the cache size is
- ``-1`` the cache will not be cleaned.
-
- .. versionchanged:: 2.8
- The cache size was increased to 400 from a low 50.
-
- `auto_reload`
- Some loaders load templates from locations where the template
- sources may change (ie: file system or database). If
- `auto_reload` is set to `True` (default) every time a template is
- requested the loader checks if the source changed and if yes, it
- will reload the template. For higher performance it's possible to
- disable that.
-
- `bytecode_cache`
- If set to a bytecode cache object, this object will provide a
- cache for the internal Jinja bytecode so that templates don't
- have to be parsed if they were not changed.
-
- See :ref:`bytecode-cache` for more information.
- """
-
- #: if this environment is sandboxed. Modifying this variable won't make
- #: the environment sandboxed though. For a real sandboxed environment
- #: have a look at jinja2.sandbox. This flag alone controls the code
- #: generation by the compiler.
- sandboxed = False
-
- #: True if the environment is just an overlay
- overlayed = False
-
- #: the environment this environment is linked to if it is an overlay
- linked_to = None
-
- #: shared environments have this set to `True`. A shared environment
- #: must not be modified
- shared = False
-
- #: these are currently EXPERIMENTAL undocumented features.
- exception_handler = None
- exception_formatter = None
-
- #: the class that is used for code generation. See
- #: :class:`~jinja2.compiler.CodeGenerator` for more information.
- code_generator_class = CodeGenerator
-
- #: the context class thatis used for templates. See
- #: :class:`~jinja2.runtime.Context` for more information.
- context_class = Context
-
- def __init__(self,
- block_start_string=BLOCK_START_STRING,
- block_end_string=BLOCK_END_STRING,
- variable_start_string=VARIABLE_START_STRING,
- variable_end_string=VARIABLE_END_STRING,
- comment_start_string=COMMENT_START_STRING,
- comment_end_string=COMMENT_END_STRING,
- line_statement_prefix=LINE_STATEMENT_PREFIX,
- line_comment_prefix=LINE_COMMENT_PREFIX,
- trim_blocks=TRIM_BLOCKS,
- lstrip_blocks=LSTRIP_BLOCKS,
- newline_sequence=NEWLINE_SEQUENCE,
- keep_trailing_newline=KEEP_TRAILING_NEWLINE,
- extensions=(),
- optimized=True,
- undefined=Undefined,
- finalize=None,
- autoescape=False,
- loader=None,
- cache_size=400,
- auto_reload=True,
- bytecode_cache=None):
- # !!Important notice!!
- # The constructor accepts quite a few arguments that should be
- # passed by keyword rather than position. However it's important to
- # not change the order of arguments because it's used at least
- # internally in those cases:
- # - spontaneous environments (i18n extension and Template)
- # - unittests
- # If parameter changes are required only add parameters at the end
- # and don't change the arguments (or the defaults!) of the arguments
- # existing already.
-
- # lexer / parser information
- self.block_start_string = block_start_string
- self.block_end_string = block_end_string
- self.variable_start_string = variable_start_string
- self.variable_end_string = variable_end_string
- self.comment_start_string = comment_start_string
- self.comment_end_string = comment_end_string
- self.line_statement_prefix = line_statement_prefix
- self.line_comment_prefix = line_comment_prefix
- self.trim_blocks = trim_blocks
- self.lstrip_blocks = lstrip_blocks
- self.newline_sequence = newline_sequence
- self.keep_trailing_newline = keep_trailing_newline
-
- # runtime information
- self.undefined = undefined
- self.optimized = optimized
- self.finalize = finalize
- self.autoescape = autoescape
-
- # defaults
- self.filters = DEFAULT_FILTERS.copy()
- self.tests = DEFAULT_TESTS.copy()
- self.globals = DEFAULT_NAMESPACE.copy()
-
- # set the loader provided
- self.loader = loader
- self.cache = create_cache(cache_size)
- self.bytecode_cache = bytecode_cache
- self.auto_reload = auto_reload
-
- # load extensions
- self.extensions = load_extensions(self, extensions)
-
- _environment_sanity_check(self)
-
- def add_extension(self, extension):
- """Adds an extension after the environment was created.
-
- .. versionadded:: 2.5
- """
- self.extensions.update(load_extensions(self, [extension]))
-
- def extend(self, **attributes):
- """Add the items to the instance of the environment if they do not exist
- yet. This is used by :ref:`extensions ` to register
- callbacks and configuration values without breaking inheritance.
- """
- for key, value in iteritems(attributes):
- if not hasattr(self, key):
- setattr(self, key, value)
-
- def overlay(self, block_start_string=missing, block_end_string=missing,
- variable_start_string=missing, variable_end_string=missing,
- comment_start_string=missing, comment_end_string=missing,
- line_statement_prefix=missing, line_comment_prefix=missing,
- trim_blocks=missing, lstrip_blocks=missing,
- extensions=missing, optimized=missing,
- undefined=missing, finalize=missing, autoescape=missing,
- loader=missing, cache_size=missing, auto_reload=missing,
- bytecode_cache=missing):
- """Create a new overlay environment that shares all the data with the
- current environment except for cache and the overridden attributes.
- Extensions cannot be removed for an overlayed environment. An overlayed
- environment automatically gets all the extensions of the environment it
- is linked to plus optional extra extensions.
-
- Creating overlays should happen after the initial environment was set
- up completely. Not all attributes are truly linked, some are just
- copied over so modifications on the original environment may not shine
- through.
- """
- args = dict(locals())
- del args['self'], args['cache_size'], args['extensions']
-
- rv = object.__new__(self.__class__)
- rv.__dict__.update(self.__dict__)
- rv.overlayed = True
- rv.linked_to = self
-
- for key, value in iteritems(args):
- if value is not missing:
- setattr(rv, key, value)
-
- if cache_size is not missing:
- rv.cache = create_cache(cache_size)
- else:
- rv.cache = copy_cache(self.cache)
-
- rv.extensions = {}
- for key, value in iteritems(self.extensions):
- rv.extensions[key] = value.bind(rv)
- if extensions is not missing:
- rv.extensions.update(load_extensions(rv, extensions))
-
- return _environment_sanity_check(rv)
-
- lexer = property(get_lexer, doc="The lexer for this environment.")
-
- def iter_extensions(self):
- """Iterates over the extensions by priority."""
- return iter(sorted(self.extensions.values(),
- key=lambda x: x.priority))
-
- def getitem(self, obj, argument):
- """Get an item or attribute of an object but prefer the item."""
- try:
- return obj[argument]
- except (TypeError, LookupError):
- if isinstance(argument, string_types):
- try:
- attr = str(argument)
- except Exception:
- pass
- else:
- try:
- return getattr(obj, attr)
- except AttributeError:
- pass
- return self.undefined(obj=obj, name=argument)
-
- def getattr(self, obj, attribute):
- """Get an item or attribute of an object but prefer the attribute.
- Unlike :meth:`getitem` the attribute *must* be a bytestring.
- """
- try:
- return getattr(obj, attribute)
- except AttributeError:
- pass
- try:
- return obj[attribute]
- except (TypeError, LookupError, AttributeError):
- return self.undefined(obj=obj, name=attribute)
-
- def call_filter(self, name, value, args=None, kwargs=None,
- context=None, eval_ctx=None):
- """Invokes a filter on a value the same way the compiler does it.
-
- .. versionadded:: 2.7
- """
- func = self.filters.get(name)
- if func is None:
- raise TemplateRuntimeError('no filter named %r' % name)
- args = [value] + list(args or ())
- if getattr(func, 'contextfilter', False):
- if context is None:
- raise TemplateRuntimeError('Attempted to invoke context '
- 'filter without context')
- args.insert(0, context)
- elif getattr(func, 'evalcontextfilter', False):
- if eval_ctx is None:
- if context is not None:
- eval_ctx = context.eval_ctx
- else:
- eval_ctx = EvalContext(self)
- args.insert(0, eval_ctx)
- elif getattr(func, 'environmentfilter', False):
- args.insert(0, self)
- return func(*args, **(kwargs or {}))
-
- def call_test(self, name, value, args=None, kwargs=None):
- """Invokes a test on a value the same way the compiler does it.
-
- .. versionadded:: 2.7
- """
- func = self.tests.get(name)
- if func is None:
- raise TemplateRuntimeError('no test named %r' % name)
- return func(value, *(args or ()), **(kwargs or {}))
-
- @internalcode
- def parse(self, source, name=None, filename=None):
- """Parse the sourcecode and return the abstract syntax tree. This
- tree of nodes is used by the compiler to convert the template into
- executable source- or bytecode. This is useful for debugging or to
- extract information from templates.
-
- If you are :ref:`developing Jinja2 extensions `
- this gives you a good overview of the node tree generated.
- """
- try:
- return self._parse(source, name, filename)
- except TemplateSyntaxError:
- exc_info = sys.exc_info()
- self.handle_exception(exc_info, source_hint=source)
-
- def _parse(self, source, name, filename):
- """Internal parsing function used by `parse` and `compile`."""
- return Parser(self, source, name, encode_filename(filename)).parse()
-
- def lex(self, source, name=None, filename=None):
- """Lex the given sourcecode and return a generator that yields
- tokens as tuples in the form ``(lineno, token_type, value)``.
- This can be useful for :ref:`extension development `
- and debugging templates.
-
- This does not perform preprocessing. If you want the preprocessing
- of the extensions to be applied you have to filter source through
- the :meth:`preprocess` method.
- """
- source = text_type(source)
- try:
- return self.lexer.tokeniter(source, name, filename)
- except TemplateSyntaxError:
- exc_info = sys.exc_info()
- self.handle_exception(exc_info, source_hint=source)
-
- def preprocess(self, source, name=None, filename=None):
- """Preprocesses the source with all extensions. This is automatically
- called for all parsing and compiling methods but *not* for :meth:`lex`
- because there you usually only want the actual source tokenized.
- """
- return reduce(lambda s, e: e.preprocess(s, name, filename),
- self.iter_extensions(), text_type(source))
-
- def _tokenize(self, source, name, filename=None, state=None):
- """Called by the parser to do the preprocessing and filtering
- for all the extensions. Returns a :class:`~jinja2.lexer.TokenStream`.
- """
- source = self.preprocess(source, name, filename)
- stream = self.lexer.tokenize(source, name, filename, state)
- for ext in self.iter_extensions():
- stream = ext.filter_stream(stream)
- if not isinstance(stream, TokenStream):
- stream = TokenStream(stream, name, filename)
- return stream
-
- def _generate(self, source, name, filename, defer_init=False):
- """Internal hook that can be overridden to hook a different generate
- method in.
-
- .. versionadded:: 2.5
- """
- return generate(source, self, name, filename, defer_init=defer_init)
-
- def _compile(self, source, filename):
- """Internal hook that can be overridden to hook a different compile
- method in.
-
- .. versionadded:: 2.5
- """
- return compile(source, filename, 'exec')
-
- @internalcode
- def compile(self, source, name=None, filename=None, raw=False,
- defer_init=False):
- """Compile a node or template source code. The `name` parameter is
- the load name of the template after it was joined using
- :meth:`join_path` if necessary, not the filename on the file system.
- the `filename` parameter is the estimated filename of the template on
- the file system. If the template came from a database or memory this
- can be omitted.
-
- The return value of this method is a python code object. If the `raw`
- parameter is `True` the return value will be a string with python
- code equivalent to the bytecode returned otherwise. This method is
- mainly used internally.
-
- `defer_init` is use internally to aid the module code generator. This
- causes the generated code to be able to import without the global
- environment variable to be set.
-
- .. versionadded:: 2.4
- `defer_init` parameter added.
- """
- source_hint = None
- try:
- if isinstance(source, string_types):
- source_hint = source
- source = self._parse(source, name, filename)
- if self.optimized:
- source = optimize(source, self)
- source = self._generate(source, name, filename,
- defer_init=defer_init)
- if raw:
- return source
- if filename is None:
- filename = ''
- else:
- filename = encode_filename(filename)
- return self._compile(source, filename)
- except TemplateSyntaxError:
- exc_info = sys.exc_info()
- self.handle_exception(exc_info, source_hint=source_hint)
-
- def compile_expression(self, source, undefined_to_none=True):
- """A handy helper method that returns a callable that accepts keyword
- arguments that appear as variables in the expression. If called it
- returns the result of the expression.
-
- This is useful if applications want to use the same rules as Jinja
- in template "configuration files" or similar situations.
-
- Example usage:
-
- >>> env = Environment()
- >>> expr = env.compile_expression('foo == 42')
- >>> expr(foo=23)
- False
- >>> expr(foo=42)
- True
-
- Per default the return value is converted to `None` if the
- expression returns an undefined value. This can be changed
- by setting `undefined_to_none` to `False`.
-
- >>> env.compile_expression('var')() is None
- True
- >>> env.compile_expression('var', undefined_to_none=False)()
- Undefined
-
- .. versionadded:: 2.1
- """
- parser = Parser(self, source, state='variable')
- exc_info = None
- try:
- expr = parser.parse_expression()
- if not parser.stream.eos:
- raise TemplateSyntaxError('chunk after expression',
- parser.stream.current.lineno,
- None, None)
- expr.set_environment(self)
- except TemplateSyntaxError:
- exc_info = sys.exc_info()
- if exc_info is not None:
- self.handle_exception(exc_info, source_hint=source)
- body = [nodes.Assign(nodes.Name('result', 'store'), expr, lineno=1)]
- template = self.from_string(nodes.Template(body, lineno=1))
- return TemplateExpression(template, undefined_to_none)
-
- def compile_templates(self, target, extensions=None, filter_func=None,
- zip='deflated', log_function=None,
- ignore_errors=True, py_compile=False):
- """Finds all the templates the loader can find, compiles them
- and stores them in `target`. If `zip` is `None`, instead of in a
- zipfile, the templates will be stored in a directory.
- By default a deflate zip algorithm is used. To switch to
- the stored algorithm, `zip` can be set to ``'stored'``.
-
- `extensions` and `filter_func` are passed to :meth:`list_templates`.
- Each template returned will be compiled to the target folder or
- zipfile.
-
- By default template compilation errors are ignored. In case a
- log function is provided, errors are logged. If you want template
- syntax errors to abort the compilation you can set `ignore_errors`
- to `False` and you will get an exception on syntax errors.
-
- If `py_compile` is set to `True` .pyc files will be written to the
- target instead of standard .py files. This flag does not do anything
- on pypy and Python 3 where pyc files are not picked up by itself and
- don't give much benefit.
-
- .. versionadded:: 2.4
- """
- from jinja2.loaders import ModuleLoader
-
- if log_function is None:
- log_function = lambda x: None
-
- if py_compile:
- if not PY2 or PYPY:
- from warnings import warn
- warn(Warning('py_compile has no effect on pypy or Python 3'))
- py_compile = False
- else:
- import imp
- import marshal
- py_header = imp.get_magic() + \
- u'\xff\xff\xff\xff'.encode('iso-8859-15')
-
- # Python 3.3 added a source filesize to the header
- if sys.version_info >= (3, 3):
- py_header += u'\x00\x00\x00\x00'.encode('iso-8859-15')
-
- def write_file(filename, data, mode):
- if zip:
- info = ZipInfo(filename)
- info.external_attr = 0o755 << 16
- zip_file.writestr(info, data)
- else:
- f = open(os.path.join(target, filename), mode)
- try:
- f.write(data)
- finally:
- f.close()
-
- if zip is not None:
- from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED, ZIP_STORED
- zip_file = ZipFile(target, 'w', dict(deflated=ZIP_DEFLATED,
- stored=ZIP_STORED)[zip])
- log_function('Compiling into Zip archive "%s"' % target)
- else:
- if not os.path.isdir(target):
- os.makedirs(target)
- log_function('Compiling into folder "%s"' % target)
-
- try:
- for name in self.list_templates(extensions, filter_func):
- source, filename, _ = self.loader.get_source(self, name)
- try:
- code = self.compile(source, name, filename, True, True)
- except TemplateSyntaxError as e:
- if not ignore_errors:
- raise
- log_function('Could not compile "%s": %s' % (name, e))
- continue
-
- filename = ModuleLoader.get_module_filename(name)
-
- if py_compile:
- c = self._compile(code, encode_filename(filename))
- write_file(filename + 'c', py_header +
- marshal.dumps(c), 'wb')
- log_function('Byte-compiled "%s" as %s' %
- (name, filename + 'c'))
- else:
- write_file(filename, code, 'w')
- log_function('Compiled "%s" as %s' % (name, filename))
- finally:
- if zip:
- zip_file.close()
-
- log_function('Finished compiling templates')
-
- def list_templates(self, extensions=None, filter_func=None):
- """Returns a list of templates for this environment. This requires
- that the loader supports the loader's
- :meth:`~BaseLoader.list_templates` method.
-
- If there are other files in the template folder besides the
- actual templates, the returned list can be filtered. There are two
- ways: either `extensions` is set to a list of file extensions for
- templates, or a `filter_func` can be provided which is a callable that
- is passed a template name and should return `True` if it should end up
- in the result list.
-
- If the loader does not support that, a :exc:`TypeError` is raised.
-
- .. versionadded:: 2.4
- """
- x = self.loader.list_templates()
- if extensions is not None:
- if filter_func is not None:
- raise TypeError('either extensions or filter_func '
- 'can be passed, but not both')
- filter_func = lambda x: '.' in x and \
- x.rsplit('.', 1)[1] in extensions
- if filter_func is not None:
- x = list(ifilter(filter_func, x))
- return x
-
- def handle_exception(self, exc_info=None, rendered=False, source_hint=None):
- """Exception handling helper. This is used internally to either raise
- rewritten exceptions or return a rendered traceback for the template.
- """
- global _make_traceback
- if exc_info is None:
- exc_info = sys.exc_info()
-
- # the debugging module is imported when it's used for the first time.
- # we're doing a lot of stuff there and for applications that do not
- # get any exceptions in template rendering there is no need to load
- # all of that.
- if _make_traceback is None:
- from jinja2.debug import make_traceback as _make_traceback
- traceback = _make_traceback(exc_info, source_hint)
- if rendered and self.exception_formatter is not None:
- return self.exception_formatter(traceback)
- if self.exception_handler is not None:
- self.exception_handler(traceback)
- exc_type, exc_value, tb = traceback.standard_exc_info
- reraise(exc_type, exc_value, tb)
-
- def join_path(self, template, parent):
- """Join a template with the parent. By default all the lookups are
- relative to the loader root so this method returns the `template`
- parameter unchanged, but if the paths should be relative to the
- parent template, this function can be used to calculate the real
- template name.
-
- Subclasses may override this method and implement template path
- joining here.
- """
- return template
-
- @internalcode
- def _load_template(self, name, globals):
- if self.loader is None:
- raise TypeError('no loader for this environment specified')
- try:
- # use abs path for cache key
- cache_key = self.loader.get_source(self, name)[1]
- except RuntimeError:
- # if loader does not implement get_source()
- cache_key = None
- # if template is not file, use name for cache key
- if cache_key is None:
- cache_key = name
- if self.cache is not None:
- template = self.cache.get(cache_key)
- if template is not None and (not self.auto_reload or
- template.is_up_to_date):
- return template
- template = self.loader.load(self, name, globals)
- if self.cache is not None:
- self.cache[cache_key] = template
- return template
-
- @internalcode
- def get_template(self, name, parent=None, globals=None):
- """Load a template from the loader. If a loader is configured this
- method ask the loader for the template and returns a :class:`Template`.
- If the `parent` parameter is not `None`, :meth:`join_path` is called
- to get the real template name before loading.
-
- The `globals` parameter can be used to provide template wide globals.
- These variables are available in the context at render time.
-
- If the template does not exist a :exc:`TemplateNotFound` exception is
- raised.
-
- .. versionchanged:: 2.4
- If `name` is a :class:`Template` object it is returned from the
- function unchanged.
- """
- if isinstance(name, Template):
- return name
- if parent is not None:
- name = self.join_path(name, parent)
- return self._load_template(name, self.make_globals(globals))
-
- @internalcode
- def select_template(self, names, parent=None, globals=None):
- """Works like :meth:`get_template` but tries a number of templates
- before it fails. If it cannot find any of the templates, it will
- raise a :exc:`TemplatesNotFound` exception.
-
- .. versionadded:: 2.3
-
- .. versionchanged:: 2.4
- If `names` contains a :class:`Template` object it is returned
- from the function unchanged.
- """
- if not names:
- raise TemplatesNotFound(message=u'Tried to select from an empty list '
- u'of templates.')
- globals = self.make_globals(globals)
- for name in names:
- if isinstance(name, Template):
- return name
- if parent is not None:
- name = self.join_path(name, parent)
- try:
- return self._load_template(name, globals)
- except TemplateNotFound:
- pass
- raise TemplatesNotFound(names)
-
- @internalcode
- def get_or_select_template(self, template_name_or_list,
- parent=None, globals=None):
- """Does a typecheck and dispatches to :meth:`select_template`
- if an iterable of template names is given, otherwise to
- :meth:`get_template`.
-
- .. versionadded:: 2.3
- """
- if isinstance(template_name_or_list, string_types):
- return self.get_template(template_name_or_list, parent, globals)
- elif isinstance(template_name_or_list, Template):
- return template_name_or_list
- return self.select_template(template_name_or_list, parent, globals)
-
- def from_string(self, source, globals=None, template_class=None):
- """Load a template from a string. This parses the source given and
- returns a :class:`Template` object.
- """
- globals = self.make_globals(globals)
- cls = template_class or self.template_class
- return cls.from_code(self, self.compile(source), globals, None)
-
- def make_globals(self, d):
- """Return a dict for the globals."""
- if not d:
- return self.globals
- return dict(self.globals, **d)
-
-
-class Template(object):
- """The central template object. This class represents a compiled template
- and is used to evaluate it.
-
- Normally the template object is generated from an :class:`Environment` but
- it also has a constructor that makes it possible to create a template
- instance directly using the constructor. It takes the same arguments as
- the environment constructor but it's not possible to specify a loader.
-
- Every template object has a few methods and members that are guaranteed
- to exist. However it's important that a template object should be
- considered immutable. Modifications on the object are not supported.
-
- Template objects created from the constructor rather than an environment
- do have an `environment` attribute that points to a temporary environment
- that is probably shared with other templates created with the constructor
- and compatible settings.
-
- >>> template = Template('Hello {{ name }}!')
- >>> template.render(name='John Doe') == u'Hello John Doe!'
- True
- >>> stream = template.stream(name='John Doe')
- >>> next(stream) == u'Hello John Doe!'
- True
- >>> next(stream)
- Traceback (most recent call last):
- ...
- StopIteration
- """
-
- def __new__(cls, source,
- block_start_string=BLOCK_START_STRING,
- block_end_string=BLOCK_END_STRING,
- variable_start_string=VARIABLE_START_STRING,
- variable_end_string=VARIABLE_END_STRING,
- comment_start_string=COMMENT_START_STRING,
- comment_end_string=COMMENT_END_STRING,
- line_statement_prefix=LINE_STATEMENT_PREFIX,
- line_comment_prefix=LINE_COMMENT_PREFIX,
- trim_blocks=TRIM_BLOCKS,
- lstrip_blocks=LSTRIP_BLOCKS,
- newline_sequence=NEWLINE_SEQUENCE,
- keep_trailing_newline=KEEP_TRAILING_NEWLINE,
- extensions=(),
- optimized=True,
- undefined=Undefined,
- finalize=None,
- autoescape=False):
- env = get_spontaneous_environment(
- block_start_string, block_end_string, variable_start_string,
- variable_end_string, comment_start_string, comment_end_string,
- line_statement_prefix, line_comment_prefix, trim_blocks,
- lstrip_blocks, newline_sequence, keep_trailing_newline,
- frozenset(extensions), optimized, undefined, finalize, autoescape,
- None, 0, False, None)
- return env.from_string(source, template_class=cls)
-
- @classmethod
- def from_code(cls, environment, code, globals, uptodate=None):
- """Creates a template object from compiled code and the globals. This
- is used by the loaders and environment to create a template object.
- """
- namespace = {
- 'environment': environment,
- '__file__': code.co_filename
- }
- exec(code, namespace)
- rv = cls._from_namespace(environment, namespace, globals)
- rv._uptodate = uptodate
- return rv
-
- @classmethod
- def from_module_dict(cls, environment, module_dict, globals):
- """Creates a template object from a module. This is used by the
- module loader to create a template object.
-
- .. versionadded:: 2.4
- """
- return cls._from_namespace(environment, module_dict, globals)
-
- @classmethod
- def _from_namespace(cls, environment, namespace, globals):
- t = object.__new__(cls)
- t.environment = environment
- t.globals = globals
- t.name = namespace['name']
- t.filename = namespace['__file__']
- t.blocks = namespace['blocks']
-
- # render function and module
- t.root_render_func = namespace['root']
- t._module = None
-
- # debug and loader helpers
- t._debug_info = namespace['debug_info']
- t._uptodate = None
-
- # store the reference
- namespace['environment'] = environment
- namespace['__jinja_template__'] = t
-
- return t
-
- def render(self, *args, **kwargs):
- """This method accepts the same arguments as the `dict` constructor:
- A dict, a dict subclass or some keyword arguments. If no arguments
- are given the context will be empty. These two calls do the same::
-
- template.render(knights='that say nih')
- template.render({'knights': 'that say nih'})
-
- This will return the rendered template as unicode string.
- """
- vars = dict(*args, **kwargs)
- try:
- return concat(self.root_render_func(self.new_context(vars)))
- except Exception:
- exc_info = sys.exc_info()
- return self.environment.handle_exception(exc_info, True)
-
- def stream(self, *args, **kwargs):
- """Works exactly like :meth:`generate` but returns a
- :class:`TemplateStream`.
- """
- return TemplateStream(self.generate(*args, **kwargs))
-
- def generate(self, *args, **kwargs):
- """For very large templates it can be useful to not render the whole
- template at once but evaluate each statement after another and yield
- piece for piece. This method basically does exactly that and returns
- a generator that yields one item after another as unicode strings.
-
- It accepts the same arguments as :meth:`render`.
- """
- vars = dict(*args, **kwargs)
- try:
- for event in self.root_render_func(self.new_context(vars)):
- yield event
- except Exception:
- exc_info = sys.exc_info()
- else:
- return
- yield self.environment.handle_exception(exc_info, True)
-
- def new_context(self, vars=None, shared=False, locals=None):
- """Create a new :class:`Context` for this template. The vars
- provided will be passed to the template. Per default the globals
- are added to the context. If shared is set to `True` the data
- is passed as it to the context without adding the globals.
-
- `locals` can be a dict of local variables for internal usage.
- """
- return new_context(self.environment, self.name, self.blocks,
- vars, shared, self.globals, locals)
-
- def make_module(self, vars=None, shared=False, locals=None):
- """This method works like the :attr:`module` attribute when called
- without arguments but it will evaluate the template on every call
- rather than caching it. It's also possible to provide
- a dict which is then used as context. The arguments are the same
- as for the :meth:`new_context` method.
- """
- return TemplateModule(self, self.new_context(vars, shared, locals))
-
- @property
- def module(self):
- """The template as module. This is used for imports in the
- template runtime but is also useful if one wants to access
- exported template variables from the Python layer:
-
- >>> t = Template('{% macro foo() %}42{% endmacro %}23')
- >>> str(t.module)
- '23'
- >>> t.module.foo() == u'42'
- True
- """
- if self._module is not None:
- return self._module
- self._module = rv = self.make_module()
- return rv
-
- def get_corresponding_lineno(self, lineno):
- """Return the source line number of a line number in the
- generated bytecode as they are not in sync.
- """
- for template_line, code_line in reversed(self.debug_info):
- if code_line <= lineno:
- return template_line
- return 1
-
- @property
- def is_up_to_date(self):
- """If this variable is `False` there is a newer version available."""
- if self._uptodate is None:
- return True
- return self._uptodate()
-
- @property
- def debug_info(self):
- """The debug info mapping."""
- return [tuple(imap(int, x.split('='))) for x in
- self._debug_info.split('&')]
-
- def __repr__(self):
- if self.name is None:
- name = 'memory:%x' % id(self)
- else:
- name = repr(self.name)
- return '<%s %s>' % (self.__class__.__name__, name)
-
-
-@implements_to_string
-class TemplateModule(object):
- """Represents an imported template. All the exported names of the
- template are available as attributes on this object. Additionally
- converting it into an unicode- or bytestrings renders the contents.
- """
-
- def __init__(self, template, context):
- self._body_stream = list(template.root_render_func(context))
- self.__dict__.update(context.get_exported())
- self.__name__ = template.name
-
- def __html__(self):
- return Markup(concat(self._body_stream))
-
- def __str__(self):
- return concat(self._body_stream)
-
- def __repr__(self):
- if self.__name__ is None:
- name = 'memory:%x' % id(self)
- else:
- name = repr(self.__name__)
- return '<%s %s>' % (self.__class__.__name__, name)
-
-
-class TemplateExpression(object):
- """The :meth:`jinja2.Environment.compile_expression` method returns an
- instance of this object. It encapsulates the expression-like access
- to the template with an expression it wraps.
- """
-
- def __init__(self, template, undefined_to_none):
- self._template = template
- self._undefined_to_none = undefined_to_none
-
- def __call__(self, *args, **kwargs):
- context = self._template.new_context(dict(*args, **kwargs))
- consume(self._template.root_render_func(context))
- rv = context.vars['result']
- if self._undefined_to_none and isinstance(rv, Undefined):
- rv = None
- return rv
-
-
-@implements_iterator
-class TemplateStream(object):
- """A template stream works pretty much like an ordinary python generator
- but it can buffer multiple items to reduce the number of total iterations.
- Per default the output is unbuffered which means that for every unbuffered
- instruction in the template one unicode string is yielded.
-
- If buffering is enabled with a buffer size of 5, five items are combined
- into a new unicode string. This is mainly useful if you are streaming
- big templates to a client via WSGI which flushes after each iteration.
- """
-
- def __init__(self, gen):
- self._gen = gen
- self.disable_buffering()
-
- def dump(self, fp, encoding=None, errors='strict'):
- """Dump the complete stream into a file or file-like object.
- Per default unicode strings are written, if you want to encode
- before writing specify an `encoding`.
-
- Example usage::
-
- Template('Hello {{ name }}!').stream(name='foo').dump('hello.html')
- """
- close = False
- if isinstance(fp, string_types):
- if encoding is None:
- encoding = 'utf-8'
- fp = open(fp, 'wb')
- close = True
- try:
- if encoding is not None:
- iterable = (x.encode(encoding, errors) for x in self)
- else:
- iterable = self
- if hasattr(fp, 'writelines'):
- fp.writelines(iterable)
- else:
- for item in iterable:
- fp.write(item)
- finally:
- if close:
- fp.close()
-
- def disable_buffering(self):
- """Disable the output buffering."""
- self._next = get_next(self._gen)
- self.buffered = False
-
- def enable_buffering(self, size=5):
- """Enable buffering. Buffer `size` items before yielding them."""
- if size <= 1:
- raise ValueError('buffer size too small')
-
- def generator(next):
- buf = []
- c_size = 0
- push = buf.append
-
- while 1:
- try:
- while c_size < size:
- c = next()
- push(c)
- if c:
- c_size += 1
- except StopIteration:
- if not c_size:
- return
- yield concat(buf)
- del buf[:]
- c_size = 0
-
- self.buffered = True
- self._next = get_next(generator(get_next(self._gen)))
-
- def __iter__(self):
- return self
-
- def __next__(self):
- return self._next()
-
-
-# hook in default template class. if anyone reads this comment: ignore that
-# it's possible to use custom templates ;-)
-Environment.template_class = Template
diff --git a/vendor/jinja2/exceptions.py b/vendor/jinja2/exceptions.py
deleted file mode 100644
index c9df6dc7..00000000
--- a/vendor/jinja2/exceptions.py
+++ /dev/null
@@ -1,146 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.exceptions
- ~~~~~~~~~~~~~~~~~
-
- Jinja exceptions.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-from jinja2._compat import imap, text_type, PY2, implements_to_string
-
-
-class TemplateError(Exception):
- """Baseclass for all template errors."""
-
- if PY2:
- def __init__(self, message=None):
- if message is not None:
- message = text_type(message).encode('utf-8')
- Exception.__init__(self, message)
-
- @property
- def message(self):
- if self.args:
- message = self.args[0]
- if message is not None:
- return message.decode('utf-8', 'replace')
-
- def __unicode__(self):
- return self.message or u''
- else:
- def __init__(self, message=None):
- Exception.__init__(self, message)
-
- @property
- def message(self):
- if self.args:
- message = self.args[0]
- if message is not None:
- return message
-
-
-@implements_to_string
-class TemplateNotFound(IOError, LookupError, TemplateError):
- """Raised if a template does not exist."""
-
- # looks weird, but removes the warning descriptor that just
- # bogusly warns us about message being deprecated
- message = None
-
- def __init__(self, name, message=None):
- IOError.__init__(self)
- if message is None:
- message = name
- self.message = message
- self.name = name
- self.templates = [name]
-
- def __str__(self):
- return self.message
-
-
-class TemplatesNotFound(TemplateNotFound):
- """Like :class:`TemplateNotFound` but raised if multiple templates
- are selected. This is a subclass of :class:`TemplateNotFound`
- exception, so just catching the base exception will catch both.
-
- .. versionadded:: 2.2
- """
-
- def __init__(self, names=(), message=None):
- if message is None:
- message = u'none of the templates given were found: ' + \
- u', '.join(imap(text_type, names))
- TemplateNotFound.__init__(self, names and names[-1] or None, message)
- self.templates = list(names)
-
-
-@implements_to_string
-class TemplateSyntaxError(TemplateError):
- """Raised to tell the user that there is a problem with the template."""
-
- def __init__(self, message, lineno, name=None, filename=None):
- TemplateError.__init__(self, message)
- self.lineno = lineno
- self.name = name
- self.filename = filename
- self.source = None
-
- # this is set to True if the debug.translate_syntax_error
- # function translated the syntax error into a new traceback
- self.translated = False
-
- def __str__(self):
- # for translated errors we only return the message
- if self.translated:
- return self.message
-
- # otherwise attach some stuff
- location = 'line %d' % self.lineno
- name = self.filename or self.name
- if name:
- location = 'File "%s", %s' % (name, location)
- lines = [self.message, ' ' + location]
-
- # if the source is set, add the line to the output
- if self.source is not None:
- try:
- line = self.source.splitlines()[self.lineno - 1]
- except IndexError:
- line = None
- if line:
- lines.append(' ' + line.strip())
-
- return u'\n'.join(lines)
-
-
-class TemplateAssertionError(TemplateSyntaxError):
- """Like a template syntax error, but covers cases where something in the
- template caused an error at compile time that wasn't necessarily caused
- by a syntax error. However it's a direct subclass of
- :exc:`TemplateSyntaxError` and has the same attributes.
- """
-
-
-class TemplateRuntimeError(TemplateError):
- """A generic runtime error in the template engine. Under some situations
- Jinja may raise this exception.
- """
-
-
-class UndefinedError(TemplateRuntimeError):
- """Raised if a template tries to operate on :class:`Undefined`."""
-
-
-class SecurityError(TemplateRuntimeError):
- """Raised if a template tries to do something insecure if the
- sandbox is enabled.
- """
-
-
-class FilterArgumentError(TemplateRuntimeError):
- """This error is raised if a filter was called with inappropriate
- arguments
- """
diff --git a/vendor/jinja2/ext.py b/vendor/jinja2/ext.py
deleted file mode 100644
index 562ab506..00000000
--- a/vendor/jinja2/ext.py
+++ /dev/null
@@ -1,636 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.ext
- ~~~~~~~~~~
-
- Jinja extensions allow to add custom tags similar to the way django custom
- tags work. By default two example extensions exist: an i18n and a cache
- extension.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD.
-"""
-from jinja2 import nodes
-from jinja2.defaults import BLOCK_START_STRING, \
- BLOCK_END_STRING, VARIABLE_START_STRING, VARIABLE_END_STRING, \
- COMMENT_START_STRING, COMMENT_END_STRING, LINE_STATEMENT_PREFIX, \
- LINE_COMMENT_PREFIX, TRIM_BLOCKS, NEWLINE_SEQUENCE, \
- KEEP_TRAILING_NEWLINE, LSTRIP_BLOCKS
-from jinja2.environment import Environment
-from jinja2.runtime import concat
-from jinja2.exceptions import TemplateAssertionError, TemplateSyntaxError
-from jinja2.utils import contextfunction, import_string, Markup
-from jinja2._compat import with_metaclass, string_types, iteritems
-
-
-# the only real useful gettext functions for a Jinja template. Note
-# that ugettext must be assigned to gettext as Jinja doesn't support
-# non unicode strings.
-GETTEXT_FUNCTIONS = ('_', 'gettext', 'ngettext')
-
-
-class ExtensionRegistry(type):
- """Gives the extension an unique identifier."""
-
- def __new__(cls, name, bases, d):
- rv = type.__new__(cls, name, bases, d)
- rv.identifier = rv.__module__ + '.' + rv.__name__
- return rv
-
-
-class Extension(with_metaclass(ExtensionRegistry, object)):
- """Extensions can be used to add extra functionality to the Jinja template
- system at the parser level. Custom extensions are bound to an environment
- but may not store environment specific data on `self`. The reason for
- this is that an extension can be bound to another environment (for
- overlays) by creating a copy and reassigning the `environment` attribute.
-
- As extensions are created by the environment they cannot accept any
- arguments for configuration. One may want to work around that by using
- a factory function, but that is not possible as extensions are identified
- by their import name. The correct way to configure the extension is
- storing the configuration values on the environment. Because this way the
- environment ends up acting as central configuration storage the
- attributes may clash which is why extensions have to ensure that the names
- they choose for configuration are not too generic. ``prefix`` for example
- is a terrible name, ``fragment_cache_prefix`` on the other hand is a good
- name as includes the name of the extension (fragment cache).
- """
-
- #: if this extension parses this is the list of tags it's listening to.
- tags = set()
-
- #: the priority of that extension. This is especially useful for
- #: extensions that preprocess values. A lower value means higher
- #: priority.
- #:
- #: .. versionadded:: 2.4
- priority = 100
-
- def __init__(self, environment):
- self.environment = environment
-
- def bind(self, environment):
- """Create a copy of this extension bound to another environment."""
- rv = object.__new__(self.__class__)
- rv.__dict__.update(self.__dict__)
- rv.environment = environment
- return rv
-
- def preprocess(self, source, name, filename=None):
- """This method is called before the actual lexing and can be used to
- preprocess the source. The `filename` is optional. The return value
- must be the preprocessed source.
- """
- return source
-
- def filter_stream(self, stream):
- """It's passed a :class:`~jinja2.lexer.TokenStream` that can be used
- to filter tokens returned. This method has to return an iterable of
- :class:`~jinja2.lexer.Token`\s, but it doesn't have to return a
- :class:`~jinja2.lexer.TokenStream`.
-
- In the `ext` folder of the Jinja2 source distribution there is a file
- called `inlinegettext.py` which implements a filter that utilizes this
- method.
- """
- return stream
-
- def parse(self, parser):
- """If any of the :attr:`tags` matched this method is called with the
- parser as first argument. The token the parser stream is pointing at
- is the name token that matched. This method has to return one or a
- list of multiple nodes.
- """
- raise NotImplementedError()
-
- def attr(self, name, lineno=None):
- """Return an attribute node for the current extension. This is useful
- to pass constants on extensions to generated template code.
-
- ::
-
- self.attr('_my_attribute', lineno=lineno)
- """
- return nodes.ExtensionAttribute(self.identifier, name, lineno=lineno)
-
- def call_method(self, name, args=None, kwargs=None, dyn_args=None,
- dyn_kwargs=None, lineno=None):
- """Call a method of the extension. This is a shortcut for
- :meth:`attr` + :class:`jinja2.nodes.Call`.
- """
- if args is None:
- args = []
- if kwargs is None:
- kwargs = []
- return nodes.Call(self.attr(name, lineno=lineno), args, kwargs,
- dyn_args, dyn_kwargs, lineno=lineno)
-
-
-@contextfunction
-def _gettext_alias(__context, *args, **kwargs):
- return __context.call(__context.resolve('gettext'), *args, **kwargs)
-
-
-def _make_new_gettext(func):
- @contextfunction
- def gettext(__context, __string, **variables):
- rv = __context.call(func, __string)
- if __context.eval_ctx.autoescape:
- rv = Markup(rv)
- return rv % variables
- return gettext
-
-
-def _make_new_ngettext(func):
- @contextfunction
- def ngettext(__context, __singular, __plural, __num, **variables):
- variables.setdefault('num', __num)
- rv = __context.call(func, __singular, __plural, __num)
- if __context.eval_ctx.autoescape:
- rv = Markup(rv)
- return rv % variables
- return ngettext
-
-
-class InternationalizationExtension(Extension):
- """This extension adds gettext support to Jinja2."""
- tags = set(['trans'])
-
- # TODO: the i18n extension is currently reevaluating values in a few
- # situations. Take this example:
- # {% trans count=something() %}{{ count }} foo{% pluralize
- # %}{{ count }} fooss{% endtrans %}
- # something is called twice here. One time for the gettext value and
- # the other time for the n-parameter of the ngettext function.
-
- def __init__(self, environment):
- Extension.__init__(self, environment)
- environment.globals['_'] = _gettext_alias
- environment.extend(
- install_gettext_translations=self._install,
- install_null_translations=self._install_null,
- install_gettext_callables=self._install_callables,
- uninstall_gettext_translations=self._uninstall,
- extract_translations=self._extract,
- newstyle_gettext=False
- )
-
- def _install(self, translations, newstyle=None):
- gettext = getattr(translations, 'ugettext', None)
- if gettext is None:
- gettext = translations.gettext
- ngettext = getattr(translations, 'ungettext', None)
- if ngettext is None:
- ngettext = translations.ngettext
- self._install_callables(gettext, ngettext, newstyle)
-
- def _install_null(self, newstyle=None):
- self._install_callables(
- lambda x: x,
- lambda s, p, n: (n != 1 and (p,) or (s,))[0],
- newstyle
- )
-
- def _install_callables(self, gettext, ngettext, newstyle=None):
- if newstyle is not None:
- self.environment.newstyle_gettext = newstyle
- if self.environment.newstyle_gettext:
- gettext = _make_new_gettext(gettext)
- ngettext = _make_new_ngettext(ngettext)
- self.environment.globals.update(
- gettext=gettext,
- ngettext=ngettext
- )
-
- def _uninstall(self, translations):
- for key in 'gettext', 'ngettext':
- self.environment.globals.pop(key, None)
-
- def _extract(self, source, gettext_functions=GETTEXT_FUNCTIONS):
- if isinstance(source, string_types):
- source = self.environment.parse(source)
- return extract_from_ast(source, gettext_functions)
-
- def parse(self, parser):
- """Parse a translatable tag."""
- lineno = next(parser.stream).lineno
- num_called_num = False
-
- # find all the variables referenced. Additionally a variable can be
- # defined in the body of the trans block too, but this is checked at
- # a later state.
- plural_expr = None
- plural_expr_assignment = None
- variables = {}
- while parser.stream.current.type != 'block_end':
- if variables:
- parser.stream.expect('comma')
-
- # skip colon for python compatibility
- if parser.stream.skip_if('colon'):
- break
-
- name = parser.stream.expect('name')
- if name.value in variables:
- parser.fail('translatable variable %r defined twice.' %
- name.value, name.lineno,
- exc=TemplateAssertionError)
-
- # expressions
- if parser.stream.current.type == 'assign':
- next(parser.stream)
- variables[name.value] = var = parser.parse_expression()
- else:
- variables[name.value] = var = nodes.Name(name.value, 'load')
-
- if plural_expr is None:
- if isinstance(var, nodes.Call):
- plural_expr = nodes.Name('_trans', 'load')
- variables[name.value] = plural_expr
- plural_expr_assignment = nodes.Assign(
- nodes.Name('_trans', 'store'), var)
- else:
- plural_expr = var
- num_called_num = name.value == 'num'
-
- parser.stream.expect('block_end')
-
- plural = plural_names = None
- have_plural = False
- referenced = set()
-
- # now parse until endtrans or pluralize
- singular_names, singular = self._parse_block(parser, True)
- if singular_names:
- referenced.update(singular_names)
- if plural_expr is None:
- plural_expr = nodes.Name(singular_names[0], 'load')
- num_called_num = singular_names[0] == 'num'
-
- # if we have a pluralize block, we parse that too
- if parser.stream.current.test('name:pluralize'):
- have_plural = True
- next(parser.stream)
- if parser.stream.current.type != 'block_end':
- name = parser.stream.expect('name')
- if name.value not in variables:
- parser.fail('unknown variable %r for pluralization' %
- name.value, name.lineno,
- exc=TemplateAssertionError)
- plural_expr = variables[name.value]
- num_called_num = name.value == 'num'
- parser.stream.expect('block_end')
- plural_names, plural = self._parse_block(parser, False)
- next(parser.stream)
- referenced.update(plural_names)
- else:
- next(parser.stream)
-
- # register free names as simple name expressions
- for var in referenced:
- if var not in variables:
- variables[var] = nodes.Name(var, 'load')
-
- if not have_plural:
- plural_expr = None
- elif plural_expr is None:
- parser.fail('pluralize without variables', lineno)
-
- node = self._make_node(singular, plural, variables, plural_expr,
- bool(referenced),
- num_called_num and have_plural)
- node.set_lineno(lineno)
- if plural_expr_assignment is not None:
- return [plural_expr_assignment, node]
- else:
- return node
-
- def _parse_block(self, parser, allow_pluralize):
- """Parse until the next block tag with a given name."""
- referenced = []
- buf = []
- while 1:
- if parser.stream.current.type == 'data':
- buf.append(parser.stream.current.value.replace('%', '%%'))
- next(parser.stream)
- elif parser.stream.current.type == 'variable_begin':
- next(parser.stream)
- name = parser.stream.expect('name').value
- referenced.append(name)
- buf.append('%%(%s)s' % name)
- parser.stream.expect('variable_end')
- elif parser.stream.current.type == 'block_begin':
- next(parser.stream)
- if parser.stream.current.test('name:endtrans'):
- break
- elif parser.stream.current.test('name:pluralize'):
- if allow_pluralize:
- break
- parser.fail('a translatable section can have only one '
- 'pluralize section')
- parser.fail('control structures in translatable sections are '
- 'not allowed')
- elif parser.stream.eos:
- parser.fail('unclosed translation block')
- else:
- assert False, 'internal parser error'
-
- return referenced, concat(buf)
-
- def _make_node(self, singular, plural, variables, plural_expr,
- vars_referenced, num_called_num):
- """Generates a useful node from the data provided."""
- # no variables referenced? no need to escape for old style
- # gettext invocations only if there are vars.
- if not vars_referenced and not self.environment.newstyle_gettext:
- singular = singular.replace('%%', '%')
- if plural:
- plural = plural.replace('%%', '%')
-
- # singular only:
- if plural_expr is None:
- gettext = nodes.Name('gettext', 'load')
- node = nodes.Call(gettext, [nodes.Const(singular)],
- [], None, None)
-
- # singular and plural
- else:
- ngettext = nodes.Name('ngettext', 'load')
- node = nodes.Call(ngettext, [
- nodes.Const(singular),
- nodes.Const(plural),
- plural_expr
- ], [], None, None)
-
- # in case newstyle gettext is used, the method is powerful
- # enough to handle the variable expansion and autoescape
- # handling itself
- if self.environment.newstyle_gettext:
- for key, value in iteritems(variables):
- # the function adds that later anyways in case num was
- # called num, so just skip it.
- if num_called_num and key == 'num':
- continue
- node.kwargs.append(nodes.Keyword(key, value))
-
- # otherwise do that here
- else:
- # mark the return value as safe if we are in an
- # environment with autoescaping turned on
- node = nodes.MarkSafeIfAutoescape(node)
- if variables:
- node = nodes.Mod(node, nodes.Dict([
- nodes.Pair(nodes.Const(key), value)
- for key, value in variables.items()
- ]))
- return nodes.Output([node])
-
-
-class ExprStmtExtension(Extension):
- """Adds a `do` tag to Jinja2 that works like the print statement just
- that it doesn't print the return value.
- """
- tags = set(['do'])
-
- def parse(self, parser):
- node = nodes.ExprStmt(lineno=next(parser.stream).lineno)
- node.node = parser.parse_tuple()
- return node
-
-
-class LoopControlExtension(Extension):
- """Adds break and continue to the template engine."""
- tags = set(['break', 'continue'])
-
- def parse(self, parser):
- token = next(parser.stream)
- if token.value == 'break':
- return nodes.Break(lineno=token.lineno)
- return nodes.Continue(lineno=token.lineno)
-
-
-class WithExtension(Extension):
- """Adds support for a django-like with block."""
- tags = set(['with'])
-
- def parse(self, parser):
- node = nodes.Scope(lineno=next(parser.stream).lineno)
- assignments = []
- while parser.stream.current.type != 'block_end':
- lineno = parser.stream.current.lineno
- if assignments:
- parser.stream.expect('comma')
- target = parser.parse_assign_target()
- parser.stream.expect('assign')
- expr = parser.parse_expression()
- assignments.append(nodes.Assign(target, expr, lineno=lineno))
- node.body = assignments + \
- list(parser.parse_statements(('name:endwith',),
- drop_needle=True))
- return node
-
-
-class AutoEscapeExtension(Extension):
- """Changes auto escape rules for a scope."""
- tags = set(['autoescape'])
-
- def parse(self, parser):
- node = nodes.ScopedEvalContextModifier(lineno=next(parser.stream).lineno)
- node.options = [
- nodes.Keyword('autoescape', parser.parse_expression())
- ]
- node.body = parser.parse_statements(('name:endautoescape',),
- drop_needle=True)
- return nodes.Scope([node])
-
-
-def extract_from_ast(node, gettext_functions=GETTEXT_FUNCTIONS,
- babel_style=True):
- """Extract localizable strings from the given template node. Per
- default this function returns matches in babel style that means non string
- parameters as well as keyword arguments are returned as `None`. This
- allows Babel to figure out what you really meant if you are using
- gettext functions that allow keyword arguments for placeholder expansion.
- If you don't want that behavior set the `babel_style` parameter to `False`
- which causes only strings to be returned and parameters are always stored
- in tuples. As a consequence invalid gettext calls (calls without a single
- string parameter or string parameters after non-string parameters) are
- skipped.
-
- This example explains the behavior:
-
- >>> from jinja2 import Environment
- >>> env = Environment()
- >>> node = env.parse('{{ (_("foo"), _(), ngettext("foo", "bar", 42)) }}')
- >>> list(extract_from_ast(node))
- [(1, '_', 'foo'), (1, '_', ()), (1, 'ngettext', ('foo', 'bar', None))]
- >>> list(extract_from_ast(node, babel_style=False))
- [(1, '_', ('foo',)), (1, 'ngettext', ('foo', 'bar'))]
-
- For every string found this function yields a ``(lineno, function,
- message)`` tuple, where:
-
- * ``lineno`` is the number of the line on which the string was found,
- * ``function`` is the name of the ``gettext`` function used (if the
- string was extracted from embedded Python code), and
- * ``message`` is the string itself (a ``unicode`` object, or a tuple
- of ``unicode`` objects for functions with multiple string arguments).
-
- This extraction function operates on the AST and is because of that unable
- to extract any comments. For comment support you have to use the babel
- extraction interface or extract comments yourself.
- """
- for node in node.find_all(nodes.Call):
- if not isinstance(node.node, nodes.Name) or \
- node.node.name not in gettext_functions:
- continue
-
- strings = []
- for arg in node.args:
- if isinstance(arg, nodes.Const) and \
- isinstance(arg.value, string_types):
- strings.append(arg.value)
- else:
- strings.append(None)
-
- for arg in node.kwargs:
- strings.append(None)
- if node.dyn_args is not None:
- strings.append(None)
- if node.dyn_kwargs is not None:
- strings.append(None)
-
- if not babel_style:
- strings = tuple(x for x in strings if x is not None)
- if not strings:
- continue
- else:
- if len(strings) == 1:
- strings = strings[0]
- else:
- strings = tuple(strings)
- yield node.lineno, node.node.name, strings
-
-
-class _CommentFinder(object):
- """Helper class to find comments in a token stream. Can only
- find comments for gettext calls forwards. Once the comment
- from line 4 is found, a comment for line 1 will not return a
- usable value.
- """
-
- def __init__(self, tokens, comment_tags):
- self.tokens = tokens
- self.comment_tags = comment_tags
- self.offset = 0
- self.last_lineno = 0
-
- def find_backwards(self, offset):
- try:
- for _, token_type, token_value in \
- reversed(self.tokens[self.offset:offset]):
- if token_type in ('comment', 'linecomment'):
- try:
- prefix, comment = token_value.split(None, 1)
- except ValueError:
- continue
- if prefix in self.comment_tags:
- return [comment.rstrip()]
- return []
- finally:
- self.offset = offset
-
- def find_comments(self, lineno):
- if not self.comment_tags or self.last_lineno > lineno:
- return []
- for idx, (token_lineno, _, _) in enumerate(self.tokens[self.offset:]):
- if token_lineno > lineno:
- return self.find_backwards(self.offset + idx)
- return self.find_backwards(len(self.tokens))
-
-
-def babel_extract(fileobj, keywords, comment_tags, options):
- """Babel extraction method for Jinja templates.
-
- .. versionchanged:: 2.3
- Basic support for translation comments was added. If `comment_tags`
- is now set to a list of keywords for extraction, the extractor will
- try to find the best preceeding comment that begins with one of the
- keywords. For best results, make sure to not have more than one
- gettext call in one line of code and the matching comment in the
- same line or the line before.
-
- .. versionchanged:: 2.5.1
- The `newstyle_gettext` flag can be set to `True` to enable newstyle
- gettext calls.
-
- .. versionchanged:: 2.7
- A `silent` option can now be provided. If set to `False` template
- syntax errors are propagated instead of being ignored.
-
- :param fileobj: the file-like object the messages should be extracted from
- :param keywords: a list of keywords (i.e. function names) that should be
- recognized as translation functions
- :param comment_tags: a list of translator tags to search for and include
- in the results.
- :param options: a dictionary of additional options (optional)
- :return: an iterator over ``(lineno, funcname, message, comments)`` tuples.
- (comments will be empty currently)
- """
- extensions = set()
- for extension in options.get('extensions', '').split(','):
- extension = extension.strip()
- if not extension:
- continue
- extensions.add(import_string(extension))
- if InternationalizationExtension not in extensions:
- extensions.add(InternationalizationExtension)
-
- def getbool(options, key, default=False):
- return options.get(key, str(default)).lower() in \
- ('1', 'on', 'yes', 'true')
-
- silent = getbool(options, 'silent', True)
- environment = Environment(
- options.get('block_start_string', BLOCK_START_STRING),
- options.get('block_end_string', BLOCK_END_STRING),
- options.get('variable_start_string', VARIABLE_START_STRING),
- options.get('variable_end_string', VARIABLE_END_STRING),
- options.get('comment_start_string', COMMENT_START_STRING),
- options.get('comment_end_string', COMMENT_END_STRING),
- options.get('line_statement_prefix') or LINE_STATEMENT_PREFIX,
- options.get('line_comment_prefix') or LINE_COMMENT_PREFIX,
- getbool(options, 'trim_blocks', TRIM_BLOCKS),
- getbool(options, 'lstrip_blocks', LSTRIP_BLOCKS),
- NEWLINE_SEQUENCE,
- getbool(options, 'keep_trailing_newline', KEEP_TRAILING_NEWLINE),
- frozenset(extensions),
- cache_size=0,
- auto_reload=False
- )
-
- if getbool(options, 'newstyle_gettext'):
- environment.newstyle_gettext = True
-
- source = fileobj.read().decode(options.get('encoding', 'utf-8'))
- try:
- node = environment.parse(source)
- tokens = list(environment.lex(environment.preprocess(source)))
- except TemplateSyntaxError as e:
- if not silent:
- raise
- # skip templates with syntax errors
- return
-
- finder = _CommentFinder(tokens, comment_tags)
- for lineno, func, message in extract_from_ast(node, keywords):
- yield lineno, func, message, finder.find_comments(lineno)
-
-
-#: nicer import names
-i18n = InternationalizationExtension
-do = ExprStmtExtension
-loopcontrols = LoopControlExtension
-with_ = WithExtension
-autoescape = AutoEscapeExtension
diff --git a/vendor/jinja2/filters.py b/vendor/jinja2/filters.py
deleted file mode 100644
index e5c7a1ab..00000000
--- a/vendor/jinja2/filters.py
+++ /dev/null
@@ -1,996 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.filters
- ~~~~~~~~~~~~~~
-
- Bundled jinja filters.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import re
-import math
-
-from random import choice
-from operator import itemgetter
-from itertools import groupby
-from jinja2.utils import Markup, escape, pformat, urlize, soft_unicode, \
- unicode_urlencode
-from jinja2.runtime import Undefined
-from jinja2.exceptions import FilterArgumentError
-from jinja2._compat import imap, string_types, text_type, iteritems
-
-
-_word_re = re.compile(r'\w+(?u)')
-
-
-def contextfilter(f):
- """Decorator for marking context dependent filters. The current
- :class:`Context` will be passed as first argument.
- """
- f.contextfilter = True
- return f
-
-
-def evalcontextfilter(f):
- """Decorator for marking eval-context dependent filters. An eval
- context object is passed as first argument. For more information
- about the eval context, see :ref:`eval-context`.
-
- .. versionadded:: 2.4
- """
- f.evalcontextfilter = True
- return f
-
-
-def environmentfilter(f):
- """Decorator for marking evironment dependent filters. The current
- :class:`Environment` is passed to the filter as first argument.
- """
- f.environmentfilter = True
- return f
-
-
-def make_attrgetter(environment, attribute):
- """Returns a callable that looks up the given attribute from a
- passed object with the rules of the environment. Dots are allowed
- to access attributes of attributes. Integer parts in paths are
- looked up as integers.
- """
- if not isinstance(attribute, string_types) \
- or ('.' not in attribute and not attribute.isdigit()):
- return lambda x: environment.getitem(x, attribute)
- attribute = attribute.split('.')
- def attrgetter(item):
- for part in attribute:
- if part.isdigit():
- part = int(part)
- item = environment.getitem(item, part)
- return item
- return attrgetter
-
-
-def do_forceescape(value):
- """Enforce HTML escaping. This will probably double escape variables."""
- if hasattr(value, '__html__'):
- value = value.__html__()
- return escape(text_type(value))
-
-
-def do_urlencode(value):
- """Escape strings for use in URLs (uses UTF-8 encoding). It accepts both
- dictionaries and regular strings as well as pairwise iterables.
-
- .. versionadded:: 2.7
- """
- itemiter = None
- if isinstance(value, dict):
- itemiter = iteritems(value)
- elif not isinstance(value, string_types):
- try:
- itemiter = iter(value)
- except TypeError:
- pass
- if itemiter is None:
- return unicode_urlencode(value)
- return u'&'.join(unicode_urlencode(k) + '=' +
- unicode_urlencode(v, for_qs=True)
- for k, v in itemiter)
-
-
-@evalcontextfilter
-def do_replace(eval_ctx, s, old, new, count=None):
- """Return a copy of the value with all occurrences of a substring
- replaced with a new one. The first argument is the substring
- that should be replaced, the second is the replacement string.
- If the optional third argument ``count`` is given, only the first
- ``count`` occurrences are replaced:
-
- .. sourcecode:: jinja
-
- {{ "Hello World"|replace("Hello", "Goodbye") }}
- -> Goodbye World
-
- {{ "aaaaargh"|replace("a", "d'oh, ", 2) }}
- -> d'oh, d'oh, aaargh
- """
- if count is None:
- count = -1
- if not eval_ctx.autoescape:
- return text_type(s).replace(text_type(old), text_type(new), count)
- if hasattr(old, '__html__') or hasattr(new, '__html__') and \
- not hasattr(s, '__html__'):
- s = escape(s)
- else:
- s = soft_unicode(s)
- return s.replace(soft_unicode(old), soft_unicode(new), count)
-
-
-def do_upper(s):
- """Convert a value to uppercase."""
- return soft_unicode(s).upper()
-
-
-def do_lower(s):
- """Convert a value to lowercase."""
- return soft_unicode(s).lower()
-
-
-@evalcontextfilter
-def do_xmlattr(_eval_ctx, d, autospace=True):
- """Create an SGML/XML attribute string based on the items in a dict.
- All values that are neither `none` nor `undefined` are automatically
- escaped:
-
- .. sourcecode:: html+jinja
-
-
-
- Results in something like this:
-
- .. sourcecode:: html
-
-
-
- As you can see it automatically prepends a space in front of the item
- if the filter returned something unless the second parameter is false.
- """
- rv = u' '.join(
- u'%s="%s"' % (escape(key), escape(value))
- for key, value in iteritems(d)
- if value is not None and not isinstance(value, Undefined)
- )
- if autospace and rv:
- rv = u' ' + rv
- if _eval_ctx.autoescape:
- rv = Markup(rv)
- return rv
-
-
-def do_capitalize(s):
- """Capitalize a value. The first character will be uppercase, all others
- lowercase.
- """
- return soft_unicode(s).capitalize()
-
-
-def do_title(s):
- """Return a titlecased version of the value. I.e. words will start with
- uppercase letters, all remaining characters are lowercase.
- """
- rv = []
- for item in re.compile(r'([-\s]+)(?u)').split(soft_unicode(s)):
- if not item:
- continue
- rv.append(item[0].upper() + item[1:].lower())
- return ''.join(rv)
-
-
-def do_dictsort(value, case_sensitive=False, by='key'):
- """Sort a dict and yield (key, value) pairs. Because python dicts are
- unsorted you may want to use this function to order them by either
- key or value:
-
- .. sourcecode:: jinja
-
- {% for item in mydict|dictsort %}
- sort the dict by key, case insensitive
-
- {% for item in mydict|dictsort(true) %}
- sort the dict by key, case sensitive
-
- {% for item in mydict|dictsort(false, 'value') %}
- sort the dict by value, case insensitive
- """
- if by == 'key':
- pos = 0
- elif by == 'value':
- pos = 1
- else:
- raise FilterArgumentError('You can only sort by either '
- '"key" or "value"')
- def sort_func(item):
- value = item[pos]
- if isinstance(value, string_types) and not case_sensitive:
- value = value.lower()
- return value
-
- return sorted(value.items(), key=sort_func)
-
-
-@environmentfilter
-def do_sort(environment, value, reverse=False, case_sensitive=False,
- attribute=None):
- """Sort an iterable. Per default it sorts ascending, if you pass it
- true as first argument it will reverse the sorting.
-
- If the iterable is made of strings the third parameter can be used to
- control the case sensitiveness of the comparison which is disabled by
- default.
-
- .. sourcecode:: jinja
-
- {% for item in iterable|sort %}
- ...
- {% endfor %}
-
- It is also possible to sort by an attribute (for example to sort
- by the date of an object) by specifying the `attribute` parameter:
-
- .. sourcecode:: jinja
-
- {% for item in iterable|sort(attribute='date') %}
- ...
- {% endfor %}
-
- .. versionchanged:: 2.6
- The `attribute` parameter was added.
- """
- if not case_sensitive:
- def sort_func(item):
- if isinstance(item, string_types):
- item = item.lower()
- return item
- else:
- sort_func = None
- if attribute is not None:
- getter = make_attrgetter(environment, attribute)
- def sort_func(item, processor=sort_func or (lambda x: x)):
- return processor(getter(item))
- return sorted(value, key=sort_func, reverse=reverse)
-
-
-def do_default(value, default_value=u'', boolean=False):
- """If the value is undefined it will return the passed default value,
- otherwise the value of the variable:
-
- .. sourcecode:: jinja
-
- {{ my_variable|default('my_variable is not defined') }}
-
- This will output the value of ``my_variable`` if the variable was
- defined, otherwise ``'my_variable is not defined'``. If you want
- to use default with variables that evaluate to false you have to
- set the second parameter to `true`:
-
- .. sourcecode:: jinja
-
- {{ ''|default('the string was empty', true) }}
- """
- if isinstance(value, Undefined) or (boolean and not value):
- return default_value
- return value
-
-
-@evalcontextfilter
-def do_join(eval_ctx, value, d=u'', attribute=None):
- """Return a string which is the concatenation of the strings in the
- sequence. The separator between elements is an empty string per
- default, you can define it with the optional parameter:
-
- .. sourcecode:: jinja
-
- {{ [1, 2, 3]|join('|') }}
- -> 1|2|3
-
- {{ [1, 2, 3]|join }}
- -> 123
-
- It is also possible to join certain attributes of an object:
-
- .. sourcecode:: jinja
-
- {{ users|join(', ', attribute='username') }}
-
- .. versionadded:: 2.6
- The `attribute` parameter was added.
- """
- if attribute is not None:
- value = imap(make_attrgetter(eval_ctx.environment, attribute), value)
-
- # no automatic escaping? joining is a lot eaiser then
- if not eval_ctx.autoescape:
- return text_type(d).join(imap(text_type, value))
-
- # if the delimiter doesn't have an html representation we check
- # if any of the items has. If yes we do a coercion to Markup
- if not hasattr(d, '__html__'):
- value = list(value)
- do_escape = False
- for idx, item in enumerate(value):
- if hasattr(item, '__html__'):
- do_escape = True
- else:
- value[idx] = text_type(item)
- if do_escape:
- d = escape(d)
- else:
- d = text_type(d)
- return d.join(value)
-
- # no html involved, to normal joining
- return soft_unicode(d).join(imap(soft_unicode, value))
-
-
-def do_center(value, width=80):
- """Centers the value in a field of a given width."""
- return text_type(value).center(width)
-
-
-@environmentfilter
-def do_first(environment, seq):
- """Return the first item of a sequence."""
- try:
- return next(iter(seq))
- except StopIteration:
- return environment.undefined('No first item, sequence was empty.')
-
-
-@environmentfilter
-def do_last(environment, seq):
- """Return the last item of a sequence."""
- try:
- return next(iter(reversed(seq)))
- except StopIteration:
- return environment.undefined('No last item, sequence was empty.')
-
-
-@environmentfilter
-def do_random(environment, seq):
- """Return a random item from the sequence."""
- try:
- return choice(seq)
- except IndexError:
- return environment.undefined('No random item, sequence was empty.')
-
-
-def do_filesizeformat(value, binary=False):
- """Format the value like a 'human-readable' file size (i.e. 13 kB,
- 4.1 MB, 102 Bytes, etc). Per default decimal prefixes are used (Mega,
- Giga, etc.), if the second parameter is set to `True` the binary
- prefixes are used (Mebi, Gibi).
- """
- bytes = float(value)
- base = binary and 1024 or 1000
- prefixes = [
- (binary and 'KiB' or 'kB'),
- (binary and 'MiB' or 'MB'),
- (binary and 'GiB' or 'GB'),
- (binary and 'TiB' or 'TB'),
- (binary and 'PiB' or 'PB'),
- (binary and 'EiB' or 'EB'),
- (binary and 'ZiB' or 'ZB'),
- (binary and 'YiB' or 'YB')
- ]
- if bytes == 1:
- return '1 Byte'
- elif bytes < base:
- return '%d Bytes' % bytes
- else:
- for i, prefix in enumerate(prefixes):
- unit = base ** (i + 2)
- if bytes < unit:
- return '%.1f %s' % ((base * bytes / unit), prefix)
- return '%.1f %s' % ((base * bytes / unit), prefix)
-
-
-def do_pprint(value, verbose=False):
- """Pretty print a variable. Useful for debugging.
-
- With Jinja 1.2 onwards you can pass it a parameter. If this parameter
- is truthy the output will be more verbose (this requires `pretty`)
- """
- return pformat(value, verbose=verbose)
-
-
-@evalcontextfilter
-def do_urlize(eval_ctx, value, trim_url_limit=None, nofollow=False,
- target=None):
- """Converts URLs in plain text into clickable links.
-
- If you pass the filter an additional integer it will shorten the urls
- to that number. Also a third argument exists that makes the urls
- "nofollow":
-
- .. sourcecode:: jinja
-
- {{ mytext|urlize(40, true) }}
- links are shortened to 40 chars and defined with rel="nofollow"
-
- If *target* is specified, the ``target`` attribute will be added to the
- ```` tag:
-
- .. sourcecode:: jinja
-
- {{ mytext|urlize(40, target='_blank') }}
-
- .. versionchanged:: 2.8+
- The *target* parameter was added.
- """
- rv = urlize(value, trim_url_limit, nofollow, target)
- if eval_ctx.autoescape:
- rv = Markup(rv)
- return rv
-
-
-def do_indent(s, width=4, indentfirst=False):
- """Return a copy of the passed string, each line indented by
- 4 spaces. The first line is not indented. If you want to
- change the number of spaces or indent the first line too
- you can pass additional parameters to the filter:
-
- .. sourcecode:: jinja
-
- {{ mytext|indent(2, true) }}
- indent by two spaces and indent the first line too.
- """
- indention = u' ' * width
- rv = (u'\n' + indention).join(s.splitlines())
- if indentfirst:
- rv = indention + rv
- return rv
-
-
-def do_truncate(s, length=255, killwords=False, end='...'):
- """Return a truncated copy of the string. The length is specified
- with the first parameter which defaults to ``255``. If the second
- parameter is ``true`` the filter will cut the text at length. Otherwise
- it will discard the last word. If the text was in fact
- truncated it will append an ellipsis sign (``"..."``). If you want a
- different ellipsis sign than ``"..."`` you can specify it using the
- third parameter.
-
- .. sourcecode:: jinja
-
- {{ "foo bar baz"|truncate(9) }}
- -> "foo ..."
- {{ "foo bar baz"|truncate(9, True) }}
- -> "foo ba..."
-
- """
- if len(s) <= length:
- return s
- elif killwords:
- return s[:length - len(end)] + end
-
- result = s[:length - len(end)].rsplit(' ', 1)[0]
- if len(result) < length:
- result += ' '
- return result + end
-
-
-@environmentfilter
-def do_wordwrap(environment, s, width=79, break_long_words=True,
- wrapstring=None):
- """
- Return a copy of the string passed to the filter wrapped after
- ``79`` characters. You can override this default using the first
- parameter. If you set the second parameter to `false` Jinja will not
- split words apart if they are longer than `width`. By default, the newlines
- will be the default newlines for the environment, but this can be changed
- using the wrapstring keyword argument.
-
- .. versionadded:: 2.7
- Added support for the `wrapstring` parameter.
- """
- if not wrapstring:
- wrapstring = environment.newline_sequence
- import textwrap
- return wrapstring.join(textwrap.wrap(s, width=width, expand_tabs=False,
- replace_whitespace=False,
- break_long_words=break_long_words))
-
-
-def do_wordcount(s):
- """Count the words in that string."""
- return len(_word_re.findall(s))
-
-
-def do_int(value, default=0, base=10):
- """Convert the value into an integer. If the
- conversion doesn't work it will return ``0``. You can
- override this default using the first parameter. You
- can also override the default base (10) in the second
- parameter, which handles input with prefixes such as
- 0b, 0o and 0x for bases 2, 8 and 16 respectively.
- """
- try:
- return int(value, base)
- except (TypeError, ValueError):
- # this quirk is necessary so that "42.23"|int gives 42.
- try:
- return int(float(value))
- except (TypeError, ValueError):
- return default
-
-
-def do_float(value, default=0.0):
- """Convert the value into a floating point number. If the
- conversion doesn't work it will return ``0.0``. You can
- override this default using the first parameter.
- """
- try:
- return float(value)
- except (TypeError, ValueError):
- return default
-
-
-def do_format(value, *args, **kwargs):
- """
- Apply python string formatting on an object:
-
- .. sourcecode:: jinja
-
- {{ "%s - %s"|format("Hello?", "Foo!") }}
- -> Hello? - Foo!
- """
- if args and kwargs:
- raise FilterArgumentError('can\'t handle positional and keyword '
- 'arguments at the same time')
- return soft_unicode(value) % (kwargs or args)
-
-
-def do_trim(value):
- """Strip leading and trailing whitespace."""
- return soft_unicode(value).strip()
-
-
-def do_striptags(value):
- """Strip SGML/XML tags and replace adjacent whitespace by one space.
- """
- if hasattr(value, '__html__'):
- value = value.__html__()
- return Markup(text_type(value)).striptags()
-
-
-def do_slice(value, slices, fill_with=None):
- """Slice an iterator and return a list of lists containing
- those items. Useful if you want to create a div containing
- three ul tags that represent columns:
-
- .. sourcecode:: html+jinja
-
-
- {%- for column in items|slice(3) %}
-
- {%- for item in column %}
- - {{ item }}
- {%- endfor %}
-
- {%- endfor %}
-
-
- If you pass it a second argument it's used to fill missing
- values on the last iteration.
- """
- seq = list(value)
- length = len(seq)
- items_per_slice = length // slices
- slices_with_extra = length % slices
- offset = 0
- for slice_number in range(slices):
- start = offset + slice_number * items_per_slice
- if slice_number < slices_with_extra:
- offset += 1
- end = offset + (slice_number + 1) * items_per_slice
- tmp = seq[start:end]
- if fill_with is not None and slice_number >= slices_with_extra:
- tmp.append(fill_with)
- yield tmp
-
-
-def do_batch(value, linecount, fill_with=None):
- """
- A filter that batches items. It works pretty much like `slice`
- just the other way round. It returns a list of lists with the
- given number of items. If you provide a second parameter this
- is used to fill up missing items. See this example:
-
- .. sourcecode:: html+jinja
-
-
- {%- for row in items|batch(3, ' ') %}
-
- {%- for column in row %}
- {{ column }} |
- {%- endfor %}
-
- {%- endfor %}
-
- """
- tmp = []
- for item in value:
- if len(tmp) == linecount:
- yield tmp
- tmp = []
- tmp.append(item)
- if tmp:
- if fill_with is not None and len(tmp) < linecount:
- tmp += [fill_with] * (linecount - len(tmp))
- yield tmp
-
-
-def do_round(value, precision=0, method='common'):
- """Round the number to a given precision. The first
- parameter specifies the precision (default is ``0``), the
- second the rounding method:
-
- - ``'common'`` rounds either up or down
- - ``'ceil'`` always rounds up
- - ``'floor'`` always rounds down
-
- If you don't specify a method ``'common'`` is used.
-
- .. sourcecode:: jinja
-
- {{ 42.55|round }}
- -> 43.0
- {{ 42.55|round(1, 'floor') }}
- -> 42.5
-
- Note that even if rounded to 0 precision, a float is returned. If
- you need a real integer, pipe it through `int`:
-
- .. sourcecode:: jinja
-
- {{ 42.55|round|int }}
- -> 43
- """
- if not method in ('common', 'ceil', 'floor'):
- raise FilterArgumentError('method must be common, ceil or floor')
- if method == 'common':
- return round(value, precision)
- func = getattr(math, method)
- return func(value * (10 ** precision)) / (10 ** precision)
-
-
-@environmentfilter
-def do_groupby(environment, value, attribute):
- """Group a sequence of objects by a common attribute.
-
- If you for example have a list of dicts or objects that represent persons
- with `gender`, `first_name` and `last_name` attributes and you want to
- group all users by genders you can do something like the following
- snippet:
-
- .. sourcecode:: html+jinja
-
-
- {% for group in persons|groupby('gender') %}
- - {{ group.grouper }}
- {% for person in group.list %}
- - {{ person.first_name }} {{ person.last_name }}
- {% endfor %}
- {% endfor %}
-
-
- Additionally it's possible to use tuple unpacking for the grouper and
- list:
-
- .. sourcecode:: html+jinja
-
-
- {% for grouper, list in persons|groupby('gender') %}
- ...
- {% endfor %}
-
-
- As you can see the item we're grouping by is stored in the `grouper`
- attribute and the `list` contains all the objects that have this grouper
- in common.
-
- .. versionchanged:: 2.6
- It's now possible to use dotted notation to group by the child
- attribute of another attribute.
- """
- expr = make_attrgetter(environment, attribute)
- return sorted(map(_GroupTuple, groupby(sorted(value, key=expr), expr)))
-
-
-class _GroupTuple(tuple):
- __slots__ = ()
- grouper = property(itemgetter(0))
- list = property(itemgetter(1))
-
- def __new__(cls, xxx_todo_changeme):
- (key, value) = xxx_todo_changeme
- return tuple.__new__(cls, (key, list(value)))
-
-
-@environmentfilter
-def do_sum(environment, iterable, attribute=None, start=0):
- """Returns the sum of a sequence of numbers plus the value of parameter
- 'start' (which defaults to 0). When the sequence is empty it returns
- start.
-
- It is also possible to sum up only certain attributes:
-
- .. sourcecode:: jinja
-
- Total: {{ items|sum(attribute='price') }}
-
- .. versionchanged:: 2.6
- The `attribute` parameter was added to allow suming up over
- attributes. Also the `start` parameter was moved on to the right.
- """
- if attribute is not None:
- iterable = imap(make_attrgetter(environment, attribute), iterable)
- return sum(iterable, start)
-
-
-def do_list(value):
- """Convert the value into a list. If it was a string the returned list
- will be a list of characters.
- """
- return list(value)
-
-
-def do_mark_safe(value):
- """Mark the value as safe which means that in an environment with automatic
- escaping enabled this variable will not be escaped.
- """
- return Markup(value)
-
-
-def do_mark_unsafe(value):
- """Mark a value as unsafe. This is the reverse operation for :func:`safe`."""
- return text_type(value)
-
-
-def do_reverse(value):
- """Reverse the object or return an iterator that iterates over it the other
- way round.
- """
- if isinstance(value, string_types):
- return value[::-1]
- try:
- return reversed(value)
- except TypeError:
- try:
- rv = list(value)
- rv.reverse()
- return rv
- except TypeError:
- raise FilterArgumentError('argument must be iterable')
-
-
-@environmentfilter
-def do_attr(environment, obj, name):
- """Get an attribute of an object. ``foo|attr("bar")`` works like
- ``foo.bar`` just that always an attribute is returned and items are not
- looked up.
-
- See :ref:`Notes on subscriptions ` for more details.
- """
- try:
- name = str(name)
- except UnicodeError:
- pass
- else:
- try:
- value = getattr(obj, name)
- except AttributeError:
- pass
- else:
- if environment.sandboxed and not \
- environment.is_safe_attribute(obj, name, value):
- return environment.unsafe_undefined(obj, name)
- return value
- return environment.undefined(obj=obj, name=name)
-
-
-@contextfilter
-def do_map(*args, **kwargs):
- """Applies a filter on a sequence of objects or looks up an attribute.
- This is useful when dealing with lists of objects but you are really
- only interested in a certain value of it.
-
- The basic usage is mapping on an attribute. Imagine you have a list
- of users but you are only interested in a list of usernames:
-
- .. sourcecode:: jinja
-
- Users on this page: {{ users|map(attribute='username')|join(', ') }}
-
- Alternatively you can let it invoke a filter by passing the name of the
- filter and the arguments afterwards. A good example would be applying a
- text conversion filter on a sequence:
-
- .. sourcecode:: jinja
-
- Users on this page: {{ titles|map('lower')|join(', ') }}
-
- .. versionadded:: 2.7
- """
- context = args[0]
- seq = args[1]
-
- if len(args) == 2 and 'attribute' in kwargs:
- attribute = kwargs.pop('attribute')
- if kwargs:
- raise FilterArgumentError('Unexpected keyword argument %r' %
- next(iter(kwargs)))
- func = make_attrgetter(context.environment, attribute)
- else:
- try:
- name = args[2]
- args = args[3:]
- except LookupError:
- raise FilterArgumentError('map requires a filter argument')
- func = lambda item: context.environment.call_filter(
- name, item, args, kwargs, context=context)
-
- if seq:
- for item in seq:
- yield func(item)
-
-
-@contextfilter
-def do_select(*args, **kwargs):
- """Filters a sequence of objects by applying a test to the object and only
- selecting the ones with the test succeeding.
-
- Example usage:
-
- .. sourcecode:: jinja
-
- {{ numbers|select("odd") }}
- {{ numbers|select("odd") }}
-
- .. versionadded:: 2.7
- """
- return _select_or_reject(args, kwargs, lambda x: x, False)
-
-
-@contextfilter
-def do_reject(*args, **kwargs):
- """Filters a sequence of objects by applying a test to the object and
- rejecting the ones with the test succeeding.
-
- Example usage:
-
- .. sourcecode:: jinja
-
- {{ numbers|reject("odd") }}
-
- .. versionadded:: 2.7
- """
- return _select_or_reject(args, kwargs, lambda x: not x, False)
-
-
-@contextfilter
-def do_selectattr(*args, **kwargs):
- """Filters a sequence of objects by applying a test to an attribute of an
- object and only selecting the ones with the test succeeding.
-
- Example usage:
-
- .. sourcecode:: jinja
-
- {{ users|selectattr("is_active") }}
- {{ users|selectattr("email", "none") }}
-
- .. versionadded:: 2.7
- """
- return _select_or_reject(args, kwargs, lambda x: x, True)
-
-
-@contextfilter
-def do_rejectattr(*args, **kwargs):
- """Filters a sequence of objects by applying a test to an attribute of an
- object or the attribute and rejecting the ones with the test succeeding.
-
- .. sourcecode:: jinja
-
- {{ users|rejectattr("is_active") }}
- {{ users|rejectattr("email", "none") }}
-
- .. versionadded:: 2.7
- """
- return _select_or_reject(args, kwargs, lambda x: not x, True)
-
-
-def _select_or_reject(args, kwargs, modfunc, lookup_attr):
- context = args[0]
- seq = args[1]
- if lookup_attr:
- try:
- attr = args[2]
- except LookupError:
- raise FilterArgumentError('Missing parameter for attribute name')
- transfunc = make_attrgetter(context.environment, attr)
- off = 1
- else:
- off = 0
- transfunc = lambda x: x
-
- try:
- name = args[2 + off]
- args = args[3 + off:]
- func = lambda item: context.environment.call_test(
- name, item, args, kwargs)
- except LookupError:
- func = bool
-
- if seq:
- for item in seq:
- if modfunc(func(transfunc(item))):
- yield item
-
-
-FILTERS = {
- 'abs': abs,
- 'attr': do_attr,
- 'batch': do_batch,
- 'capitalize': do_capitalize,
- 'center': do_center,
- 'count': len,
- 'd': do_default,
- 'default': do_default,
- 'dictsort': do_dictsort,
- 'e': escape,
- 'escape': escape,
- 'filesizeformat': do_filesizeformat,
- 'first': do_first,
- 'float': do_float,
- 'forceescape': do_forceescape,
- 'format': do_format,
- 'groupby': do_groupby,
- 'indent': do_indent,
- 'int': do_int,
- 'join': do_join,
- 'last': do_last,
- 'length': len,
- 'list': do_list,
- 'lower': do_lower,
- 'map': do_map,
- 'pprint': do_pprint,
- 'random': do_random,
- 'reject': do_reject,
- 'rejectattr': do_rejectattr,
- 'replace': do_replace,
- 'reverse': do_reverse,
- 'round': do_round,
- 'safe': do_mark_safe,
- 'select': do_select,
- 'selectattr': do_selectattr,
- 'slice': do_slice,
- 'sort': do_sort,
- 'string': soft_unicode,
- 'striptags': do_striptags,
- 'sum': do_sum,
- 'title': do_title,
- 'trim': do_trim,
- 'truncate': do_truncate,
- 'upper': do_upper,
- 'urlencode': do_urlencode,
- 'urlize': do_urlize,
- 'wordcount': do_wordcount,
- 'wordwrap': do_wordwrap,
- 'xmlattr': do_xmlattr,
-}
diff --git a/vendor/jinja2/lexer.py b/vendor/jinja2/lexer.py
deleted file mode 100644
index c8dac214..00000000
--- a/vendor/jinja2/lexer.py
+++ /dev/null
@@ -1,734 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.lexer
- ~~~~~~~~~~~~
-
- This module implements a Jinja / Python combination lexer. The
- `Lexer` class provided by this module is used to do some preprocessing
- for Jinja.
-
- On the one hand it filters out invalid operators like the bitshift
- operators we don't allow in templates. On the other hand it separates
- template code and python code in expressions.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import re
-
-from operator import itemgetter
-from collections import deque
-from jinja2.exceptions import TemplateSyntaxError
-from jinja2.utils import LRUCache
-from jinja2._compat import iteritems, implements_iterator, text_type, \
- intern, PY2
-
-
-# cache for the lexers. Exists in order to be able to have multiple
-# environments with the same lexer
-_lexer_cache = LRUCache(50)
-
-# static regular expressions
-whitespace_re = re.compile(r'\s+', re.U)
-string_re = re.compile(r"('([^'\\]*(?:\\.[^'\\]*)*)'"
- r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.S)
-integer_re = re.compile(r'\d+')
-
-# we use the unicode identifier rule if this python version is able
-# to handle unicode identifiers, otherwise the standard ASCII one.
-try:
- compile('föö', '', 'eval')
-except SyntaxError:
- name_re = re.compile(r'\b[a-zA-Z_][a-zA-Z0-9_]*\b')
-else:
- from jinja2 import _stringdefs
- name_re = re.compile(r'[%s][%s]*' % (_stringdefs.xid_start,
- _stringdefs.xid_continue))
-
-float_re = re.compile(r'(?': TOKEN_GT,
- '>=': TOKEN_GTEQ,
- '<': TOKEN_LT,
- '<=': TOKEN_LTEQ,
- '=': TOKEN_ASSIGN,
- '.': TOKEN_DOT,
- ':': TOKEN_COLON,
- '|': TOKEN_PIPE,
- ',': TOKEN_COMMA,
- ';': TOKEN_SEMICOLON
-}
-
-reverse_operators = dict([(v, k) for k, v in iteritems(operators)])
-assert len(operators) == len(reverse_operators), 'operators dropped'
-operator_re = re.compile('(%s)' % '|'.join(re.escape(x) for x in
- sorted(operators, key=lambda x: -len(x))))
-
-ignored_tokens = frozenset([TOKEN_COMMENT_BEGIN, TOKEN_COMMENT,
- TOKEN_COMMENT_END, TOKEN_WHITESPACE,
- TOKEN_LINECOMMENT_BEGIN, TOKEN_LINECOMMENT_END,
- TOKEN_LINECOMMENT])
-ignore_if_empty = frozenset([TOKEN_WHITESPACE, TOKEN_DATA,
- TOKEN_COMMENT, TOKEN_LINECOMMENT])
-
-
-def _describe_token_type(token_type):
- if token_type in reverse_operators:
- return reverse_operators[token_type]
- return {
- TOKEN_COMMENT_BEGIN: 'begin of comment',
- TOKEN_COMMENT_END: 'end of comment',
- TOKEN_COMMENT: 'comment',
- TOKEN_LINECOMMENT: 'comment',
- TOKEN_BLOCK_BEGIN: 'begin of statement block',
- TOKEN_BLOCK_END: 'end of statement block',
- TOKEN_VARIABLE_BEGIN: 'begin of print statement',
- TOKEN_VARIABLE_END: 'end of print statement',
- TOKEN_LINESTATEMENT_BEGIN: 'begin of line statement',
- TOKEN_LINESTATEMENT_END: 'end of line statement',
- TOKEN_DATA: 'template data / text',
- TOKEN_EOF: 'end of template'
- }.get(token_type, token_type)
-
-
-def describe_token(token):
- """Returns a description of the token."""
- if token.type == 'name':
- return token.value
- return _describe_token_type(token.type)
-
-
-def describe_token_expr(expr):
- """Like `describe_token` but for token expressions."""
- if ':' in expr:
- type, value = expr.split(':', 1)
- if type == 'name':
- return value
- else:
- type = expr
- return _describe_token_type(type)
-
-
-def count_newlines(value):
- """Count the number of newline characters in the string. This is
- useful for extensions that filter a stream.
- """
- return len(newline_re.findall(value))
-
-
-def compile_rules(environment):
- """Compiles all the rules from the environment into a list of rules."""
- e = re.escape
- rules = [
- (len(environment.comment_start_string), 'comment',
- e(environment.comment_start_string)),
- (len(environment.block_start_string), 'block',
- e(environment.block_start_string)),
- (len(environment.variable_start_string), 'variable',
- e(environment.variable_start_string))
- ]
-
- if environment.line_statement_prefix is not None:
- rules.append((len(environment.line_statement_prefix), 'linestatement',
- r'^[ \t\v]*' + e(environment.line_statement_prefix)))
- if environment.line_comment_prefix is not None:
- rules.append((len(environment.line_comment_prefix), 'linecomment',
- r'(?:^|(?<=\S))[^\S\r\n]*' +
- e(environment.line_comment_prefix)))
-
- return [x[1:] for x in sorted(rules, reverse=True)]
-
-
-class Failure(object):
- """Class that raises a `TemplateSyntaxError` if called.
- Used by the `Lexer` to specify known errors.
- """
-
- def __init__(self, message, cls=TemplateSyntaxError):
- self.message = message
- self.error_class = cls
-
- def __call__(self, lineno, filename):
- raise self.error_class(self.message, lineno, filename)
-
-
-class Token(tuple):
- """Token class."""
- __slots__ = ()
- lineno, type, value = (property(itemgetter(x)) for x in range(3))
-
- def __new__(cls, lineno, type, value):
- return tuple.__new__(cls, (lineno, intern(str(type)), value))
-
- def __str__(self):
- if self.type in reverse_operators:
- return reverse_operators[self.type]
- elif self.type == 'name':
- return self.value
- return self.type
-
- def test(self, expr):
- """Test a token against a token expression. This can either be a
- token type or ``'token_type:token_value'``. This can only test
- against string values and types.
- """
- # here we do a regular string equality check as test_any is usually
- # passed an iterable of not interned strings.
- if self.type == expr:
- return True
- elif ':' in expr:
- return expr.split(':', 1) == [self.type, self.value]
- return False
-
- def test_any(self, *iterable):
- """Test against multiple token expressions."""
- for expr in iterable:
- if self.test(expr):
- return True
- return False
-
- def __repr__(self):
- return 'Token(%r, %r, %r)' % (
- self.lineno,
- self.type,
- self.value
- )
-
-
-@implements_iterator
-class TokenStreamIterator(object):
- """The iterator for tokenstreams. Iterate over the stream
- until the eof token is reached.
- """
-
- def __init__(self, stream):
- self.stream = stream
-
- def __iter__(self):
- return self
-
- def __next__(self):
- token = self.stream.current
- if token.type is TOKEN_EOF:
- self.stream.close()
- raise StopIteration()
- next(self.stream)
- return token
-
-
-@implements_iterator
-class TokenStream(object):
- """A token stream is an iterable that yields :class:`Token`\s. The
- parser however does not iterate over it but calls :meth:`next` to go
- one token ahead. The current active token is stored as :attr:`current`.
- """
-
- def __init__(self, generator, name, filename):
- self._iter = iter(generator)
- self._pushed = deque()
- self.name = name
- self.filename = filename
- self.closed = False
- self.current = Token(1, TOKEN_INITIAL, '')
- next(self)
-
- def __iter__(self):
- return TokenStreamIterator(self)
-
- def __bool__(self):
- return bool(self._pushed) or self.current.type is not TOKEN_EOF
- __nonzero__ = __bool__ # py2
-
- eos = property(lambda x: not x, doc="Are we at the end of the stream?")
-
- def push(self, token):
- """Push a token back to the stream."""
- self._pushed.append(token)
-
- def look(self):
- """Look at the next token."""
- old_token = next(self)
- result = self.current
- self.push(result)
- self.current = old_token
- return result
-
- def skip(self, n=1):
- """Got n tokens ahead."""
- for x in range(n):
- next(self)
-
- def next_if(self, expr):
- """Perform the token test and return the token if it matched.
- Otherwise the return value is `None`.
- """
- if self.current.test(expr):
- return next(self)
-
- def skip_if(self, expr):
- """Like :meth:`next_if` but only returns `True` or `False`."""
- return self.next_if(expr) is not None
-
- def __next__(self):
- """Go one token ahead and return the old one"""
- rv = self.current
- if self._pushed:
- self.current = self._pushed.popleft()
- elif self.current.type is not TOKEN_EOF:
- try:
- self.current = next(self._iter)
- except StopIteration:
- self.close()
- return rv
-
- def close(self):
- """Close the stream."""
- self.current = Token(self.current.lineno, TOKEN_EOF, '')
- self._iter = None
- self.closed = True
-
- def expect(self, expr):
- """Expect a given token type and return it. This accepts the same
- argument as :meth:`jinja2.lexer.Token.test`.
- """
- if not self.current.test(expr):
- expr = describe_token_expr(expr)
- if self.current.type is TOKEN_EOF:
- raise TemplateSyntaxError('unexpected end of template, '
- 'expected %r.' % expr,
- self.current.lineno,
- self.name, self.filename)
- raise TemplateSyntaxError("expected token %r, got %r" %
- (expr, describe_token(self.current)),
- self.current.lineno,
- self.name, self.filename)
- try:
- return self.current
- finally:
- next(self)
-
-
-def get_lexer(environment):
- """Return a lexer which is probably cached."""
- key = (environment.block_start_string,
- environment.block_end_string,
- environment.variable_start_string,
- environment.variable_end_string,
- environment.comment_start_string,
- environment.comment_end_string,
- environment.line_statement_prefix,
- environment.line_comment_prefix,
- environment.trim_blocks,
- environment.lstrip_blocks,
- environment.newline_sequence,
- environment.keep_trailing_newline)
- lexer = _lexer_cache.get(key)
- if lexer is None:
- lexer = Lexer(environment)
- _lexer_cache[key] = lexer
- return lexer
-
-
-class Lexer(object):
- """Class that implements a lexer for a given environment. Automatically
- created by the environment class, usually you don't have to do that.
-
- Note that the lexer is not automatically bound to an environment.
- Multiple environments can share the same lexer.
- """
-
- def __init__(self, environment):
- # shortcuts
- c = lambda x: re.compile(x, re.M | re.S)
- e = re.escape
-
- # lexing rules for tags
- tag_rules = [
- (whitespace_re, TOKEN_WHITESPACE, None),
- (float_re, TOKEN_FLOAT, None),
- (integer_re, TOKEN_INTEGER, None),
- (name_re, TOKEN_NAME, None),
- (string_re, TOKEN_STRING, None),
- (operator_re, TOKEN_OPERATOR, None)
- ]
-
- # assemble the root lexing rule. because "|" is ungreedy
- # we have to sort by length so that the lexer continues working
- # as expected when we have parsing rules like <% for block and
- # <%= for variables. (if someone wants asp like syntax)
- # variables are just part of the rules if variable processing
- # is required.
- root_tag_rules = compile_rules(environment)
-
- # block suffix if trimming is enabled
- block_suffix_re = environment.trim_blocks and '\\n?' or ''
-
- # strip leading spaces if lstrip_blocks is enabled
- prefix_re = {}
- if environment.lstrip_blocks:
- # use '{%+' to manually disable lstrip_blocks behavior
- no_lstrip_re = e('+')
- # detect overlap between block and variable or comment strings
- block_diff = c(r'^%s(.*)' % e(environment.block_start_string))
- # make sure we don't mistake a block for a variable or a comment
- m = block_diff.match(environment.comment_start_string)
- no_lstrip_re += m and r'|%s' % e(m.group(1)) or ''
- m = block_diff.match(environment.variable_start_string)
- no_lstrip_re += m and r'|%s' % e(m.group(1)) or ''
-
- # detect overlap between comment and variable strings
- comment_diff = c(r'^%s(.*)' % e(environment.comment_start_string))
- m = comment_diff.match(environment.variable_start_string)
- no_variable_re = m and r'(?!%s)' % e(m.group(1)) or ''
-
- lstrip_re = r'^[ \t]*'
- block_prefix_re = r'%s%s(?!%s)|%s\+?' % (
- lstrip_re,
- e(environment.block_start_string),
- no_lstrip_re,
- e(environment.block_start_string),
- )
- comment_prefix_re = r'%s%s%s|%s\+?' % (
- lstrip_re,
- e(environment.comment_start_string),
- no_variable_re,
- e(environment.comment_start_string),
- )
- prefix_re['block'] = block_prefix_re
- prefix_re['comment'] = comment_prefix_re
- else:
- block_prefix_re = '%s' % e(environment.block_start_string)
-
- self.newline_sequence = environment.newline_sequence
- self.keep_trailing_newline = environment.keep_trailing_newline
-
- # global lexing rules
- self.rules = {
- 'root': [
- # directives
- (c('(.*?)(?:%s)' % '|'.join(
- [r'(?P(?:\s*%s\-|%s)\s*raw\s*(?:\-%s\s*|%s))' % (
- e(environment.block_start_string),
- block_prefix_re,
- e(environment.block_end_string),
- e(environment.block_end_string)
- )] + [
- r'(?P<%s_begin>\s*%s\-|%s)' % (n, r, prefix_re.get(n,r))
- for n, r in root_tag_rules
- ])), (TOKEN_DATA, '#bygroup'), '#bygroup'),
- # data
- (c('.+'), TOKEN_DATA, None)
- ],
- # comments
- TOKEN_COMMENT_BEGIN: [
- (c(r'(.*?)((?:\-%s\s*|%s)%s)' % (
- e(environment.comment_end_string),
- e(environment.comment_end_string),
- block_suffix_re
- )), (TOKEN_COMMENT, TOKEN_COMMENT_END), '#pop'),
- (c('(.)'), (Failure('Missing end of comment tag'),), None)
- ],
- # blocks
- TOKEN_BLOCK_BEGIN: [
- (c('(?:\-%s\s*|%s)%s' % (
- e(environment.block_end_string),
- e(environment.block_end_string),
- block_suffix_re
- )), TOKEN_BLOCK_END, '#pop'),
- ] + tag_rules,
- # variables
- TOKEN_VARIABLE_BEGIN: [
- (c('\-%s\s*|%s' % (
- e(environment.variable_end_string),
- e(environment.variable_end_string)
- )), TOKEN_VARIABLE_END, '#pop')
- ] + tag_rules,
- # raw block
- TOKEN_RAW_BEGIN: [
- (c('(.*?)((?:\s*%s\-|%s)\s*endraw\s*(?:\-%s\s*|%s%s))' % (
- e(environment.block_start_string),
- block_prefix_re,
- e(environment.block_end_string),
- e(environment.block_end_string),
- block_suffix_re
- )), (TOKEN_DATA, TOKEN_RAW_END), '#pop'),
- (c('(.)'), (Failure('Missing end of raw directive'),), None)
- ],
- # line statements
- TOKEN_LINESTATEMENT_BEGIN: [
- (c(r'\s*(\n|$)'), TOKEN_LINESTATEMENT_END, '#pop')
- ] + tag_rules,
- # line comments
- TOKEN_LINECOMMENT_BEGIN: [
- (c(r'(.*?)()(?=\n|$)'), (TOKEN_LINECOMMENT,
- TOKEN_LINECOMMENT_END), '#pop')
- ]
- }
-
- def _normalize_newlines(self, value):
- """Called for strings and template data to normalize it to unicode."""
- return newline_re.sub(self.newline_sequence, value)
-
- def tokenize(self, source, name=None, filename=None, state=None):
- """Calls tokeniter + tokenize and wraps it in a token stream.
- """
- stream = self.tokeniter(source, name, filename, state)
- return TokenStream(self.wrap(stream, name, filename), name, filename)
-
- def wrap(self, stream, name=None, filename=None):
- """This is called with the stream as returned by `tokenize` and wraps
- every token in a :class:`Token` and converts the value.
- """
- for lineno, token, value in stream:
- if token in ignored_tokens:
- continue
- elif token == 'linestatement_begin':
- token = 'block_begin'
- elif token == 'linestatement_end':
- token = 'block_end'
- # we are not interested in those tokens in the parser
- elif token in ('raw_begin', 'raw_end'):
- continue
- elif token == 'data':
- value = self._normalize_newlines(value)
- elif token == 'keyword':
- token = value
- elif token == 'name':
- value = str(value)
- elif token == 'string':
- # try to unescape string
- try:
- value = self._normalize_newlines(value[1:-1]) \
- .encode('ascii', 'backslashreplace') \
- .decode('unicode-escape')
- except Exception as e:
- msg = str(e).split(':')[-1].strip()
- raise TemplateSyntaxError(msg, lineno, name, filename)
- # if we can express it as bytestring (ascii only)
- # we do that for support of semi broken APIs
- # as datetime.datetime.strftime. On python 3 this
- # call becomes a noop thanks to 2to3
- if PY2:
- try:
- value = value.encode('ascii')
- except UnicodeError:
- pass
- elif token == 'integer':
- value = int(value)
- elif token == 'float':
- value = float(value)
- elif token == 'operator':
- token = operators[value]
- yield Token(lineno, token, value)
-
- def tokeniter(self, source, name, filename=None, state=None):
- """This method tokenizes the text and returns the tokens in a
- generator. Use this method if you just want to tokenize a template.
- """
- source = text_type(source)
- lines = source.splitlines()
- if self.keep_trailing_newline and source:
- for newline in ('\r\n', '\r', '\n'):
- if source.endswith(newline):
- lines.append('')
- break
- source = '\n'.join(lines)
- pos = 0
- lineno = 1
- stack = ['root']
- if state is not None and state != 'root':
- assert state in ('variable', 'block'), 'invalid state'
- stack.append(state + '_begin')
- else:
- state = 'root'
- statetokens = self.rules[stack[-1]]
- source_length = len(source)
-
- balancing_stack = []
-
- while 1:
- # tokenizer loop
- for regex, tokens, new_state in statetokens:
- m = regex.match(source, pos)
- # if no match we try again with the next rule
- if m is None:
- continue
-
- # we only match blocks and variables if braces / parentheses
- # are balanced. continue parsing with the lower rule which
- # is the operator rule. do this only if the end tags look
- # like operators
- if balancing_stack and \
- tokens in ('variable_end', 'block_end',
- 'linestatement_end'):
- continue
-
- # tuples support more options
- if isinstance(tokens, tuple):
- for idx, token in enumerate(tokens):
- # failure group
- if token.__class__ is Failure:
- raise token(lineno, filename)
- # bygroup is a bit more complex, in that case we
- # yield for the current token the first named
- # group that matched
- elif token == '#bygroup':
- for key, value in iteritems(m.groupdict()):
- if value is not None:
- yield lineno, key, value
- lineno += value.count('\n')
- break
- else:
- raise RuntimeError('%r wanted to resolve '
- 'the token dynamically'
- ' but no group matched'
- % regex)
- # normal group
- else:
- data = m.group(idx + 1)
- if data or token not in ignore_if_empty:
- yield lineno, token, data
- lineno += data.count('\n')
-
- # strings as token just are yielded as it.
- else:
- data = m.group()
- # update brace/parentheses balance
- if tokens == 'operator':
- if data == '{':
- balancing_stack.append('}')
- elif data == '(':
- balancing_stack.append(')')
- elif data == '[':
- balancing_stack.append(']')
- elif data in ('}', ')', ']'):
- if not balancing_stack:
- raise TemplateSyntaxError('unexpected \'%s\'' %
- data, lineno, name,
- filename)
- expected_op = balancing_stack.pop()
- if expected_op != data:
- raise TemplateSyntaxError('unexpected \'%s\', '
- 'expected \'%s\'' %
- (data, expected_op),
- lineno, name,
- filename)
- # yield items
- if data or tokens not in ignore_if_empty:
- yield lineno, tokens, data
- lineno += data.count('\n')
-
- # fetch new position into new variable so that we can check
- # if there is a internal parsing error which would result
- # in an infinite loop
- pos2 = m.end()
-
- # handle state changes
- if new_state is not None:
- # remove the uppermost state
- if new_state == '#pop':
- stack.pop()
- # resolve the new state by group checking
- elif new_state == '#bygroup':
- for key, value in iteritems(m.groupdict()):
- if value is not None:
- stack.append(key)
- break
- else:
- raise RuntimeError('%r wanted to resolve the '
- 'new state dynamically but'
- ' no group matched' %
- regex)
- # direct state name given
- else:
- stack.append(new_state)
- statetokens = self.rules[stack[-1]]
- # we are still at the same position and no stack change.
- # this means a loop without break condition, avoid that and
- # raise error
- elif pos2 == pos:
- raise RuntimeError('%r yielded empty string without '
- 'stack change' % regex)
- # publish new function and start again
- pos = pos2
- break
- # if loop terminated without break we haven't found a single match
- # either we are at the end of the file or we have a problem
- else:
- # end of text
- if pos >= source_length:
- return
- # something went wrong
- raise TemplateSyntaxError('unexpected char %r at %d' %
- (source[pos], pos), lineno,
- name, filename)
diff --git a/vendor/jinja2/loaders.py b/vendor/jinja2/loaders.py
deleted file mode 100644
index 44aa3925..00000000
--- a/vendor/jinja2/loaders.py
+++ /dev/null
@@ -1,481 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.loaders
- ~~~~~~~~~~~~~~
-
- Jinja loader classes.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import os
-import sys
-import weakref
-from types import ModuleType
-from os import path
-from hashlib import sha1
-from jinja2.exceptions import TemplateNotFound
-from jinja2.utils import open_if_exists, internalcode
-from jinja2._compat import string_types, iteritems
-
-
-def split_template_path(template):
- """Split a path into segments and perform a sanity check. If it detects
- '..' in the path it will raise a `TemplateNotFound` error.
- """
- pieces = []
- for piece in template.split('/'):
- if path.sep in piece \
- or (path.altsep and path.altsep in piece) or \
- piece == path.pardir:
- raise TemplateNotFound(template)
- elif piece and piece != '.':
- pieces.append(piece)
- return pieces
-
-
-class BaseLoader(object):
- """Baseclass for all loaders. Subclass this and override `get_source` to
- implement a custom loading mechanism. The environment provides a
- `get_template` method that calls the loader's `load` method to get the
- :class:`Template` object.
-
- A very basic example for a loader that looks up templates on the file
- system could look like this::
-
- from jinja2 import BaseLoader, TemplateNotFound
- from os.path import join, exists, getmtime
-
- class MyLoader(BaseLoader):
-
- def __init__(self, path):
- self.path = path
-
- def get_source(self, environment, template):
- path = join(self.path, template)
- if not exists(path):
- raise TemplateNotFound(template)
- mtime = getmtime(path)
- with file(path) as f:
- source = f.read().decode('utf-8')
- return source, path, lambda: mtime == getmtime(path)
- """
-
- #: if set to `False` it indicates that the loader cannot provide access
- #: to the source of templates.
- #:
- #: .. versionadded:: 2.4
- has_source_access = True
-
- def get_source(self, environment, template):
- """Get the template source, filename and reload helper for a template.
- It's passed the environment and template name and has to return a
- tuple in the form ``(source, filename, uptodate)`` or raise a
- `TemplateNotFound` error if it can't locate the template.
-
- The source part of the returned tuple must be the source of the
- template as unicode string or a ASCII bytestring. The filename should
- be the name of the file on the filesystem if it was loaded from there,
- otherwise `None`. The filename is used by python for the tracebacks
- if no loader extension is used.
-
- The last item in the tuple is the `uptodate` function. If auto
- reloading is enabled it's always called to check if the template
- changed. No arguments are passed so the function must store the
- old state somewhere (for example in a closure). If it returns `False`
- the template will be reloaded.
- """
- if not self.has_source_access:
- raise RuntimeError('%s cannot provide access to the source' %
- self.__class__.__name__)
- raise TemplateNotFound(template)
-
- def list_templates(self):
- """Iterates over all templates. If the loader does not support that
- it should raise a :exc:`TypeError` which is the default behavior.
- """
- raise TypeError('this loader cannot iterate over all templates')
-
- @internalcode
- def load(self, environment, name, globals=None):
- """Loads a template. This method looks up the template in the cache
- or loads one by calling :meth:`get_source`. Subclasses should not
- override this method as loaders working on collections of other
- loaders (such as :class:`PrefixLoader` or :class:`ChoiceLoader`)
- will not call this method but `get_source` directly.
- """
- code = None
- if globals is None:
- globals = {}
-
- # first we try to get the source for this template together
- # with the filename and the uptodate function.
- source, filename, uptodate = self.get_source(environment, name)
-
- # try to load the code from the bytecode cache if there is a
- # bytecode cache configured.
- bcc = environment.bytecode_cache
- if bcc is not None:
- bucket = bcc.get_bucket(environment, name, filename, source)
- code = bucket.code
-
- # if we don't have code so far (not cached, no longer up to
- # date) etc. we compile the template
- if code is None:
- code = environment.compile(source, name, filename)
-
- # if the bytecode cache is available and the bucket doesn't
- # have a code so far, we give the bucket the new code and put
- # it back to the bytecode cache.
- if bcc is not None and bucket.code is None:
- bucket.code = code
- bcc.set_bucket(bucket)
-
- return environment.template_class.from_code(environment, code,
- globals, uptodate)
-
-
-class FileSystemLoader(BaseLoader):
- """Loads templates from the file system. This loader can find templates
- in folders on the file system and is the preferred way to load them.
-
- The loader takes the path to the templates as string, or if multiple
- locations are wanted a list of them which is then looked up in the
- given order::
-
- >>> loader = FileSystemLoader('/path/to/templates')
- >>> loader = FileSystemLoader(['/path/to/templates', '/other/path'])
-
- Per default the template encoding is ``'utf-8'`` which can be changed
- by setting the `encoding` parameter to something else.
-
- To follow symbolic links, set the *followlinks* parameter to ``True``::
-
- >>> loader = FileSystemLoader('/path/to/templates', followlinks=True)
-
- .. versionchanged:: 2.8+
- The *followlinks* parameter was added.
- """
-
- def __init__(self, searchpath, encoding='utf-8', followlinks=False):
- if isinstance(searchpath, string_types):
- searchpath = [searchpath]
- self.searchpath = list(searchpath)
- self.encoding = encoding
- self.followlinks = followlinks
-
- def get_source(self, environment, template):
- pieces = split_template_path(template)
- for searchpath in self.searchpath:
- filename = path.join(searchpath, *pieces)
- f = open_if_exists(filename)
- if f is None:
- continue
- try:
- contents = f.read().decode(self.encoding)
- finally:
- f.close()
-
- mtime = path.getmtime(filename)
-
- def uptodate():
- try:
- return path.getmtime(filename) == mtime
- except OSError:
- return False
- return contents, filename, uptodate
- raise TemplateNotFound(template)
-
- def list_templates(self):
- found = set()
- for searchpath in self.searchpath:
- walk_dir = os.walk(searchpath, followlinks=self.followlinks)
- for dirpath, dirnames, filenames in walk_dir:
- for filename in filenames:
- template = os.path.join(dirpath, filename) \
- [len(searchpath):].strip(os.path.sep) \
- .replace(os.path.sep, '/')
- if template[:2] == './':
- template = template[2:]
- if template not in found:
- found.add(template)
- return sorted(found)
-
-
-class PackageLoader(BaseLoader):
- """Load templates from python eggs or packages. It is constructed with
- the name of the python package and the path to the templates in that
- package::
-
- loader = PackageLoader('mypackage', 'views')
-
- If the package path is not given, ``'templates'`` is assumed.
-
- Per default the template encoding is ``'utf-8'`` which can be changed
- by setting the `encoding` parameter to something else. Due to the nature
- of eggs it's only possible to reload templates if the package was loaded
- from the file system and not a zip file.
- """
-
- def __init__(self, package_name, package_path='templates',
- encoding='utf-8'):
- from pkg_resources import DefaultProvider, ResourceManager, \
- get_provider
- provider = get_provider(package_name)
- self.encoding = encoding
- self.manager = ResourceManager()
- self.filesystem_bound = isinstance(provider, DefaultProvider)
- self.provider = provider
- self.package_path = package_path
-
- def get_source(self, environment, template):
- pieces = split_template_path(template)
- p = '/'.join((self.package_path,) + tuple(pieces))
- if not self.provider.has_resource(p):
- raise TemplateNotFound(template)
-
- filename = uptodate = None
- if self.filesystem_bound:
- filename = self.provider.get_resource_filename(self.manager, p)
- mtime = path.getmtime(filename)
- def uptodate():
- try:
- return path.getmtime(filename) == mtime
- except OSError:
- return False
-
- source = self.provider.get_resource_string(self.manager, p)
- return source.decode(self.encoding), filename, uptodate
-
- def list_templates(self):
- path = self.package_path
- if path[:2] == './':
- path = path[2:]
- elif path == '.':
- path = ''
- offset = len(path)
- results = []
- def _walk(path):
- for filename in self.provider.resource_listdir(path):
- fullname = path + '/' + filename
- if self.provider.resource_isdir(fullname):
- _walk(fullname)
- else:
- results.append(fullname[offset:].lstrip('/'))
- _walk(path)
- results.sort()
- return results
-
-
-class DictLoader(BaseLoader):
- """Loads a template from a python dict. It's passed a dict of unicode
- strings bound to template names. This loader is useful for unittesting:
-
- >>> loader = DictLoader({'index.html': 'source here'})
-
- Because auto reloading is rarely useful this is disabled per default.
- """
-
- def __init__(self, mapping):
- self.mapping = mapping
-
- def get_source(self, environment, template):
- if template in self.mapping:
- source = self.mapping[template]
- return source, None, lambda: source == self.mapping.get(template)
- raise TemplateNotFound(template)
-
- def list_templates(self):
- return sorted(self.mapping)
-
-
-class FunctionLoader(BaseLoader):
- """A loader that is passed a function which does the loading. The
- function receives the name of the template and has to return either
- an unicode string with the template source, a tuple in the form ``(source,
- filename, uptodatefunc)`` or `None` if the template does not exist.
-
- >>> def load_template(name):
- ... if name == 'index.html':
- ... return '...'
- ...
- >>> loader = FunctionLoader(load_template)
-
- The `uptodatefunc` is a function that is called if autoreload is enabled
- and has to return `True` if the template is still up to date. For more
- details have a look at :meth:`BaseLoader.get_source` which has the same
- return value.
- """
-
- def __init__(self, load_func):
- self.load_func = load_func
-
- def get_source(self, environment, template):
- rv = self.load_func(template)
- if rv is None:
- raise TemplateNotFound(template)
- elif isinstance(rv, string_types):
- return rv, None, None
- return rv
-
-
-class PrefixLoader(BaseLoader):
- """A loader that is passed a dict of loaders where each loader is bound
- to a prefix. The prefix is delimited from the template by a slash per
- default, which can be changed by setting the `delimiter` argument to
- something else::
-
- loader = PrefixLoader({
- 'app1': PackageLoader('mypackage.app1'),
- 'app2': PackageLoader('mypackage.app2')
- })
-
- By loading ``'app1/index.html'`` the file from the app1 package is loaded,
- by loading ``'app2/index.html'`` the file from the second.
- """
-
- def __init__(self, mapping, delimiter='/'):
- self.mapping = mapping
- self.delimiter = delimiter
-
- def get_loader(self, template):
- try:
- prefix, name = template.split(self.delimiter, 1)
- loader = self.mapping[prefix]
- except (ValueError, KeyError):
- raise TemplateNotFound(template)
- return loader, name
-
- def get_source(self, environment, template):
- loader, name = self.get_loader(template)
- try:
- return loader.get_source(environment, name)
- except TemplateNotFound:
- # re-raise the exception with the correct fileame here.
- # (the one that includes the prefix)
- raise TemplateNotFound(template)
-
- @internalcode
- def load(self, environment, name, globals=None):
- loader, local_name = self.get_loader(name)
- try:
- return loader.load(environment, local_name, globals)
- except TemplateNotFound:
- # re-raise the exception with the correct fileame here.
- # (the one that includes the prefix)
- raise TemplateNotFound(name)
-
- def list_templates(self):
- result = []
- for prefix, loader in iteritems(self.mapping):
- for template in loader.list_templates():
- result.append(prefix + self.delimiter + template)
- return result
-
-
-class ChoiceLoader(BaseLoader):
- """This loader works like the `PrefixLoader` just that no prefix is
- specified. If a template could not be found by one loader the next one
- is tried.
-
- >>> loader = ChoiceLoader([
- ... FileSystemLoader('/path/to/user/templates'),
- ... FileSystemLoader('/path/to/system/templates')
- ... ])
-
- This is useful if you want to allow users to override builtin templates
- from a different location.
- """
-
- def __init__(self, loaders):
- self.loaders = loaders
-
- def get_source(self, environment, template):
- for loader in self.loaders:
- try:
- return loader.get_source(environment, template)
- except TemplateNotFound:
- pass
- raise TemplateNotFound(template)
-
- @internalcode
- def load(self, environment, name, globals=None):
- for loader in self.loaders:
- try:
- return loader.load(environment, name, globals)
- except TemplateNotFound:
- pass
- raise TemplateNotFound(name)
-
- def list_templates(self):
- found = set()
- for loader in self.loaders:
- found.update(loader.list_templates())
- return sorted(found)
-
-
-class _TemplateModule(ModuleType):
- """Like a normal module but with support for weak references"""
-
-
-class ModuleLoader(BaseLoader):
- """This loader loads templates from precompiled templates.
-
- Example usage:
-
- >>> loader = ChoiceLoader([
- ... ModuleLoader('/path/to/compiled/templates'),
- ... FileSystemLoader('/path/to/templates')
- ... ])
-
- Templates can be precompiled with :meth:`Environment.compile_templates`.
- """
-
- has_source_access = False
-
- def __init__(self, path):
- package_name = '_jinja2_module_templates_%x' % id(self)
-
- # create a fake module that looks for the templates in the
- # path given.
- mod = _TemplateModule(package_name)
- if isinstance(path, string_types):
- path = [path]
- else:
- path = list(path)
- mod.__path__ = path
-
- sys.modules[package_name] = weakref.proxy(mod,
- lambda x: sys.modules.pop(package_name, None))
-
- # the only strong reference, the sys.modules entry is weak
- # so that the garbage collector can remove it once the
- # loader that created it goes out of business.
- self.module = mod
- self.package_name = package_name
-
- @staticmethod
- def get_template_key(name):
- return 'tmpl_' + sha1(name.encode('utf-8')).hexdigest()
-
- @staticmethod
- def get_module_filename(name):
- return ModuleLoader.get_template_key(name) + '.py'
-
- @internalcode
- def load(self, environment, name, globals=None):
- key = self.get_template_key(name)
- module = '%s.%s' % (self.package_name, key)
- mod = getattr(self.module, module, None)
- if mod is None:
- try:
- mod = __import__(module, None, None, ['root'])
- except ImportError:
- raise TemplateNotFound(name)
-
- # remove the entry from sys.modules, we only want the attribute
- # on the module object we have stored on the loader.
- sys.modules.pop(module, None)
-
- return environment.template_class.from_module_dict(
- environment, mod.__dict__, globals)
diff --git a/vendor/jinja2/meta.py b/vendor/jinja2/meta.py
deleted file mode 100644
index 3dbab7c2..00000000
--- a/vendor/jinja2/meta.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.meta
- ~~~~~~~~~~~
-
- This module implements various functions that exposes information about
- templates that might be interesting for various kinds of applications.
-
- :copyright: (c) 2010 by the Jinja Team, see AUTHORS for more details.
- :license: BSD, see LICENSE for more details.
-"""
-from jinja2 import nodes
-from jinja2.compiler import CodeGenerator
-from jinja2._compat import string_types
-
-
-class TrackingCodeGenerator(CodeGenerator):
- """We abuse the code generator for introspection."""
-
- def __init__(self, environment):
- CodeGenerator.__init__(self, environment, '',
- '')
- self.undeclared_identifiers = set()
-
- def write(self, x):
- """Don't write."""
-
- def pull_locals(self, frame):
- """Remember all undeclared identifiers."""
- self.undeclared_identifiers.update(frame.identifiers.undeclared)
-
-
-def find_undeclared_variables(ast):
- """Returns a set of all variables in the AST that will be looked up from
- the context at runtime. Because at compile time it's not known which
- variables will be used depending on the path the execution takes at
- runtime, all variables are returned.
-
- >>> from jinja2 import Environment, meta
- >>> env = Environment()
- >>> ast = env.parse('{% set foo = 42 %}{{ bar + foo }}')
- >>> meta.find_undeclared_variables(ast) == set(['bar'])
- True
-
- .. admonition:: Implementation
-
- Internally the code generator is used for finding undeclared variables.
- This is good to know because the code generator might raise a
- :exc:`TemplateAssertionError` during compilation and as a matter of
- fact this function can currently raise that exception as well.
- """
- codegen = TrackingCodeGenerator(ast.environment)
- codegen.visit(ast)
- return codegen.undeclared_identifiers
-
-
-def find_referenced_templates(ast):
- """Finds all the referenced templates from the AST. This will return an
- iterator over all the hardcoded template extensions, inclusions and
- imports. If dynamic inheritance or inclusion is used, `None` will be
- yielded.
-
- >>> from jinja2 import Environment, meta
- >>> env = Environment()
- >>> ast = env.parse('{% extends "layout.html" %}{% include helper %}')
- >>> list(meta.find_referenced_templates(ast))
- ['layout.html', None]
-
- This function is useful for dependency tracking. For example if you want
- to rebuild parts of the website after a layout template has changed.
- """
- for node in ast.find_all((nodes.Extends, nodes.FromImport, nodes.Import,
- nodes.Include)):
- if not isinstance(node.template, nodes.Const):
- # a tuple with some non consts in there
- if isinstance(node.template, (nodes.Tuple, nodes.List)):
- for template_name in node.template.items:
- # something const, only yield the strings and ignore
- # non-string consts that really just make no sense
- if isinstance(template_name, nodes.Const):
- if isinstance(template_name.value, string_types):
- yield template_name.value
- # something dynamic in there
- else:
- yield None
- # something dynamic we don't know about here
- else:
- yield None
- continue
- # constant is a basestring, direct template name
- if isinstance(node.template.value, string_types):
- yield node.template.value
- # a tuple or list (latter *should* not happen) made of consts,
- # yield the consts that are strings. We could warn here for
- # non string values
- elif isinstance(node, nodes.Include) and \
- isinstance(node.template.value, (tuple, list)):
- for template_name in node.template.value:
- if isinstance(template_name, string_types):
- yield template_name
- # something else we don't care about, we could warn here
- else:
- yield None
diff --git a/vendor/jinja2/nodes.py b/vendor/jinja2/nodes.py
deleted file mode 100644
index d32046ce..00000000
--- a/vendor/jinja2/nodes.py
+++ /dev/null
@@ -1,919 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.nodes
- ~~~~~~~~~~~~
-
- This module implements additional nodes derived from the ast base node.
-
- It also provides some node tree helper functions like `in_lineno` and
- `get_nodes` used by the parser and translator in order to normalize
- python and jinja nodes.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import types
-import operator
-
-from collections import deque
-from jinja2.utils import Markup
-from jinja2._compat import izip, with_metaclass, text_type
-
-
-#: the types we support for context functions
-_context_function_types = (types.FunctionType, types.MethodType)
-
-
-_binop_to_func = {
- '*': operator.mul,
- '/': operator.truediv,
- '//': operator.floordiv,
- '**': operator.pow,
- '%': operator.mod,
- '+': operator.add,
- '-': operator.sub
-}
-
-_uaop_to_func = {
- 'not': operator.not_,
- '+': operator.pos,
- '-': operator.neg
-}
-
-_cmpop_to_func = {
- 'eq': operator.eq,
- 'ne': operator.ne,
- 'gt': operator.gt,
- 'gteq': operator.ge,
- 'lt': operator.lt,
- 'lteq': operator.le,
- 'in': lambda a, b: a in b,
- 'notin': lambda a, b: a not in b
-}
-
-
-class Impossible(Exception):
- """Raised if the node could not perform a requested action."""
-
-
-class NodeType(type):
- """A metaclass for nodes that handles the field and attribute
- inheritance. fields and attributes from the parent class are
- automatically forwarded to the child."""
-
- def __new__(cls, name, bases, d):
- for attr in 'fields', 'attributes':
- storage = []
- storage.extend(getattr(bases[0], attr, ()))
- storage.extend(d.get(attr, ()))
- assert len(bases) == 1, 'multiple inheritance not allowed'
- assert len(storage) == len(set(storage)), 'layout conflict'
- d[attr] = tuple(storage)
- d.setdefault('abstract', False)
- return type.__new__(cls, name, bases, d)
-
-
-class EvalContext(object):
- """Holds evaluation time information. Custom attributes can be attached
- to it in extensions.
- """
-
- def __init__(self, environment, template_name=None):
- self.environment = environment
- if callable(environment.autoescape):
- self.autoescape = environment.autoescape(template_name)
- else:
- self.autoescape = environment.autoescape
- self.volatile = False
-
- def save(self):
- return self.__dict__.copy()
-
- def revert(self, old):
- self.__dict__.clear()
- self.__dict__.update(old)
-
-
-def get_eval_context(node, ctx):
- if ctx is None:
- if node.environment is None:
- raise RuntimeError('if no eval context is passed, the '
- 'node must have an attached '
- 'environment.')
- return EvalContext(node.environment)
- return ctx
-
-
-class Node(with_metaclass(NodeType, object)):
- """Baseclass for all Jinja2 nodes. There are a number of nodes available
- of different types. There are four major types:
-
- - :class:`Stmt`: statements
- - :class:`Expr`: expressions
- - :class:`Helper`: helper nodes
- - :class:`Template`: the outermost wrapper node
-
- All nodes have fields and attributes. Fields may be other nodes, lists,
- or arbitrary values. Fields are passed to the constructor as regular
- positional arguments, attributes as keyword arguments. Each node has
- two attributes: `lineno` (the line number of the node) and `environment`.
- The `environment` attribute is set at the end of the parsing process for
- all nodes automatically.
- """
- fields = ()
- attributes = ('lineno', 'environment')
- abstract = True
-
- def __init__(self, *fields, **attributes):
- if self.abstract:
- raise TypeError('abstract nodes are not instanciable')
- if fields:
- if len(fields) != len(self.fields):
- if not self.fields:
- raise TypeError('%r takes 0 arguments' %
- self.__class__.__name__)
- raise TypeError('%r takes 0 or %d argument%s' % (
- self.__class__.__name__,
- len(self.fields),
- len(self.fields) != 1 and 's' or ''
- ))
- for name, arg in izip(self.fields, fields):
- setattr(self, name, arg)
- for attr in self.attributes:
- setattr(self, attr, attributes.pop(attr, None))
- if attributes:
- raise TypeError('unknown attribute %r' %
- next(iter(attributes)))
-
- def iter_fields(self, exclude=None, only=None):
- """This method iterates over all fields that are defined and yields
- ``(key, value)`` tuples. Per default all fields are returned, but
- it's possible to limit that to some fields by providing the `only`
- parameter or to exclude some using the `exclude` parameter. Both
- should be sets or tuples of field names.
- """
- for name in self.fields:
- if (exclude is only is None) or \
- (exclude is not None and name not in exclude) or \
- (only is not None and name in only):
- try:
- yield name, getattr(self, name)
- except AttributeError:
- pass
-
- def iter_child_nodes(self, exclude=None, only=None):
- """Iterates over all direct child nodes of the node. This iterates
- over all fields and yields the values of they are nodes. If the value
- of a field is a list all the nodes in that list are returned.
- """
- for field, item in self.iter_fields(exclude, only):
- if isinstance(item, list):
- for n in item:
- if isinstance(n, Node):
- yield n
- elif isinstance(item, Node):
- yield item
-
- def find(self, node_type):
- """Find the first node of a given type. If no such node exists the
- return value is `None`.
- """
- for result in self.find_all(node_type):
- return result
-
- def find_all(self, node_type):
- """Find all the nodes of a given type. If the type is a tuple,
- the check is performed for any of the tuple items.
- """
- for child in self.iter_child_nodes():
- if isinstance(child, node_type):
- yield child
- for result in child.find_all(node_type):
- yield result
-
- def set_ctx(self, ctx):
- """Reset the context of a node and all child nodes. Per default the
- parser will all generate nodes that have a 'load' context as it's the
- most common one. This method is used in the parser to set assignment
- targets and other nodes to a store context.
- """
- todo = deque([self])
- while todo:
- node = todo.popleft()
- if 'ctx' in node.fields:
- node.ctx = ctx
- todo.extend(node.iter_child_nodes())
- return self
-
- def set_lineno(self, lineno, override=False):
- """Set the line numbers of the node and children."""
- todo = deque([self])
- while todo:
- node = todo.popleft()
- if 'lineno' in node.attributes:
- if node.lineno is None or override:
- node.lineno = lineno
- todo.extend(node.iter_child_nodes())
- return self
-
- def set_environment(self, environment):
- """Set the environment for all nodes."""
- todo = deque([self])
- while todo:
- node = todo.popleft()
- node.environment = environment
- todo.extend(node.iter_child_nodes())
- return self
-
- def __eq__(self, other):
- return type(self) is type(other) and \
- tuple(self.iter_fields()) == tuple(other.iter_fields())
-
- def __ne__(self, other):
- return not self.__eq__(other)
-
- # Restore Python 2 hashing behavior on Python 3
- __hash__ = object.__hash__
-
- def __repr__(self):
- return '%s(%s)' % (
- self.__class__.__name__,
- ', '.join('%s=%r' % (arg, getattr(self, arg, None)) for
- arg in self.fields)
- )
-
-
-class Stmt(Node):
- """Base node for all statements."""
- abstract = True
-
-
-class Helper(Node):
- """Nodes that exist in a specific context only."""
- abstract = True
-
-
-class Template(Node):
- """Node that represents a template. This must be the outermost node that
- is passed to the compiler.
- """
- fields = ('body',)
-
-
-class Output(Stmt):
- """A node that holds multiple expressions which are then printed out.
- This is used both for the `print` statement and the regular template data.
- """
- fields = ('nodes',)
-
-
-class Extends(Stmt):
- """Represents an extends statement."""
- fields = ('template',)
-
-
-class For(Stmt):
- """The for loop. `target` is the target for the iteration (usually a
- :class:`Name` or :class:`Tuple`), `iter` the iterable. `body` is a list
- of nodes that are used as loop-body, and `else_` a list of nodes for the
- `else` block. If no else node exists it has to be an empty list.
-
- For filtered nodes an expression can be stored as `test`, otherwise `None`.
- """
- fields = ('target', 'iter', 'body', 'else_', 'test', 'recursive')
-
-
-class If(Stmt):
- """If `test` is true, `body` is rendered, else `else_`."""
- fields = ('test', 'body', 'else_')
-
-
-class Macro(Stmt):
- """A macro definition. `name` is the name of the macro, `args` a list of
- arguments and `defaults` a list of defaults if there are any. `body` is
- a list of nodes for the macro body.
- """
- fields = ('name', 'args', 'defaults', 'body')
-
-
-class CallBlock(Stmt):
- """Like a macro without a name but a call instead. `call` is called with
- the unnamed macro as `caller` argument this node holds.
- """
- fields = ('call', 'args', 'defaults', 'body')
-
-
-class FilterBlock(Stmt):
- """Node for filter sections."""
- fields = ('body', 'filter')
-
-
-class Block(Stmt):
- """A node that represents a block."""
- fields = ('name', 'body', 'scoped')
-
-
-class Include(Stmt):
- """A node that represents the include tag."""
- fields = ('template', 'with_context', 'ignore_missing')
-
-
-class Import(Stmt):
- """A node that represents the import tag."""
- fields = ('template', 'target', 'with_context')
-
-
-class FromImport(Stmt):
- """A node that represents the from import tag. It's important to not
- pass unsafe names to the name attribute. The compiler translates the
- attribute lookups directly into getattr calls and does *not* use the
- subscript callback of the interface. As exported variables may not
- start with double underscores (which the parser asserts) this is not a
- problem for regular Jinja code, but if this node is used in an extension
- extra care must be taken.
-
- The list of names may contain tuples if aliases are wanted.
- """
- fields = ('template', 'names', 'with_context')
-
-
-class ExprStmt(Stmt):
- """A statement that evaluates an expression and discards the result."""
- fields = ('node',)
-
-
-class Assign(Stmt):
- """Assigns an expression to a target."""
- fields = ('target', 'node')
-
-
-class AssignBlock(Stmt):
- """Assigns a block to a target."""
- fields = ('target', 'body')
-
-
-class Expr(Node):
- """Baseclass for all expressions."""
- abstract = True
-
- def as_const(self, eval_ctx=None):
- """Return the value of the expression as constant or raise
- :exc:`Impossible` if this was not possible.
-
- An :class:`EvalContext` can be provided, if none is given
- a default context is created which requires the nodes to have
- an attached environment.
-
- .. versionchanged:: 2.4
- the `eval_ctx` parameter was added.
- """
- raise Impossible()
-
- def can_assign(self):
- """Check if it's possible to assign something to this node."""
- return False
-
-
-class BinExpr(Expr):
- """Baseclass for all binary expressions."""
- fields = ('left', 'right')
- operator = None
- abstract = True
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- # intercepted operators cannot be folded at compile time
- if self.environment.sandboxed and \
- self.operator in self.environment.intercepted_binops:
- raise Impossible()
- f = _binop_to_func[self.operator]
- try:
- return f(self.left.as_const(eval_ctx), self.right.as_const(eval_ctx))
- except Exception:
- raise Impossible()
-
-
-class UnaryExpr(Expr):
- """Baseclass for all unary expressions."""
- fields = ('node',)
- operator = None
- abstract = True
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- # intercepted operators cannot be folded at compile time
- if self.environment.sandboxed and \
- self.operator in self.environment.intercepted_unops:
- raise Impossible()
- f = _uaop_to_func[self.operator]
- try:
- return f(self.node.as_const(eval_ctx))
- except Exception:
- raise Impossible()
-
-
-class Name(Expr):
- """Looks up a name or stores a value in a name.
- The `ctx` of the node can be one of the following values:
-
- - `store`: store a value in the name
- - `load`: load that name
- - `param`: like `store` but if the name was defined as function parameter.
- """
- fields = ('name', 'ctx')
-
- def can_assign(self):
- return self.name not in ('true', 'false', 'none',
- 'True', 'False', 'None')
-
-
-class Literal(Expr):
- """Baseclass for literals."""
- abstract = True
-
-
-class Const(Literal):
- """All constant values. The parser will return this node for simple
- constants such as ``42`` or ``"foo"`` but it can be used to store more
- complex values such as lists too. Only constants with a safe
- representation (objects where ``eval(repr(x)) == x`` is true).
- """
- fields = ('value',)
-
- def as_const(self, eval_ctx=None):
- return self.value
-
- @classmethod
- def from_untrusted(cls, value, lineno=None, environment=None):
- """Return a const object if the value is representable as
- constant value in the generated code, otherwise it will raise
- an `Impossible` exception.
- """
- from .compiler import has_safe_repr
- if not has_safe_repr(value):
- raise Impossible()
- return cls(value, lineno=lineno, environment=environment)
-
-
-class TemplateData(Literal):
- """A constant template string."""
- fields = ('data',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if eval_ctx.volatile:
- raise Impossible()
- if eval_ctx.autoescape:
- return Markup(self.data)
- return self.data
-
-
-class Tuple(Literal):
- """For loop unpacking and some other things like multiple arguments
- for subscripts. Like for :class:`Name` `ctx` specifies if the tuple
- is used for loading the names or storing.
- """
- fields = ('items', 'ctx')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return tuple(x.as_const(eval_ctx) for x in self.items)
-
- def can_assign(self):
- for item in self.items:
- if not item.can_assign():
- return False
- return True
-
-
-class List(Literal):
- """Any list literal such as ``[1, 2, 3]``"""
- fields = ('items',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return [x.as_const(eval_ctx) for x in self.items]
-
-
-class Dict(Literal):
- """Any dict literal such as ``{1: 2, 3: 4}``. The items must be a list of
- :class:`Pair` nodes.
- """
- fields = ('items',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return dict(x.as_const(eval_ctx) for x in self.items)
-
-
-class Pair(Helper):
- """A key, value pair for dicts."""
- fields = ('key', 'value')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return self.key.as_const(eval_ctx), self.value.as_const(eval_ctx)
-
-
-class Keyword(Helper):
- """A key, value pair for keyword arguments where key is a string."""
- fields = ('key', 'value')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return self.key, self.value.as_const(eval_ctx)
-
-
-class CondExpr(Expr):
- """A conditional expression (inline if expression). (``{{
- foo if bar else baz }}``)
- """
- fields = ('test', 'expr1', 'expr2')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if self.test.as_const(eval_ctx):
- return self.expr1.as_const(eval_ctx)
-
- # if we evaluate to an undefined object, we better do that at runtime
- if self.expr2 is None:
- raise Impossible()
-
- return self.expr2.as_const(eval_ctx)
-
-
-class Filter(Expr):
- """This node applies a filter on an expression. `name` is the name of
- the filter, the rest of the fields are the same as for :class:`Call`.
-
- If the `node` of a filter is `None` the contents of the last buffer are
- filtered. Buffers are created by macros and filter blocks.
- """
- fields = ('node', 'name', 'args', 'kwargs', 'dyn_args', 'dyn_kwargs')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if eval_ctx.volatile or self.node is None:
- raise Impossible()
- # we have to be careful here because we call filter_ below.
- # if this variable would be called filter, 2to3 would wrap the
- # call in a list beause it is assuming we are talking about the
- # builtin filter function here which no longer returns a list in
- # python 3. because of that, do not rename filter_ to filter!
- filter_ = self.environment.filters.get(self.name)
- if filter_ is None or getattr(filter_, 'contextfilter', False):
- raise Impossible()
- obj = self.node.as_const(eval_ctx)
- args = [x.as_const(eval_ctx) for x in self.args]
- if getattr(filter_, 'evalcontextfilter', False):
- args.insert(0, eval_ctx)
- elif getattr(filter_, 'environmentfilter', False):
- args.insert(0, self.environment)
- kwargs = dict(x.as_const(eval_ctx) for x in self.kwargs)
- if self.dyn_args is not None:
- try:
- args.extend(self.dyn_args.as_const(eval_ctx))
- except Exception:
- raise Impossible()
- if self.dyn_kwargs is not None:
- try:
- kwargs.update(self.dyn_kwargs.as_const(eval_ctx))
- except Exception:
- raise Impossible()
- try:
- return filter_(obj, *args, **kwargs)
- except Exception:
- raise Impossible()
-
-
-class Test(Expr):
- """Applies a test on an expression. `name` is the name of the test, the
- rest of the fields are the same as for :class:`Call`.
- """
- fields = ('node', 'name', 'args', 'kwargs', 'dyn_args', 'dyn_kwargs')
-
-
-class Call(Expr):
- """Calls an expression. `args` is a list of arguments, `kwargs` a list
- of keyword arguments (list of :class:`Keyword` nodes), and `dyn_args`
- and `dyn_kwargs` has to be either `None` or a node that is used as
- node for dynamic positional (``*args``) or keyword (``**kwargs``)
- arguments.
- """
- fields = ('node', 'args', 'kwargs', 'dyn_args', 'dyn_kwargs')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if eval_ctx.volatile:
- raise Impossible()
- obj = self.node.as_const(eval_ctx)
-
- # don't evaluate context functions
- args = [x.as_const(eval_ctx) for x in self.args]
- if isinstance(obj, _context_function_types):
- if getattr(obj, 'contextfunction', False):
- raise Impossible()
- elif getattr(obj, 'evalcontextfunction', False):
- args.insert(0, eval_ctx)
- elif getattr(obj, 'environmentfunction', False):
- args.insert(0, self.environment)
-
- kwargs = dict(x.as_const(eval_ctx) for x in self.kwargs)
- if self.dyn_args is not None:
- try:
- args.extend(self.dyn_args.as_const(eval_ctx))
- except Exception:
- raise Impossible()
- if self.dyn_kwargs is not None:
- try:
- kwargs.update(self.dyn_kwargs.as_const(eval_ctx))
- except Exception:
- raise Impossible()
- try:
- return obj(*args, **kwargs)
- except Exception:
- raise Impossible()
-
-
-class Getitem(Expr):
- """Get an attribute or item from an expression and prefer the item."""
- fields = ('node', 'arg', 'ctx')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if self.ctx != 'load':
- raise Impossible()
- try:
- return self.environment.getitem(self.node.as_const(eval_ctx),
- self.arg.as_const(eval_ctx))
- except Exception:
- raise Impossible()
-
- def can_assign(self):
- return False
-
-
-class Getattr(Expr):
- """Get an attribute or item from an expression that is a ascii-only
- bytestring and prefer the attribute.
- """
- fields = ('node', 'attr', 'ctx')
-
- def as_const(self, eval_ctx=None):
- if self.ctx != 'load':
- raise Impossible()
- try:
- eval_ctx = get_eval_context(self, eval_ctx)
- return self.environment.getattr(self.node.as_const(eval_ctx),
- self.attr)
- except Exception:
- raise Impossible()
-
- def can_assign(self):
- return False
-
-
-class Slice(Expr):
- """Represents a slice object. This must only be used as argument for
- :class:`Subscript`.
- """
- fields = ('start', 'stop', 'step')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- def const(obj):
- if obj is None:
- return None
- return obj.as_const(eval_ctx)
- return slice(const(self.start), const(self.stop), const(self.step))
-
-
-class Concat(Expr):
- """Concatenates the list of expressions provided after converting them to
- unicode.
- """
- fields = ('nodes',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return ''.join(text_type(x.as_const(eval_ctx)) for x in self.nodes)
-
-
-class Compare(Expr):
- """Compares an expression with some other expressions. `ops` must be a
- list of :class:`Operand`\s.
- """
- fields = ('expr', 'ops')
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- result = value = self.expr.as_const(eval_ctx)
- try:
- for op in self.ops:
- new_value = op.expr.as_const(eval_ctx)
- result = _cmpop_to_func[op.op](value, new_value)
- value = new_value
- except Exception:
- raise Impossible()
- return result
-
-
-class Operand(Helper):
- """Holds an operator and an expression."""
- fields = ('op', 'expr')
-
-if __debug__:
- Operand.__doc__ += '\nThe following operators are available: ' + \
- ', '.join(sorted('``%s``' % x for x in set(_binop_to_func) |
- set(_uaop_to_func) | set(_cmpop_to_func)))
-
-
-class Mul(BinExpr):
- """Multiplies the left with the right node."""
- operator = '*'
-
-
-class Div(BinExpr):
- """Divides the left by the right node."""
- operator = '/'
-
-
-class FloorDiv(BinExpr):
- """Divides the left by the right node and truncates conver the
- result into an integer by truncating.
- """
- operator = '//'
-
-
-class Add(BinExpr):
- """Add the left to the right node."""
- operator = '+'
-
-
-class Sub(BinExpr):
- """Subtract the right from the left node."""
- operator = '-'
-
-
-class Mod(BinExpr):
- """Left modulo right."""
- operator = '%'
-
-
-class Pow(BinExpr):
- """Left to the power of right."""
- operator = '**'
-
-
-class And(BinExpr):
- """Short circuited AND."""
- operator = 'and'
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return self.left.as_const(eval_ctx) and self.right.as_const(eval_ctx)
-
-
-class Or(BinExpr):
- """Short circuited OR."""
- operator = 'or'
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return self.left.as_const(eval_ctx) or self.right.as_const(eval_ctx)
-
-
-class Not(UnaryExpr):
- """Negate the expression."""
- operator = 'not'
-
-
-class Neg(UnaryExpr):
- """Make the expression negative."""
- operator = '-'
-
-
-class Pos(UnaryExpr):
- """Make the expression positive (noop for most expressions)"""
- operator = '+'
-
-
-# Helpers for extensions
-
-
-class EnvironmentAttribute(Expr):
- """Loads an attribute from the environment object. This is useful for
- extensions that want to call a callback stored on the environment.
- """
- fields = ('name',)
-
-
-class ExtensionAttribute(Expr):
- """Returns the attribute of an extension bound to the environment.
- The identifier is the identifier of the :class:`Extension`.
-
- This node is usually constructed by calling the
- :meth:`~jinja2.ext.Extension.attr` method on an extension.
- """
- fields = ('identifier', 'name')
-
-
-class ImportedName(Expr):
- """If created with an import name the import name is returned on node
- access. For example ``ImportedName('cgi.escape')`` returns the `escape`
- function from the cgi module on evaluation. Imports are optimized by the
- compiler so there is no need to assign them to local variables.
- """
- fields = ('importname',)
-
-
-class InternalName(Expr):
- """An internal name in the compiler. You cannot create these nodes
- yourself but the parser provides a
- :meth:`~jinja2.parser.Parser.free_identifier` method that creates
- a new identifier for you. This identifier is not available from the
- template and is not threated specially by the compiler.
- """
- fields = ('name',)
-
- def __init__(self):
- raise TypeError('Can\'t create internal names. Use the '
- '`free_identifier` method on a parser.')
-
-
-class MarkSafe(Expr):
- """Mark the wrapped expression as safe (wrap it as `Markup`)."""
- fields = ('expr',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- return Markup(self.expr.as_const(eval_ctx))
-
-
-class MarkSafeIfAutoescape(Expr):
- """Mark the wrapped expression as safe (wrap it as `Markup`) but
- only if autoescaping is active.
-
- .. versionadded:: 2.5
- """
- fields = ('expr',)
-
- def as_const(self, eval_ctx=None):
- eval_ctx = get_eval_context(self, eval_ctx)
- if eval_ctx.volatile:
- raise Impossible()
- expr = self.expr.as_const(eval_ctx)
- if eval_ctx.autoescape:
- return Markup(expr)
- return expr
-
-
-class ContextReference(Expr):
- """Returns the current template context. It can be used like a
- :class:`Name` node, with a ``'load'`` ctx and will return the
- current :class:`~jinja2.runtime.Context` object.
-
- Here an example that assigns the current template name to a
- variable named `foo`::
-
- Assign(Name('foo', ctx='store'),
- Getattr(ContextReference(), 'name'))
- """
-
-
-class Continue(Stmt):
- """Continue a loop."""
-
-
-class Break(Stmt):
- """Break a loop."""
-
-
-class Scope(Stmt):
- """An artificial scope."""
- fields = ('body',)
-
-
-class EvalContextModifier(Stmt):
- """Modifies the eval context. For each option that should be modified,
- a :class:`Keyword` has to be added to the :attr:`options` list.
-
- Example to change the `autoescape` setting::
-
- EvalContextModifier(options=[Keyword('autoescape', Const(True))])
- """
- fields = ('options',)
-
-
-class ScopedEvalContextModifier(EvalContextModifier):
- """Modifies the eval context and reverts it later. Works exactly like
- :class:`EvalContextModifier` but will only modify the
- :class:`~jinja2.nodes.EvalContext` for nodes in the :attr:`body`.
- """
- fields = ('body',)
-
-
-# make sure nobody creates custom nodes
-def _failing_new(*args, **kwargs):
- raise TypeError('can\'t create custom node types')
-NodeType.__new__ = staticmethod(_failing_new); del _failing_new
diff --git a/vendor/jinja2/optimizer.py b/vendor/jinja2/optimizer.py
deleted file mode 100644
index 00eab115..00000000
--- a/vendor/jinja2/optimizer.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.optimizer
- ~~~~~~~~~~~~~~~~
-
- The jinja optimizer is currently trying to constant fold a few expressions
- and modify the AST in place so that it should be easier to evaluate it.
-
- Because the AST does not contain all the scoping information and the
- compiler has to find that out, we cannot do all the optimizations we
- want. For example loop unrolling doesn't work because unrolled loops would
- have a different scoping.
-
- The solution would be a second syntax tree that has the scoping rules stored.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD.
-"""
-from jinja2 import nodes
-from jinja2.visitor import NodeTransformer
-
-
-def optimize(node, environment):
- """The context hint can be used to perform an static optimization
- based on the context given."""
- optimizer = Optimizer(environment)
- return optimizer.visit(node)
-
-
-class Optimizer(NodeTransformer):
-
- def __init__(self, environment):
- self.environment = environment
-
- def visit_If(self, node):
- """Eliminate dead code."""
- # do not optimize ifs that have a block inside so that it doesn't
- # break super().
- if node.find(nodes.Block) is not None:
- return self.generic_visit(node)
- try:
- val = self.visit(node.test).as_const()
- except nodes.Impossible:
- return self.generic_visit(node)
- if val:
- body = node.body
- else:
- body = node.else_
- result = []
- for node in body:
- result.extend(self.visit_list(node))
- return result
-
- def fold(self, node):
- """Do constant folding."""
- node = self.generic_visit(node)
- try:
- return nodes.Const.from_untrusted(node.as_const(),
- lineno=node.lineno,
- environment=self.environment)
- except nodes.Impossible:
- return node
-
- visit_Add = visit_Sub = visit_Mul = visit_Div = visit_FloorDiv = \
- visit_Pow = visit_Mod = visit_And = visit_Or = visit_Pos = visit_Neg = \
- visit_Not = visit_Compare = visit_Getitem = visit_Getattr = visit_Call = \
- visit_Filter = visit_Test = visit_CondExpr = fold
- del fold
diff --git a/vendor/jinja2/parser.py b/vendor/jinja2/parser.py
deleted file mode 100644
index d24da180..00000000
--- a/vendor/jinja2/parser.py
+++ /dev/null
@@ -1,899 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.parser
- ~~~~~~~~~~~~~
-
- Implements the template parser.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-from jinja2 import nodes
-from jinja2.exceptions import TemplateSyntaxError, TemplateAssertionError
-from jinja2.lexer import describe_token, describe_token_expr
-from jinja2._compat import imap
-
-
-_statement_keywords = frozenset(['for', 'if', 'block', 'extends', 'print',
- 'macro', 'include', 'from', 'import',
- 'set'])
-_compare_operators = frozenset(['eq', 'ne', 'lt', 'lteq', 'gt', 'gteq'])
-
-
-class Parser(object):
- """This is the central parsing class Jinja2 uses. It's passed to
- extensions and can be used to parse expressions or statements.
- """
-
- def __init__(self, environment, source, name=None, filename=None,
- state=None):
- self.environment = environment
- self.stream = environment._tokenize(source, name, filename, state)
- self.name = name
- self.filename = filename
- self.closed = False
- self.extensions = {}
- for extension in environment.iter_extensions():
- for tag in extension.tags:
- self.extensions[tag] = extension.parse
- self._last_identifier = 0
- self._tag_stack = []
- self._end_token_stack = []
-
- def fail(self, msg, lineno=None, exc=TemplateSyntaxError):
- """Convenience method that raises `exc` with the message, passed
- line number or last line number as well as the current name and
- filename.
- """
- if lineno is None:
- lineno = self.stream.current.lineno
- raise exc(msg, lineno, self.name, self.filename)
-
- def _fail_ut_eof(self, name, end_token_stack, lineno):
- expected = []
- for exprs in end_token_stack:
- expected.extend(imap(describe_token_expr, exprs))
- if end_token_stack:
- currently_looking = ' or '.join(
- "'%s'" % describe_token_expr(expr)
- for expr in end_token_stack[-1])
- else:
- currently_looking = None
-
- if name is None:
- message = ['Unexpected end of template.']
- else:
- message = ['Encountered unknown tag \'%s\'.' % name]
-
- if currently_looking:
- if name is not None and name in expected:
- message.append('You probably made a nesting mistake. Jinja '
- 'is expecting this tag, but currently looking '
- 'for %s.' % currently_looking)
- else:
- message.append('Jinja was looking for the following tags: '
- '%s.' % currently_looking)
-
- if self._tag_stack:
- message.append('The innermost block that needs to be '
- 'closed is \'%s\'.' % self._tag_stack[-1])
-
- self.fail(' '.join(message), lineno)
-
- def fail_unknown_tag(self, name, lineno=None):
- """Called if the parser encounters an unknown tag. Tries to fail
- with a human readable error message that could help to identify
- the problem.
- """
- return self._fail_ut_eof(name, self._end_token_stack, lineno)
-
- def fail_eof(self, end_tokens=None, lineno=None):
- """Like fail_unknown_tag but for end of template situations."""
- stack = list(self._end_token_stack)
- if end_tokens is not None:
- stack.append(end_tokens)
- return self._fail_ut_eof(None, stack, lineno)
-
- def is_tuple_end(self, extra_end_rules=None):
- """Are we at the end of a tuple?"""
- if self.stream.current.type in ('variable_end', 'block_end', 'rparen'):
- return True
- elif extra_end_rules is not None:
- return self.stream.current.test_any(extra_end_rules)
- return False
-
- def free_identifier(self, lineno=None):
- """Return a new free identifier as :class:`~jinja2.nodes.InternalName`."""
- self._last_identifier += 1
- rv = object.__new__(nodes.InternalName)
- nodes.Node.__init__(rv, 'fi%d' % self._last_identifier, lineno=lineno)
- return rv
-
- def parse_statement(self):
- """Parse a single statement."""
- token = self.stream.current
- if token.type != 'name':
- self.fail('tag name expected', token.lineno)
- self._tag_stack.append(token.value)
- pop_tag = True
- try:
- if token.value in _statement_keywords:
- return getattr(self, 'parse_' + self.stream.current.value)()
- if token.value == 'call':
- return self.parse_call_block()
- if token.value == 'filter':
- return self.parse_filter_block()
- ext = self.extensions.get(token.value)
- if ext is not None:
- return ext(self)
-
- # did not work out, remove the token we pushed by accident
- # from the stack so that the unknown tag fail function can
- # produce a proper error message.
- self._tag_stack.pop()
- pop_tag = False
- self.fail_unknown_tag(token.value, token.lineno)
- finally:
- if pop_tag:
- self._tag_stack.pop()
-
- def parse_statements(self, end_tokens, drop_needle=False):
- """Parse multiple statements into a list until one of the end tokens
- is reached. This is used to parse the body of statements as it also
- parses template data if appropriate. The parser checks first if the
- current token is a colon and skips it if there is one. Then it checks
- for the block end and parses until if one of the `end_tokens` is
- reached. Per default the active token in the stream at the end of
- the call is the matched end token. If this is not wanted `drop_needle`
- can be set to `True` and the end token is removed.
- """
- # the first token may be a colon for python compatibility
- self.stream.skip_if('colon')
-
- # in the future it would be possible to add whole code sections
- # by adding some sort of end of statement token and parsing those here.
- self.stream.expect('block_end')
- result = self.subparse(end_tokens)
-
- # we reached the end of the template too early, the subparser
- # does not check for this, so we do that now
- if self.stream.current.type == 'eof':
- self.fail_eof(end_tokens)
-
- if drop_needle:
- next(self.stream)
- return result
-
- def parse_set(self):
- """Parse an assign statement."""
- lineno = next(self.stream).lineno
- target = self.parse_assign_target()
- if self.stream.skip_if('assign'):
- expr = self.parse_tuple()
- return nodes.Assign(target, expr, lineno=lineno)
- body = self.parse_statements(('name:endset',),
- drop_needle=True)
- return nodes.AssignBlock(target, body, lineno=lineno)
-
- def parse_for(self):
- """Parse a for loop."""
- lineno = self.stream.expect('name:for').lineno
- target = self.parse_assign_target(extra_end_rules=('name:in',))
- self.stream.expect('name:in')
- iter = self.parse_tuple(with_condexpr=False,
- extra_end_rules=('name:recursive',))
- test = None
- if self.stream.skip_if('name:if'):
- test = self.parse_expression()
- recursive = self.stream.skip_if('name:recursive')
- body = self.parse_statements(('name:endfor', 'name:else'))
- if next(self.stream).value == 'endfor':
- else_ = []
- else:
- else_ = self.parse_statements(('name:endfor',), drop_needle=True)
- return nodes.For(target, iter, body, else_, test,
- recursive, lineno=lineno)
-
- def parse_if(self):
- """Parse an if construct."""
- node = result = nodes.If(lineno=self.stream.expect('name:if').lineno)
- while 1:
- node.test = self.parse_tuple(with_condexpr=False)
- node.body = self.parse_statements(('name:elif', 'name:else',
- 'name:endif'))
- token = next(self.stream)
- if token.test('name:elif'):
- new_node = nodes.If(lineno=self.stream.current.lineno)
- node.else_ = [new_node]
- node = new_node
- continue
- elif token.test('name:else'):
- node.else_ = self.parse_statements(('name:endif',),
- drop_needle=True)
- else:
- node.else_ = []
- break
- return result
-
- def parse_block(self):
- node = nodes.Block(lineno=next(self.stream).lineno)
- node.name = self.stream.expect('name').value
- node.scoped = self.stream.skip_if('name:scoped')
-
- # common problem people encounter when switching from django
- # to jinja. we do not support hyphens in block names, so let's
- # raise a nicer error message in that case.
- if self.stream.current.type == 'sub':
- self.fail('Block names in Jinja have to be valid Python '
- 'identifiers and may not contain hyphens, use an '
- 'underscore instead.')
-
- node.body = self.parse_statements(('name:endblock',), drop_needle=True)
- self.stream.skip_if('name:' + node.name)
- return node
-
- def parse_extends(self):
- node = nodes.Extends(lineno=next(self.stream).lineno)
- node.template = self.parse_expression()
- return node
-
- def parse_import_context(self, node, default):
- if self.stream.current.test_any('name:with', 'name:without') and \
- self.stream.look().test('name:context'):
- node.with_context = next(self.stream).value == 'with'
- self.stream.skip()
- else:
- node.with_context = default
- return node
-
- def parse_include(self):
- node = nodes.Include(lineno=next(self.stream).lineno)
- node.template = self.parse_expression()
- if self.stream.current.test('name:ignore') and \
- self.stream.look().test('name:missing'):
- node.ignore_missing = True
- self.stream.skip(2)
- else:
- node.ignore_missing = False
- return self.parse_import_context(node, True)
-
- def parse_import(self):
- node = nodes.Import(lineno=next(self.stream).lineno)
- node.template = self.parse_expression()
- self.stream.expect('name:as')
- node.target = self.parse_assign_target(name_only=True).name
- return self.parse_import_context(node, False)
-
- def parse_from(self):
- node = nodes.FromImport(lineno=next(self.stream).lineno)
- node.template = self.parse_expression()
- self.stream.expect('name:import')
- node.names = []
-
- def parse_context():
- if self.stream.current.value in ('with', 'without') and \
- self.stream.look().test('name:context'):
- node.with_context = next(self.stream).value == 'with'
- self.stream.skip()
- return True
- return False
-
- while 1:
- if node.names:
- self.stream.expect('comma')
- if self.stream.current.type == 'name':
- if parse_context():
- break
- target = self.parse_assign_target(name_only=True)
- if target.name.startswith('_'):
- self.fail('names starting with an underline can not '
- 'be imported', target.lineno,
- exc=TemplateAssertionError)
- if self.stream.skip_if('name:as'):
- alias = self.parse_assign_target(name_only=True)
- node.names.append((target.name, alias.name))
- else:
- node.names.append(target.name)
- if parse_context() or self.stream.current.type != 'comma':
- break
- else:
- break
- if not hasattr(node, 'with_context'):
- node.with_context = False
- self.stream.skip_if('comma')
- return node
-
- def parse_signature(self, node):
- node.args = args = []
- node.defaults = defaults = []
- self.stream.expect('lparen')
- while self.stream.current.type != 'rparen':
- if args:
- self.stream.expect('comma')
- arg = self.parse_assign_target(name_only=True)
- arg.set_ctx('param')
- if self.stream.skip_if('assign'):
- defaults.append(self.parse_expression())
- elif defaults:
- self.fail('non-default argument follows default argument')
- args.append(arg)
- self.stream.expect('rparen')
-
- def parse_call_block(self):
- node = nodes.CallBlock(lineno=next(self.stream).lineno)
- if self.stream.current.type == 'lparen':
- self.parse_signature(node)
- else:
- node.args = []
- node.defaults = []
-
- node.call = self.parse_expression()
- if not isinstance(node.call, nodes.Call):
- self.fail('expected call', node.lineno)
- node.body = self.parse_statements(('name:endcall',), drop_needle=True)
- return node
-
- def parse_filter_block(self):
- node = nodes.FilterBlock(lineno=next(self.stream).lineno)
- node.filter = self.parse_filter(None, start_inline=True)
- node.body = self.parse_statements(('name:endfilter',),
- drop_needle=True)
- return node
-
- def parse_macro(self):
- node = nodes.Macro(lineno=next(self.stream).lineno)
- node.name = self.parse_assign_target(name_only=True).name
- self.parse_signature(node)
- node.body = self.parse_statements(('name:endmacro',),
- drop_needle=True)
- return node
-
- def parse_print(self):
- node = nodes.Output(lineno=next(self.stream).lineno)
- node.nodes = []
- while self.stream.current.type != 'block_end':
- if node.nodes:
- self.stream.expect('comma')
- node.nodes.append(self.parse_expression())
- return node
-
- def parse_assign_target(self, with_tuple=True, name_only=False,
- extra_end_rules=None):
- """Parse an assignment target. As Jinja2 allows assignments to
- tuples, this function can parse all allowed assignment targets. Per
- default assignments to tuples are parsed, that can be disable however
- by setting `with_tuple` to `False`. If only assignments to names are
- wanted `name_only` can be set to `True`. The `extra_end_rules`
- parameter is forwarded to the tuple parsing function.
- """
- if name_only:
- token = self.stream.expect('name')
- target = nodes.Name(token.value, 'store', lineno=token.lineno)
- else:
- if with_tuple:
- target = self.parse_tuple(simplified=True,
- extra_end_rules=extra_end_rules)
- else:
- target = self.parse_primary()
- target.set_ctx('store')
- if not target.can_assign():
- self.fail('can\'t assign to %r' % target.__class__.
- __name__.lower(), target.lineno)
- return target
-
- def parse_expression(self, with_condexpr=True):
- """Parse an expression. Per default all expressions are parsed, if
- the optional `with_condexpr` parameter is set to `False` conditional
- expressions are not parsed.
- """
- if with_condexpr:
- return self.parse_condexpr()
- return self.parse_or()
-
- def parse_condexpr(self):
- lineno = self.stream.current.lineno
- expr1 = self.parse_or()
- while self.stream.skip_if('name:if'):
- expr2 = self.parse_or()
- if self.stream.skip_if('name:else'):
- expr3 = self.parse_condexpr()
- else:
- expr3 = None
- expr1 = nodes.CondExpr(expr2, expr1, expr3, lineno=lineno)
- lineno = self.stream.current.lineno
- return expr1
-
- def parse_or(self):
- lineno = self.stream.current.lineno
- left = self.parse_and()
- while self.stream.skip_if('name:or'):
- right = self.parse_and()
- left = nodes.Or(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_and(self):
- lineno = self.stream.current.lineno
- left = self.parse_not()
- while self.stream.skip_if('name:and'):
- right = self.parse_not()
- left = nodes.And(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_not(self):
- if self.stream.current.test('name:not'):
- lineno = next(self.stream).lineno
- return nodes.Not(self.parse_not(), lineno=lineno)
- return self.parse_compare()
-
- def parse_compare(self):
- lineno = self.stream.current.lineno
- expr = self.parse_add()
- ops = []
- while 1:
- token_type = self.stream.current.type
- if token_type in _compare_operators:
- next(self.stream)
- ops.append(nodes.Operand(token_type, self.parse_add()))
- elif self.stream.skip_if('name:in'):
- ops.append(nodes.Operand('in', self.parse_add()))
- elif (self.stream.current.test('name:not') and
- self.stream.look().test('name:in')):
- self.stream.skip(2)
- ops.append(nodes.Operand('notin', self.parse_add()))
- else:
- break
- lineno = self.stream.current.lineno
- if not ops:
- return expr
- return nodes.Compare(expr, ops, lineno=lineno)
-
- def parse_add(self):
- lineno = self.stream.current.lineno
- left = self.parse_sub()
- while self.stream.current.type == 'add':
- next(self.stream)
- right = self.parse_sub()
- left = nodes.Add(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_sub(self):
- lineno = self.stream.current.lineno
- left = self.parse_concat()
- while self.stream.current.type == 'sub':
- next(self.stream)
- right = self.parse_concat()
- left = nodes.Sub(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_concat(self):
- lineno = self.stream.current.lineno
- args = [self.parse_mul()]
- while self.stream.current.type == 'tilde':
- next(self.stream)
- args.append(self.parse_mul())
- if len(args) == 1:
- return args[0]
- return nodes.Concat(args, lineno=lineno)
-
- def parse_mul(self):
- lineno = self.stream.current.lineno
- left = self.parse_div()
- while self.stream.current.type == 'mul':
- next(self.stream)
- right = self.parse_div()
- left = nodes.Mul(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_div(self):
- lineno = self.stream.current.lineno
- left = self.parse_floordiv()
- while self.stream.current.type == 'div':
- next(self.stream)
- right = self.parse_floordiv()
- left = nodes.Div(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_floordiv(self):
- lineno = self.stream.current.lineno
- left = self.parse_mod()
- while self.stream.current.type == 'floordiv':
- next(self.stream)
- right = self.parse_mod()
- left = nodes.FloorDiv(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_mod(self):
- lineno = self.stream.current.lineno
- left = self.parse_pow()
- while self.stream.current.type == 'mod':
- next(self.stream)
- right = self.parse_pow()
- left = nodes.Mod(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_pow(self):
- lineno = self.stream.current.lineno
- left = self.parse_unary()
- while self.stream.current.type == 'pow':
- next(self.stream)
- right = self.parse_unary()
- left = nodes.Pow(left, right, lineno=lineno)
- lineno = self.stream.current.lineno
- return left
-
- def parse_unary(self, with_filter=True):
- token_type = self.stream.current.type
- lineno = self.stream.current.lineno
- if token_type == 'sub':
- next(self.stream)
- node = nodes.Neg(self.parse_unary(False), lineno=lineno)
- elif token_type == 'add':
- next(self.stream)
- node = nodes.Pos(self.parse_unary(False), lineno=lineno)
- else:
- node = self.parse_primary()
- node = self.parse_postfix(node)
- if with_filter:
- node = self.parse_filter_expr(node)
- return node
-
- def parse_primary(self):
- token = self.stream.current
- if token.type == 'name':
- if token.value in ('true', 'false', 'True', 'False'):
- node = nodes.Const(token.value in ('true', 'True'),
- lineno=token.lineno)
- elif token.value in ('none', 'None'):
- node = nodes.Const(None, lineno=token.lineno)
- else:
- node = nodes.Name(token.value, 'load', lineno=token.lineno)
- next(self.stream)
- elif token.type == 'string':
- next(self.stream)
- buf = [token.value]
- lineno = token.lineno
- while self.stream.current.type == 'string':
- buf.append(self.stream.current.value)
- next(self.stream)
- node = nodes.Const(''.join(buf), lineno=lineno)
- elif token.type in ('integer', 'float'):
- next(self.stream)
- node = nodes.Const(token.value, lineno=token.lineno)
- elif token.type == 'lparen':
- next(self.stream)
- node = self.parse_tuple(explicit_parentheses=True)
- self.stream.expect('rparen')
- elif token.type == 'lbracket':
- node = self.parse_list()
- elif token.type == 'lbrace':
- node = self.parse_dict()
- else:
- self.fail("unexpected '%s'" % describe_token(token), token.lineno)
- return node
-
- def parse_tuple(self, simplified=False, with_condexpr=True,
- extra_end_rules=None, explicit_parentheses=False):
- """Works like `parse_expression` but if multiple expressions are
- delimited by a comma a :class:`~jinja2.nodes.Tuple` node is created.
- This method could also return a regular expression instead of a tuple
- if no commas where found.
-
- The default parsing mode is a full tuple. If `simplified` is `True`
- only names and literals are parsed. The `no_condexpr` parameter is
- forwarded to :meth:`parse_expression`.
-
- Because tuples do not require delimiters and may end in a bogus comma
- an extra hint is needed that marks the end of a tuple. For example
- for loops support tuples between `for` and `in`. In that case the
- `extra_end_rules` is set to ``['name:in']``.
-
- `explicit_parentheses` is true if the parsing was triggered by an
- expression in parentheses. This is used to figure out if an empty
- tuple is a valid expression or not.
- """
- lineno = self.stream.current.lineno
- if simplified:
- parse = self.parse_primary
- elif with_condexpr:
- parse = self.parse_expression
- else:
- parse = lambda: self.parse_expression(with_condexpr=False)
- args = []
- is_tuple = False
- while 1:
- if args:
- self.stream.expect('comma')
- if self.is_tuple_end(extra_end_rules):
- break
- args.append(parse())
- if self.stream.current.type == 'comma':
- is_tuple = True
- else:
- break
- lineno = self.stream.current.lineno
-
- if not is_tuple:
- if args:
- return args[0]
-
- # if we don't have explicit parentheses, an empty tuple is
- # not a valid expression. This would mean nothing (literally
- # nothing) in the spot of an expression would be an empty
- # tuple.
- if not explicit_parentheses:
- self.fail('Expected an expression, got \'%s\'' %
- describe_token(self.stream.current))
-
- return nodes.Tuple(args, 'load', lineno=lineno)
-
- def parse_list(self):
- token = self.stream.expect('lbracket')
- items = []
- while self.stream.current.type != 'rbracket':
- if items:
- self.stream.expect('comma')
- if self.stream.current.type == 'rbracket':
- break
- items.append(self.parse_expression())
- self.stream.expect('rbracket')
- return nodes.List(items, lineno=token.lineno)
-
- def parse_dict(self):
- token = self.stream.expect('lbrace')
- items = []
- while self.stream.current.type != 'rbrace':
- if items:
- self.stream.expect('comma')
- if self.stream.current.type == 'rbrace':
- break
- key = self.parse_expression()
- self.stream.expect('colon')
- value = self.parse_expression()
- items.append(nodes.Pair(key, value, lineno=key.lineno))
- self.stream.expect('rbrace')
- return nodes.Dict(items, lineno=token.lineno)
-
- def parse_postfix(self, node):
- while 1:
- token_type = self.stream.current.type
- if token_type == 'dot' or token_type == 'lbracket':
- node = self.parse_subscript(node)
- # calls are valid both after postfix expressions (getattr
- # and getitem) as well as filters and tests
- elif token_type == 'lparen':
- node = self.parse_call(node)
- else:
- break
- return node
-
- def parse_filter_expr(self, node):
- while 1:
- token_type = self.stream.current.type
- if token_type == 'pipe':
- node = self.parse_filter(node)
- elif token_type == 'name' and self.stream.current.value == 'is':
- node = self.parse_test(node)
- # calls are valid both after postfix expressions (getattr
- # and getitem) as well as filters and tests
- elif token_type == 'lparen':
- node = self.parse_call(node)
- else:
- break
- return node
-
- def parse_subscript(self, node):
- token = next(self.stream)
- if token.type == 'dot':
- attr_token = self.stream.current
- next(self.stream)
- if attr_token.type == 'name':
- return nodes.Getattr(node, attr_token.value, 'load',
- lineno=token.lineno)
- elif attr_token.type != 'integer':
- self.fail('expected name or number', attr_token.lineno)
- arg = nodes.Const(attr_token.value, lineno=attr_token.lineno)
- return nodes.Getitem(node, arg, 'load', lineno=token.lineno)
- if token.type == 'lbracket':
- args = []
- while self.stream.current.type != 'rbracket':
- if args:
- self.stream.expect('comma')
- args.append(self.parse_subscribed())
- self.stream.expect('rbracket')
- if len(args) == 1:
- arg = args[0]
- else:
- arg = nodes.Tuple(args, 'load', lineno=token.lineno)
- return nodes.Getitem(node, arg, 'load', lineno=token.lineno)
- self.fail('expected subscript expression', self.lineno)
-
- def parse_subscribed(self):
- lineno = self.stream.current.lineno
-
- if self.stream.current.type == 'colon':
- next(self.stream)
- args = [None]
- else:
- node = self.parse_expression()
- if self.stream.current.type != 'colon':
- return node
- next(self.stream)
- args = [node]
-
- if self.stream.current.type == 'colon':
- args.append(None)
- elif self.stream.current.type not in ('rbracket', 'comma'):
- args.append(self.parse_expression())
- else:
- args.append(None)
-
- if self.stream.current.type == 'colon':
- next(self.stream)
- if self.stream.current.type not in ('rbracket', 'comma'):
- args.append(self.parse_expression())
- else:
- args.append(None)
- else:
- args.append(None)
-
- return nodes.Slice(lineno=lineno, *args)
-
- def parse_call(self, node):
- token = self.stream.expect('lparen')
- args = []
- kwargs = []
- dyn_args = dyn_kwargs = None
- require_comma = False
-
- def ensure(expr):
- if not expr:
- self.fail('invalid syntax for function call expression',
- token.lineno)
-
- while self.stream.current.type != 'rparen':
- if require_comma:
- self.stream.expect('comma')
- # support for trailing comma
- if self.stream.current.type == 'rparen':
- break
- if self.stream.current.type == 'mul':
- ensure(dyn_args is None and dyn_kwargs is None)
- next(self.stream)
- dyn_args = self.parse_expression()
- elif self.stream.current.type == 'pow':
- ensure(dyn_kwargs is None)
- next(self.stream)
- dyn_kwargs = self.parse_expression()
- else:
- ensure(dyn_args is None and dyn_kwargs is None)
- if self.stream.current.type == 'name' and \
- self.stream.look().type == 'assign':
- key = self.stream.current.value
- self.stream.skip(2)
- value = self.parse_expression()
- kwargs.append(nodes.Keyword(key, value,
- lineno=value.lineno))
- else:
- ensure(not kwargs)
- args.append(self.parse_expression())
-
- require_comma = True
- self.stream.expect('rparen')
-
- if node is None:
- return args, kwargs, dyn_args, dyn_kwargs
- return nodes.Call(node, args, kwargs, dyn_args, dyn_kwargs,
- lineno=token.lineno)
-
- def parse_filter(self, node, start_inline=False):
- while self.stream.current.type == 'pipe' or start_inline:
- if not start_inline:
- next(self.stream)
- token = self.stream.expect('name')
- name = token.value
- while self.stream.current.type == 'dot':
- next(self.stream)
- name += '.' + self.stream.expect('name').value
- if self.stream.current.type == 'lparen':
- args, kwargs, dyn_args, dyn_kwargs = self.parse_call(None)
- else:
- args = []
- kwargs = []
- dyn_args = dyn_kwargs = None
- node = nodes.Filter(node, name, args, kwargs, dyn_args,
- dyn_kwargs, lineno=token.lineno)
- start_inline = False
- return node
-
- def parse_test(self, node):
- token = next(self.stream)
- if self.stream.current.test('name:not'):
- next(self.stream)
- negated = True
- else:
- negated = False
- name = self.stream.expect('name').value
- while self.stream.current.type == 'dot':
- next(self.stream)
- name += '.' + self.stream.expect('name').value
- dyn_args = dyn_kwargs = None
- kwargs = []
- if self.stream.current.type == 'lparen':
- args, kwargs, dyn_args, dyn_kwargs = self.parse_call(None)
- elif (self.stream.current.type in ('name', 'string', 'integer',
- 'float', 'lparen', 'lbracket',
- 'lbrace') and not
- self.stream.current.test_any('name:else', 'name:or',
- 'name:and')):
- if self.stream.current.test('name:is'):
- self.fail('You cannot chain multiple tests with is')
- args = [self.parse_expression()]
- else:
- args = []
- node = nodes.Test(node, name, args, kwargs, dyn_args,
- dyn_kwargs, lineno=token.lineno)
- if negated:
- node = nodes.Not(node, lineno=token.lineno)
- return node
-
- def subparse(self, end_tokens=None):
- body = []
- data_buffer = []
- add_data = data_buffer.append
-
- if end_tokens is not None:
- self._end_token_stack.append(end_tokens)
-
- def flush_data():
- if data_buffer:
- lineno = data_buffer[0].lineno
- body.append(nodes.Output(data_buffer[:], lineno=lineno))
- del data_buffer[:]
-
- try:
- while self.stream:
- token = self.stream.current
- if token.type == 'data':
- if token.value:
- add_data(nodes.TemplateData(token.value,
- lineno=token.lineno))
- next(self.stream)
- elif token.type == 'variable_begin':
- next(self.stream)
- add_data(self.parse_tuple(with_condexpr=True))
- self.stream.expect('variable_end')
- elif token.type == 'block_begin':
- flush_data()
- next(self.stream)
- if end_tokens is not None and \
- self.stream.current.test_any(*end_tokens):
- return body
- rv = self.parse_statement()
- if isinstance(rv, list):
- body.extend(rv)
- else:
- body.append(rv)
- self.stream.expect('block_end')
- else:
- raise AssertionError('internal parsing error')
-
- flush_data()
- finally:
- if end_tokens is not None:
- self._end_token_stack.pop()
-
- return body
-
- def parse(self):
- """Parse the whole template into a `Template` node."""
- result = nodes.Template(self.subparse(), lineno=1)
- result.set_environment(self.environment)
- return result
diff --git a/vendor/jinja2/runtime.py b/vendor/jinja2/runtime.py
deleted file mode 100644
index 685a12da..00000000
--- a/vendor/jinja2/runtime.py
+++ /dev/null
@@ -1,667 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.runtime
- ~~~~~~~~~~~~~~
-
- Runtime helpers.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD.
-"""
-import sys
-
-from itertools import chain
-from jinja2.nodes import EvalContext, _context_function_types
-from jinja2.utils import Markup, soft_unicode, escape, missing, concat, \
- internalcode, object_type_repr
-from jinja2.exceptions import UndefinedError, TemplateRuntimeError, \
- TemplateNotFound
-from jinja2._compat import imap, text_type, iteritems, \
- implements_iterator, implements_to_string, string_types, PY2
-
-
-# these variables are exported to the template runtime
-__all__ = ['LoopContext', 'TemplateReference', 'Macro', 'Markup',
- 'TemplateRuntimeError', 'missing', 'concat', 'escape',
- 'markup_join', 'unicode_join', 'to_string', 'identity',
- 'TemplateNotFound', 'make_logging_undefined']
-
-#: the name of the function that is used to convert something into
-#: a string. We can just use the text type here.
-to_string = text_type
-
-#: the identity function. Useful for certain things in the environment
-identity = lambda x: x
-
-_last_iteration = object()
-
-
-def markup_join(seq):
- """Concatenation that escapes if necessary and converts to unicode."""
- buf = []
- iterator = imap(soft_unicode, seq)
- for arg in iterator:
- buf.append(arg)
- if hasattr(arg, '__html__'):
- return Markup(u'').join(chain(buf, iterator))
- return concat(buf)
-
-
-def unicode_join(seq):
- """Simple args to unicode conversion and concatenation."""
- return concat(imap(text_type, seq))
-
-
-def new_context(environment, template_name, blocks, vars=None,
- shared=None, globals=None, locals=None):
- """Internal helper to for context creation."""
- if vars is None:
- vars = {}
- if shared:
- parent = vars
- else:
- parent = dict(globals or (), **vars)
- if locals:
- # if the parent is shared a copy should be created because
- # we don't want to modify the dict passed
- if shared:
- parent = dict(parent)
- for key, value in iteritems(locals):
- if key[:2] == 'l_' and value is not missing:
- parent[key[2:]] = value
- return environment.context_class(environment, parent, template_name,
- blocks)
-
-
-class TemplateReference(object):
- """The `self` in templates."""
-
- def __init__(self, context):
- self.__context = context
-
- def __getitem__(self, name):
- blocks = self.__context.blocks[name]
- return BlockReference(name, self.__context, blocks, 0)
-
- def __repr__(self):
- return '<%s %r>' % (
- self.__class__.__name__,
- self.__context.name
- )
-
-
-class Context(object):
- """The template context holds the variables of a template. It stores the
- values passed to the template and also the names the template exports.
- Creating instances is neither supported nor useful as it's created
- automatically at various stages of the template evaluation and should not
- be created by hand.
-
- The context is immutable. Modifications on :attr:`parent` **must not**
- happen and modifications on :attr:`vars` are allowed from generated
- template code only. Template filters and global functions marked as
- :func:`contextfunction`\s get the active context passed as first argument
- and are allowed to access the context read-only.
-
- The template context supports read only dict operations (`get`,
- `keys`, `values`, `items`, `iterkeys`, `itervalues`, `iteritems`,
- `__getitem__`, `__contains__`). Additionally there is a :meth:`resolve`
- method that doesn't fail with a `KeyError` but returns an
- :class:`Undefined` object for missing variables.
- """
- __slots__ = ('parent', 'vars', 'environment', 'eval_ctx', 'exported_vars',
- 'name', 'blocks', '__weakref__')
-
- def __init__(self, environment, parent, name, blocks):
- self.parent = parent
- self.vars = {}
- self.environment = environment
- self.eval_ctx = EvalContext(self.environment, name)
- self.exported_vars = set()
- self.name = name
-
- # create the initial mapping of blocks. Whenever template inheritance
- # takes place the runtime will update this mapping with the new blocks
- # from the template.
- self.blocks = dict((k, [v]) for k, v in iteritems(blocks))
-
- def super(self, name, current):
- """Render a parent block."""
- try:
- blocks = self.blocks[name]
- index = blocks.index(current) + 1
- blocks[index]
- except LookupError:
- return self.environment.undefined('there is no parent block '
- 'called %r.' % name,
- name='super')
- return BlockReference(name, self, blocks, index)
-
- def get(self, key, default=None):
- """Returns an item from the template context, if it doesn't exist
- `default` is returned.
- """
- try:
- return self[key]
- except KeyError:
- return default
-
- def resolve(self, key):
- """Looks up a variable like `__getitem__` or `get` but returns an
- :class:`Undefined` object with the name of the name looked up.
- """
- if key in self.vars:
- return self.vars[key]
- if key in self.parent:
- return self.parent[key]
- return self.environment.undefined(name=key)
-
- def get_exported(self):
- """Get a new dict with the exported variables."""
- return dict((k, self.vars[k]) for k in self.exported_vars)
-
- def get_all(self):
- """Return a copy of the complete context as dict including the
- exported variables.
- """
- return dict(self.parent, **self.vars)
-
- @internalcode
- def call(__self, __obj, *args, **kwargs):
- """Call the callable with the arguments and keyword arguments
- provided but inject the active context or environment as first
- argument if the callable is a :func:`contextfunction` or
- :func:`environmentfunction`.
- """
- if __debug__:
- __traceback_hide__ = True # noqa
-
- # Allow callable classes to take a context
- fn = __obj.__call__
- for fn_type in ('contextfunction',
- 'evalcontextfunction',
- 'environmentfunction'):
- if hasattr(fn, fn_type):
- __obj = fn
- break
-
- if isinstance(__obj, _context_function_types):
- if getattr(__obj, 'contextfunction', 0):
- args = (__self,) + args
- elif getattr(__obj, 'evalcontextfunction', 0):
- args = (__self.eval_ctx,) + args
- elif getattr(__obj, 'environmentfunction', 0):
- args = (__self.environment,) + args
- try:
- return __obj(*args, **kwargs)
- except StopIteration:
- return __self.environment.undefined('value was undefined because '
- 'a callable raised a '
- 'StopIteration exception')
-
- def derived(self, locals=None):
- """Internal helper function to create a derived context."""
- context = new_context(self.environment, self.name, {},
- self.parent, True, None, locals)
- context.vars.update(self.vars)
- context.eval_ctx = self.eval_ctx
- context.blocks.update((k, list(v)) for k, v in iteritems(self.blocks))
- return context
-
- def _all(meth):
- proxy = lambda self: getattr(self.get_all(), meth)()
- proxy.__doc__ = getattr(dict, meth).__doc__
- proxy.__name__ = meth
- return proxy
-
- keys = _all('keys')
- values = _all('values')
- items = _all('items')
-
- # not available on python 3
- if PY2:
- iterkeys = _all('iterkeys')
- itervalues = _all('itervalues')
- iteritems = _all('iteritems')
- del _all
-
- def __contains__(self, name):
- return name in self.vars or name in self.parent
-
- def __getitem__(self, key):
- """Lookup a variable or raise `KeyError` if the variable is
- undefined.
- """
- item = self.resolve(key)
- if isinstance(item, Undefined):
- raise KeyError(key)
- return item
-
- def __repr__(self):
- return '<%s %s of %r>' % (
- self.__class__.__name__,
- repr(self.get_all()),
- self.name
- )
-
-
-# register the context as mapping if possible
-try:
- from collections import Mapping
- Mapping.register(Context)
-except ImportError:
- pass
-
-
-class BlockReference(object):
- """One block on a template reference."""
-
- def __init__(self, name, context, stack, depth):
- self.name = name
- self._context = context
- self._stack = stack
- self._depth = depth
-
- @property
- def super(self):
- """Super the block."""
- if self._depth + 1 >= len(self._stack):
- return self._context.environment. \
- undefined('there is no parent block called %r.' %
- self.name, name='super')
- return BlockReference(self.name, self._context, self._stack,
- self._depth + 1)
-
- @internalcode
- def __call__(self):
- rv = concat(self._stack[self._depth](self._context))
- if self._context.eval_ctx.autoescape:
- rv = Markup(rv)
- return rv
-
-
-class LoopContext(object):
- """A loop context for dynamic iteration."""
-
- def __init__(self, iterable, recurse=None, depth0=0):
- self._iterator = iter(iterable)
- self._recurse = recurse
- self._after = self._safe_next()
- self.index0 = -1
- self.depth0 = depth0
-
- # try to get the length of the iterable early. This must be done
- # here because there are some broken iterators around where there
- # __len__ is the number of iterations left (i'm looking at your
- # listreverseiterator!).
- try:
- self._length = len(iterable)
- except (TypeError, AttributeError):
- self._length = None
-
- def cycle(self, *args):
- """Cycles among the arguments with the current loop index."""
- if not args:
- raise TypeError('no items for cycling given')
- return args[self.index0 % len(args)]
-
- first = property(lambda x: x.index0 == 0)
- last = property(lambda x: x._after is _last_iteration)
- index = property(lambda x: x.index0 + 1)
- revindex = property(lambda x: x.length - x.index0)
- revindex0 = property(lambda x: x.length - x.index)
- depth = property(lambda x: x.depth0 + 1)
-
- def __len__(self):
- return self.length
-
- def __iter__(self):
- return LoopContextIterator(self)
-
- def _safe_next(self):
- try:
- return next(self._iterator)
- except StopIteration:
- return _last_iteration
-
- @internalcode
- def loop(self, iterable):
- if self._recurse is None:
- raise TypeError('Tried to call non recursive loop. Maybe you '
- "forgot the 'recursive' modifier.")
- return self._recurse(iterable, self._recurse, self.depth0 + 1)
-
- # a nifty trick to enhance the error message if someone tried to call
- # the the loop without or with too many arguments.
- __call__ = loop
- del loop
-
- @property
- def length(self):
- if self._length is None:
- # if was not possible to get the length of the iterator when
- # the loop context was created (ie: iterating over a generator)
- # we have to convert the iterable into a sequence and use the
- # length of that + the number of iterations so far.
- iterable = tuple(self._iterator)
- self._iterator = iter(iterable)
- iterations_done = self.index0 + 2
- self._length = len(iterable) + iterations_done
- return self._length
-
- def __repr__(self):
- return '<%s %r/%r>' % (
- self.__class__.__name__,
- self.index,
- self.length
- )
-
-
-@implements_iterator
-class LoopContextIterator(object):
- """The iterator for a loop context."""
- __slots__ = ('context',)
-
- def __init__(self, context):
- self.context = context
-
- def __iter__(self):
- return self
-
- def __next__(self):
- ctx = self.context
- ctx.index0 += 1
- if ctx._after is _last_iteration:
- raise StopIteration()
- next_elem = ctx._after
- ctx._after = ctx._safe_next()
- return next_elem, ctx
-
-
-class Macro(object):
- """Wraps a macro function."""
-
- def __init__(self, environment, func, name, arguments, defaults,
- catch_kwargs, catch_varargs, caller):
- self._environment = environment
- self._func = func
- self._argument_count = len(arguments)
- self.name = name
- self.arguments = arguments
- self.defaults = defaults
- self.catch_kwargs = catch_kwargs
- self.catch_varargs = catch_varargs
- self.caller = caller
-
- @internalcode
- def __call__(self, *args, **kwargs):
- # try to consume the positional arguments
- arguments = list(args[:self._argument_count])
- off = len(arguments)
-
- # if the number of arguments consumed is not the number of
- # arguments expected we start filling in keyword arguments
- # and defaults.
- if off != self._argument_count:
- for idx, name in enumerate(self.arguments[len(arguments):]):
- try:
- value = kwargs.pop(name)
- except KeyError:
- try:
- value = self.defaults[idx - self._argument_count + off]
- except IndexError:
- value = self._environment.undefined(
- 'parameter %r was not provided' % name, name=name)
- arguments.append(value)
-
- # it's important that the order of these arguments does not change
- # if not also changed in the compiler's `function_scoping` method.
- # the order is caller, keyword arguments, positional arguments!
- if self.caller:
- caller = kwargs.pop('caller', None)
- if caller is None:
- caller = self._environment.undefined('No caller defined',
- name='caller')
- arguments.append(caller)
- if self.catch_kwargs:
- arguments.append(kwargs)
- elif kwargs:
- raise TypeError('macro %r takes no keyword argument %r' %
- (self.name, next(iter(kwargs))))
- if self.catch_varargs:
- arguments.append(args[self._argument_count:])
- elif len(args) > self._argument_count:
- raise TypeError('macro %r takes not more than %d argument(s)' %
- (self.name, len(self.arguments)))
- return self._func(*arguments)
-
- def __repr__(self):
- return '<%s %s>' % (
- self.__class__.__name__,
- self.name is None and 'anonymous' or repr(self.name)
- )
-
-
-@implements_to_string
-class Undefined(object):
- """The default undefined type. This undefined type can be printed and
- iterated over, but every other access will raise an :exc:`jinja2.exceptions.UndefinedError`:
-
- >>> foo = Undefined(name='foo')
- >>> str(foo)
- ''
- >>> not foo
- True
- >>> foo + 42
- Traceback (most recent call last):
- ...
- jinja2.exceptions.UndefinedError: 'foo' is undefined
- """
- __slots__ = ('_undefined_hint', '_undefined_obj', '_undefined_name',
- '_undefined_exception')
-
- def __init__(self, hint=None, obj=missing, name=None, exc=UndefinedError):
- self._undefined_hint = hint
- self._undefined_obj = obj
- self._undefined_name = name
- self._undefined_exception = exc
-
- @internalcode
- def _fail_with_undefined_error(self, *args, **kwargs):
- """Regular callback function for undefined objects that raises an
- `jinja2.exceptions.UndefinedError` on call.
- """
- if self._undefined_hint is None:
- if self._undefined_obj is missing:
- hint = '%r is undefined' % self._undefined_name
- elif not isinstance(self._undefined_name, string_types):
- hint = '%s has no element %r' % (
- object_type_repr(self._undefined_obj),
- self._undefined_name
- )
- else:
- hint = '%r has no attribute %r' % (
- object_type_repr(self._undefined_obj),
- self._undefined_name
- )
- else:
- hint = self._undefined_hint
- raise self._undefined_exception(hint)
-
- @internalcode
- def __getattr__(self, name):
- if name[:2] == '__':
- raise AttributeError(name)
- return self._fail_with_undefined_error()
-
- __add__ = __radd__ = __mul__ = __rmul__ = __div__ = __rdiv__ = \
- __truediv__ = __rtruediv__ = __floordiv__ = __rfloordiv__ = \
- __mod__ = __rmod__ = __pos__ = __neg__ = __call__ = \
- __getitem__ = __lt__ = __le__ = __gt__ = __ge__ = __int__ = \
- __float__ = __complex__ = __pow__ = __rpow__ = \
- _fail_with_undefined_error
-
- def __eq__(self, other):
- return type(self) is type(other)
-
- def __ne__(self, other):
- return not self.__eq__(other)
-
- def __hash__(self):
- return id(type(self))
-
- def __str__(self):
- return u''
-
- def __len__(self):
- return 0
-
- def __iter__(self):
- if 0:
- yield None
-
- def __nonzero__(self):
- return False
- __bool__ = __nonzero__
-
- def __repr__(self):
- return 'Undefined'
-
-
-def make_logging_undefined(logger=None, base=None):
- """Given a logger object this returns a new undefined class that will
- log certain failures. It will log iterations and printing. If no
- logger is given a default logger is created.
-
- Example::
-
- logger = logging.getLogger(__name__)
- LoggingUndefined = make_logging_undefined(
- logger=logger,
- base=Undefined
- )
-
- .. versionadded:: 2.8
-
- :param logger: the logger to use. If not provided, a default logger
- is created.
- :param base: the base class to add logging functionality to. This
- defaults to :class:`Undefined`.
- """
- if logger is None:
- import logging
- logger = logging.getLogger(__name__)
- logger.addHandler(logging.StreamHandler(sys.stderr))
- if base is None:
- base = Undefined
-
- def _log_message(undef):
- if undef._undefined_hint is None:
- if undef._undefined_obj is missing:
- hint = '%s is undefined' % undef._undefined_name
- elif not isinstance(undef._undefined_name, string_types):
- hint = '%s has no element %s' % (
- object_type_repr(undef._undefined_obj),
- undef._undefined_name)
- else:
- hint = '%s has no attribute %s' % (
- object_type_repr(undef._undefined_obj),
- undef._undefined_name)
- else:
- hint = undef._undefined_hint
- logger.warning('Template variable warning: %s', hint)
-
- class LoggingUndefined(base):
-
- def _fail_with_undefined_error(self, *args, **kwargs):
- try:
- return base._fail_with_undefined_error(self, *args, **kwargs)
- except self._undefined_exception as e:
- logger.error('Template variable error: %s', str(e))
- raise e
-
- def __str__(self):
- rv = base.__str__(self)
- _log_message(self)
- return rv
-
- def __iter__(self):
- rv = base.__iter__(self)
- _log_message(self)
- return rv
-
- if PY2:
- def __nonzero__(self):
- rv = base.__nonzero__(self)
- _log_message(self)
- return rv
-
- def __unicode__(self):
- rv = base.__unicode__(self)
- _log_message(self)
- return rv
- else:
- def __bool__(self):
- rv = base.__bool__(self)
- _log_message(self)
- return rv
-
- return LoggingUndefined
-
-
-@implements_to_string
-class DebugUndefined(Undefined):
- """An undefined that returns the debug info when printed.
-
- >>> foo = DebugUndefined(name='foo')
- >>> str(foo)
- '{{ foo }}'
- >>> not foo
- True
- >>> foo + 42
- Traceback (most recent call last):
- ...
- jinja2.exceptions.UndefinedError: 'foo' is undefined
- """
- __slots__ = ()
-
- def __str__(self):
- if self._undefined_hint is None:
- if self._undefined_obj is missing:
- return u'{{ %s }}' % self._undefined_name
- return '{{ no such element: %s[%r] }}' % (
- object_type_repr(self._undefined_obj),
- self._undefined_name
- )
- return u'{{ undefined value printed: %s }}' % self._undefined_hint
-
-
-@implements_to_string
-class StrictUndefined(Undefined):
- """An undefined that barks on print and iteration as well as boolean
- tests and all kinds of comparisons. In other words: you can do nothing
- with it except checking if it's defined using the `defined` test.
-
- >>> foo = StrictUndefined(name='foo')
- >>> str(foo)
- Traceback (most recent call last):
- ...
- jinja2.exceptions.UndefinedError: 'foo' is undefined
- >>> not foo
- Traceback (most recent call last):
- ...
- jinja2.exceptions.UndefinedError: 'foo' is undefined
- >>> foo + 42
- Traceback (most recent call last):
- ...
- jinja2.exceptions.UndefinedError: 'foo' is undefined
- """
- __slots__ = ()
- __iter__ = __str__ = __len__ = __nonzero__ = __eq__ = \
- __ne__ = __bool__ = __hash__ = \
- Undefined._fail_with_undefined_error
-
-
-# remove remaining slots attributes, after the metaclass did the magic they
-# are unneeded and irritating as they contain wrong data for the subclasses.
-del Undefined.__slots__, DebugUndefined.__slots__, StrictUndefined.__slots__
diff --git a/vendor/jinja2/sandbox.py b/vendor/jinja2/sandbox.py
deleted file mode 100644
index 7e40ab30..00000000
--- a/vendor/jinja2/sandbox.py
+++ /dev/null
@@ -1,367 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.sandbox
- ~~~~~~~~~~~~~~
-
- Adds a sandbox layer to Jinja as it was the default behavior in the old
- Jinja 1 releases. This sandbox is slightly different from Jinja 1 as the
- default behavior is easier to use.
-
- The behavior can be changed by subclassing the environment.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD.
-"""
-import types
-import operator
-from jinja2.environment import Environment
-from jinja2.exceptions import SecurityError
-from jinja2._compat import string_types, PY2
-
-
-#: maximum number of items a range may produce
-MAX_RANGE = 100000
-
-#: attributes of function objects that are considered unsafe.
-if PY2:
- UNSAFE_FUNCTION_ATTRIBUTES = set(['func_closure', 'func_code', 'func_dict',
- 'func_defaults', 'func_globals'])
-else:
- # On versions > python 2 the special attributes on functions are gone,
- # but they remain on methods and generators for whatever reason.
- UNSAFE_FUNCTION_ATTRIBUTES = set()
-
-
-#: unsafe method attributes. function attributes are unsafe for methods too
-UNSAFE_METHOD_ATTRIBUTES = set(['im_class', 'im_func', 'im_self'])
-
-#: unsafe generator attirbutes.
-UNSAFE_GENERATOR_ATTRIBUTES = set(['gi_frame', 'gi_code'])
-
-import warnings
-
-# make sure we don't warn in python 2.6 about stuff we don't care about
-warnings.filterwarnings('ignore', 'the sets module', DeprecationWarning,
- module='jinja2.sandbox')
-
-from collections import deque
-
-_mutable_set_types = (set,)
-_mutable_mapping_types = (dict,)
-_mutable_sequence_types = (list,)
-
-
-# on python 2.x we can register the user collection types
-try:
- from UserDict import UserDict, DictMixin
- from UserList import UserList
- _mutable_mapping_types += (UserDict, DictMixin)
- _mutable_set_types += (UserList,)
-except ImportError:
- pass
-
-# if sets is still available, register the mutable set from there as well
-try:
- from sets import Set
- _mutable_set_types += (Set,)
-except ImportError:
- pass
-
-#: register Python 2.6 abstract base classes
-try:
- from collections import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-except ImportError:
- pass
-
-_mutable_spec = (
- (_mutable_set_types, frozenset([
- 'add', 'clear', 'difference_update', 'discard', 'pop', 'remove',
- 'symmetric_difference_update', 'update'
- ])),
- (_mutable_mapping_types, frozenset([
- 'clear', 'pop', 'popitem', 'setdefault', 'update'
- ])),
- (_mutable_sequence_types, frozenset([
- 'append', 'reverse', 'insert', 'sort', 'extend', 'remove'
- ])),
- (deque, frozenset([
- 'append', 'appendleft', 'clear', 'extend', 'extendleft', 'pop',
- 'popleft', 'remove', 'rotate'
- ]))
-)
-
-
-def safe_range(*args):
- """A range that can't generate ranges with a length of more than
- MAX_RANGE items.
- """
- rng = range(*args)
- if len(rng) > MAX_RANGE:
- raise OverflowError('range too big, maximum size for range is %d' %
- MAX_RANGE)
- return rng
-
-
-def unsafe(f):
- """Marks a function or method as unsafe.
-
- ::
-
- @unsafe
- def delete(self):
- pass
- """
- f.unsafe_callable = True
- return f
-
-
-def is_internal_attribute(obj, attr):
- """Test if the attribute given is an internal python attribute. For
- example this function returns `True` for the `func_code` attribute of
- python objects. This is useful if the environment method
- :meth:`~SandboxedEnvironment.is_safe_attribute` is overridden.
-
- >>> from jinja2.sandbox import is_internal_attribute
- >>> is_internal_attribute(str, "mro")
- True
- >>> is_internal_attribute(str, "upper")
- False
- """
- if isinstance(obj, types.FunctionType):
- if attr in UNSAFE_FUNCTION_ATTRIBUTES:
- return True
- elif isinstance(obj, types.MethodType):
- if attr in UNSAFE_FUNCTION_ATTRIBUTES or \
- attr in UNSAFE_METHOD_ATTRIBUTES:
- return True
- elif isinstance(obj, type):
- if attr == 'mro':
- return True
- elif isinstance(obj, (types.CodeType, types.TracebackType, types.FrameType)):
- return True
- elif isinstance(obj, types.GeneratorType):
- if attr in UNSAFE_GENERATOR_ATTRIBUTES:
- return True
- return attr.startswith('__')
-
-
-def modifies_known_mutable(obj, attr):
- """This function checks if an attribute on a builtin mutable object
- (list, dict, set or deque) would modify it if called. It also supports
- the "user"-versions of the objects (`sets.Set`, `UserDict.*` etc.) and
- with Python 2.6 onwards the abstract base classes `MutableSet`,
- `MutableMapping`, and `MutableSequence`.
-
- >>> modifies_known_mutable({}, "clear")
- True
- >>> modifies_known_mutable({}, "keys")
- False
- >>> modifies_known_mutable([], "append")
- True
- >>> modifies_known_mutable([], "index")
- False
-
- If called with an unsupported object (such as unicode) `False` is
- returned.
-
- >>> modifies_known_mutable("foo", "upper")
- False
- """
- for typespec, unsafe in _mutable_spec:
- if isinstance(obj, typespec):
- return attr in unsafe
- return False
-
-
-class SandboxedEnvironment(Environment):
- """The sandboxed environment. It works like the regular environment but
- tells the compiler to generate sandboxed code. Additionally subclasses of
- this environment may override the methods that tell the runtime what
- attributes or functions are safe to access.
-
- If the template tries to access insecure code a :exc:`SecurityError` is
- raised. However also other exceptions may occour during the rendering so
- the caller has to ensure that all exceptions are catched.
- """
- sandboxed = True
-
- #: default callback table for the binary operators. A copy of this is
- #: available on each instance of a sandboxed environment as
- #: :attr:`binop_table`
- default_binop_table = {
- '+': operator.add,
- '-': operator.sub,
- '*': operator.mul,
- '/': operator.truediv,
- '//': operator.floordiv,
- '**': operator.pow,
- '%': operator.mod
- }
-
- #: default callback table for the unary operators. A copy of this is
- #: available on each instance of a sandboxed environment as
- #: :attr:`unop_table`
- default_unop_table = {
- '+': operator.pos,
- '-': operator.neg
- }
-
- #: a set of binary operators that should be intercepted. Each operator
- #: that is added to this set (empty by default) is delegated to the
- #: :meth:`call_binop` method that will perform the operator. The default
- #: operator callback is specified by :attr:`binop_table`.
- #:
- #: The following binary operators are interceptable:
- #: ``//``, ``%``, ``+``, ``*``, ``-``, ``/``, and ``**``
- #:
- #: The default operation form the operator table corresponds to the
- #: builtin function. Intercepted calls are always slower than the native
- #: operator call, so make sure only to intercept the ones you are
- #: interested in.
- #:
- #: .. versionadded:: 2.6
- intercepted_binops = frozenset()
-
- #: a set of unary operators that should be intercepted. Each operator
- #: that is added to this set (empty by default) is delegated to the
- #: :meth:`call_unop` method that will perform the operator. The default
- #: operator callback is specified by :attr:`unop_table`.
- #:
- #: The following unary operators are interceptable: ``+``, ``-``
- #:
- #: The default operation form the operator table corresponds to the
- #: builtin function. Intercepted calls are always slower than the native
- #: operator call, so make sure only to intercept the ones you are
- #: interested in.
- #:
- #: .. versionadded:: 2.6
- intercepted_unops = frozenset()
-
- def intercept_unop(self, operator):
- """Called during template compilation with the name of a unary
- operator to check if it should be intercepted at runtime. If this
- method returns `True`, :meth:`call_unop` is excuted for this unary
- operator. The default implementation of :meth:`call_unop` will use
- the :attr:`unop_table` dictionary to perform the operator with the
- same logic as the builtin one.
-
- The following unary operators are interceptable: ``+`` and ``-``
-
- Intercepted calls are always slower than the native operator call,
- so make sure only to intercept the ones you are interested in.
-
- .. versionadded:: 2.6
- """
- return False
-
-
- def __init__(self, *args, **kwargs):
- Environment.__init__(self, *args, **kwargs)
- self.globals['range'] = safe_range
- self.binop_table = self.default_binop_table.copy()
- self.unop_table = self.default_unop_table.copy()
-
- def is_safe_attribute(self, obj, attr, value):
- """The sandboxed environment will call this method to check if the
- attribute of an object is safe to access. Per default all attributes
- starting with an underscore are considered private as well as the
- special attributes of internal python objects as returned by the
- :func:`is_internal_attribute` function.
- """
- return not (attr.startswith('_') or is_internal_attribute(obj, attr))
-
- def is_safe_callable(self, obj):
- """Check if an object is safely callable. Per default a function is
- considered safe unless the `unsafe_callable` attribute exists and is
- True. Override this method to alter the behavior, but this won't
- affect the `unsafe` decorator from this module.
- """
- return not (getattr(obj, 'unsafe_callable', False) or
- getattr(obj, 'alters_data', False))
-
- def call_binop(self, context, operator, left, right):
- """For intercepted binary operator calls (:meth:`intercepted_binops`)
- this function is executed instead of the builtin operator. This can
- be used to fine tune the behavior of certain operators.
-
- .. versionadded:: 2.6
- """
- return self.binop_table[operator](left, right)
-
- def call_unop(self, context, operator, arg):
- """For intercepted unary operator calls (:meth:`intercepted_unops`)
- this function is executed instead of the builtin operator. This can
- be used to fine tune the behavior of certain operators.
-
- .. versionadded:: 2.6
- """
- return self.unop_table[operator](arg)
-
- def getitem(self, obj, argument):
- """Subscribe an object from sandboxed code."""
- try:
- return obj[argument]
- except (TypeError, LookupError):
- if isinstance(argument, string_types):
- try:
- attr = str(argument)
- except Exception:
- pass
- else:
- try:
- value = getattr(obj, attr)
- except AttributeError:
- pass
- else:
- if self.is_safe_attribute(obj, argument, value):
- return value
- return self.unsafe_undefined(obj, argument)
- return self.undefined(obj=obj, name=argument)
-
- def getattr(self, obj, attribute):
- """Subscribe an object from sandboxed code and prefer the
- attribute. The attribute passed *must* be a bytestring.
- """
- try:
- value = getattr(obj, attribute)
- except AttributeError:
- try:
- return obj[attribute]
- except (TypeError, LookupError):
- pass
- else:
- if self.is_safe_attribute(obj, attribute, value):
- return value
- return self.unsafe_undefined(obj, attribute)
- return self.undefined(obj=obj, name=attribute)
-
- def unsafe_undefined(self, obj, attribute):
- """Return an undefined object for unsafe attributes."""
- return self.undefined('access to attribute %r of %r '
- 'object is unsafe.' % (
- attribute,
- obj.__class__.__name__
- ), name=attribute, obj=obj, exc=SecurityError)
-
- def call(__self, __context, __obj, *args, **kwargs):
- """Call an object from sandboxed code."""
- # the double prefixes are to avoid double keyword argument
- # errors when proxying the call.
- if not __self.is_safe_callable(__obj):
- raise SecurityError('%r is not safely callable' % (__obj,))
- return __context.call(__obj, *args, **kwargs)
-
-
-class ImmutableSandboxedEnvironment(SandboxedEnvironment):
- """Works exactly like the regular `SandboxedEnvironment` but does not
- permit modifications on the builtin mutable objects `list`, `set`, and
- `dict` by using the :func:`modifies_known_mutable` function.
- """
-
- def is_safe_attribute(self, obj, attr, value):
- if not SandboxedEnvironment.is_safe_attribute(self, obj, attr, value):
- return False
- return not modifies_known_mutable(obj, attr)
diff --git a/vendor/jinja2/tests.py b/vendor/jinja2/tests.py
deleted file mode 100644
index bb32349d..00000000
--- a/vendor/jinja2/tests.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.tests
- ~~~~~~~~~~~~
-
- Jinja test functions. Used with the "is" operator.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import re
-from collections import Mapping
-from jinja2.runtime import Undefined
-from jinja2._compat import text_type, string_types, integer_types
-import decimal
-
-number_re = re.compile(r'^-?\d+(\.\d+)?$')
-regex_type = type(number_re)
-
-
-test_callable = callable
-
-
-def test_odd(value):
- """Return true if the variable is odd."""
- return value % 2 == 1
-
-
-def test_even(value):
- """Return true if the variable is even."""
- return value % 2 == 0
-
-
-def test_divisibleby(value, num):
- """Check if a variable is divisible by a number."""
- return value % num == 0
-
-
-def test_defined(value):
- """Return true if the variable is defined:
-
- .. sourcecode:: jinja
-
- {% if variable is defined %}
- value of variable: {{ variable }}
- {% else %}
- variable is not defined
- {% endif %}
-
- See the :func:`default` filter for a simple way to set undefined
- variables.
- """
- return not isinstance(value, Undefined)
-
-
-def test_undefined(value):
- """Like :func:`defined` but the other way round."""
- return isinstance(value, Undefined)
-
-
-def test_none(value):
- """Return true if the variable is none."""
- return value is None
-
-
-def test_lower(value):
- """Return true if the variable is lowercased."""
- return text_type(value).islower()
-
-
-def test_upper(value):
- """Return true if the variable is uppercased."""
- return text_type(value).isupper()
-
-
-def test_string(value):
- """Return true if the object is a string."""
- return isinstance(value, string_types)
-
-
-def test_mapping(value):
- """Return true if the object is a mapping (dict etc.).
-
- .. versionadded:: 2.6
- """
- return isinstance(value, Mapping)
-
-
-def test_number(value):
- """Return true if the variable is a number."""
- return isinstance(value, integer_types + (float, complex, decimal.Decimal))
-
-
-def test_sequence(value):
- """Return true if the variable is a sequence. Sequences are variables
- that are iterable.
- """
- try:
- len(value)
- value.__getitem__
- except:
- return False
- return True
-
-
-def test_equalto(value, other):
- """Check if an object has the same value as another object:
-
- .. sourcecode:: jinja
-
- {% if foo.expression is equalto 42 %}
- the foo attribute evaluates to the constant 42
- {% endif %}
-
- This appears to be a useless test as it does exactly the same as the
- ``==`` operator, but it can be useful when used together with the
- `selectattr` function:
-
- .. sourcecode:: jinja
-
- {{ users|selectattr("email", "equalto", "foo@bar.invalid") }}
-
- .. versionadded:: 2.8
- """
- return value == other
-
-
-def test_sameas(value, other):
- """Check if an object points to the same memory address than another
- object:
-
- .. sourcecode:: jinja
-
- {% if foo.attribute is sameas false %}
- the foo attribute really is the `False` singleton
- {% endif %}
- """
- return value is other
-
-
-def test_iterable(value):
- """Check if it's possible to iterate over an object."""
- try:
- iter(value)
- except TypeError:
- return False
- return True
-
-
-def test_escaped(value):
- """Check if the value is escaped."""
- return hasattr(value, '__html__')
-
-
-TESTS = {
- 'odd': test_odd,
- 'even': test_even,
- 'divisibleby': test_divisibleby,
- 'defined': test_defined,
- 'undefined': test_undefined,
- 'none': test_none,
- 'lower': test_lower,
- 'upper': test_upper,
- 'string': test_string,
- 'mapping': test_mapping,
- 'number': test_number,
- 'sequence': test_sequence,
- 'iterable': test_iterable,
- 'callable': test_callable,
- 'sameas': test_sameas,
- 'equalto': test_equalto,
- 'escaped': test_escaped
-}
diff --git a/vendor/jinja2/utils.py b/vendor/jinja2/utils.py
deleted file mode 100644
index cdd4cd3a..00000000
--- a/vendor/jinja2/utils.py
+++ /dev/null
@@ -1,531 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.utils
- ~~~~~~~~~~~~
-
- Utility functions.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD, see LICENSE for more details.
-"""
-import re
-import errno
-from collections import deque
-from threading import Lock
-from jinja2._compat import text_type, string_types, implements_iterator, \
- url_quote
-
-
-_word_split_re = re.compile(r'(\s+)')
-_punctuation_re = re.compile(
- '^(?P(?:%s)*)(?P.*?)(?P(?:%s)*)$' % (
- '|'.join(map(re.escape, ('(', '<', '<'))),
- '|'.join(map(re.escape, ('.', ',', ')', '>', '\n', '>')))
- )
-)
-_simple_email_re = re.compile(r'^\S+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+$')
-_striptags_re = re.compile(r'(|<[^>]*>)')
-_entity_re = re.compile(r'&([^;]+);')
-_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
-_digits = '0123456789'
-
-# special singleton representing missing values for the runtime
-missing = type('MissingType', (), {'__repr__': lambda x: 'missing'})()
-
-# internal code
-internal_code = set()
-
-concat = u''.join
-
-
-def contextfunction(f):
- """This decorator can be used to mark a function or method context callable.
- A context callable is passed the active :class:`Context` as first argument when
- called from the template. This is useful if a function wants to get access
- to the context or functions provided on the context object. For example
- a function that returns a sorted list of template variables the current
- template exports could look like this::
-
- @contextfunction
- def get_exported_names(context):
- return sorted(context.exported_vars)
- """
- f.contextfunction = True
- return f
-
-
-def evalcontextfunction(f):
- """This decorator can be used to mark a function or method as an eval
- context callable. This is similar to the :func:`contextfunction`
- but instead of passing the context, an evaluation context object is
- passed. For more information about the eval context, see
- :ref:`eval-context`.
-
- .. versionadded:: 2.4
- """
- f.evalcontextfunction = True
- return f
-
-
-def environmentfunction(f):
- """This decorator can be used to mark a function or method as environment
- callable. This decorator works exactly like the :func:`contextfunction`
- decorator just that the first argument is the active :class:`Environment`
- and not context.
- """
- f.environmentfunction = True
- return f
-
-
-def internalcode(f):
- """Marks the function as internally used"""
- internal_code.add(f.__code__)
- return f
-
-
-def is_undefined(obj):
- """Check if the object passed is undefined. This does nothing more than
- performing an instance check against :class:`Undefined` but looks nicer.
- This can be used for custom filters or tests that want to react to
- undefined variables. For example a custom default filter can look like
- this::
-
- def default(var, default=''):
- if is_undefined(var):
- return default
- return var
- """
- from jinja2.runtime import Undefined
- return isinstance(obj, Undefined)
-
-
-def consume(iterable):
- """Consumes an iterable without doing anything with it."""
- for event in iterable:
- pass
-
-
-def clear_caches():
- """Jinja2 keeps internal caches for environments and lexers. These are
- used so that Jinja2 doesn't have to recreate environments and lexers all
- the time. Normally you don't have to care about that but if you are
- messuring memory consumption you may want to clean the caches.
- """
- from jinja2.environment import _spontaneous_environments
- from jinja2.lexer import _lexer_cache
- _spontaneous_environments.clear()
- _lexer_cache.clear()
-
-
-def import_string(import_name, silent=False):
- """Imports an object based on a string. This is useful if you want to
- use import paths as endpoints or something similar. An import path can
- be specified either in dotted notation (``xml.sax.saxutils.escape``)
- or with a colon as object delimiter (``xml.sax.saxutils:escape``).
-
- If the `silent` is True the return value will be `None` if the import
- fails.
-
- :return: imported object
- """
- try:
- if ':' in import_name:
- module, obj = import_name.split(':', 1)
- elif '.' in import_name:
- items = import_name.split('.')
- module = '.'.join(items[:-1])
- obj = items[-1]
- else:
- return __import__(import_name)
- return getattr(__import__(module, None, None, [obj]), obj)
- except (ImportError, AttributeError):
- if not silent:
- raise
-
-
-def open_if_exists(filename, mode='rb'):
- """Returns a file descriptor for the filename if that file exists,
- otherwise `None`.
- """
- try:
- return open(filename, mode)
- except IOError as e:
- if e.errno not in (errno.ENOENT, errno.EISDIR, errno.EINVAL):
- raise
-
-
-def object_type_repr(obj):
- """Returns the name of the object's type. For some recognized
- singletons the name of the object is returned instead. (For
- example for `None` and `Ellipsis`).
- """
- if obj is None:
- return 'None'
- elif obj is Ellipsis:
- return 'Ellipsis'
- # __builtin__ in 2.x, builtins in 3.x
- if obj.__class__.__module__ in ('__builtin__', 'builtins'):
- name = obj.__class__.__name__
- else:
- name = obj.__class__.__module__ + '.' + obj.__class__.__name__
- return '%s object' % name
-
-
-def pformat(obj, verbose=False):
- """Prettyprint an object. Either use the `pretty` library or the
- builtin `pprint`.
- """
- try:
- from pretty import pretty
- return pretty(obj, verbose=verbose)
- except ImportError:
- from pprint import pformat
- return pformat(obj)
-
-
-def urlize(text, trim_url_limit=None, nofollow=False, target=None):
- """Converts any URLs in text into clickable links. Works on http://,
- https:// and www. links. Links can have trailing punctuation (periods,
- commas, close-parens) and leading punctuation (opening parens) and
- it'll still do the right thing.
-
- If trim_url_limit is not None, the URLs in link text will be limited
- to trim_url_limit characters.
-
- If nofollow is True, the URLs in link text will get a rel="nofollow"
- attribute.
-
- If target is not None, a target attribute will be added to the link.
- """
- trim_url = lambda x, limit=trim_url_limit: limit is not None \
- and (x[:limit] + (len(x) >=limit and '...'
- or '')) or x
- words = _word_split_re.split(text_type(escape(text)))
- nofollow_attr = nofollow and ' rel="nofollow"' or ''
- if target is not None and isinstance(target, string_types):
- target_attr = ' target="%s"' % target
- else:
- target_attr = ''
- for i, word in enumerate(words):
- match = _punctuation_re.match(word)
- if match:
- lead, middle, trail = match.groups()
- if middle.startswith('www.') or (
- '@' not in middle and
- not middle.startswith('http://') and
- not middle.startswith('https://') and
- len(middle) > 0 and
- middle[0] in _letters + _digits and (
- middle.endswith('.org') or
- middle.endswith('.net') or
- middle.endswith('.com')
- )):
- middle = '%s' % (middle,
- nofollow_attr, target_attr, trim_url(middle))
- if middle.startswith('http://') or \
- middle.startswith('https://'):
- middle = '%s' % (middle,
- nofollow_attr, target_attr, trim_url(middle))
- if '@' in middle and not middle.startswith('www.') and \
- not ':' in middle and _simple_email_re.match(middle):
- middle = '%s' % (middle, middle)
- if lead + middle + trail != word:
- words[i] = lead + middle + trail
- return u''.join(words)
-
-
-def generate_lorem_ipsum(n=5, html=True, min=20, max=100):
- """Generate some lorem ipsum for the template."""
- from jinja2.constants import LOREM_IPSUM_WORDS
- from random import choice, randrange
- words = LOREM_IPSUM_WORDS.split()
- result = []
-
- for _ in range(n):
- next_capitalized = True
- last_comma = last_fullstop = 0
- word = None
- last = None
- p = []
-
- # each paragraph contains out of 20 to 100 words.
- for idx, _ in enumerate(range(randrange(min, max))):
- while True:
- word = choice(words)
- if word != last:
- last = word
- break
- if next_capitalized:
- word = word.capitalize()
- next_capitalized = False
- # add commas
- if idx - randrange(3, 8) > last_comma:
- last_comma = idx
- last_fullstop += 2
- word += ','
- # add end of sentences
- if idx - randrange(10, 20) > last_fullstop:
- last_comma = last_fullstop = idx
- word += '.'
- next_capitalized = True
- p.append(word)
-
- # ensure that the paragraph ends with a dot.
- p = u' '.join(p)
- if p.endswith(','):
- p = p[:-1] + '.'
- elif not p.endswith('.'):
- p += '.'
- result.append(p)
-
- if not html:
- return u'\n\n'.join(result)
- return Markup(u'\n'.join(u'%s
' % escape(x) for x in result))
-
-
-def unicode_urlencode(obj, charset='utf-8', for_qs=False):
- """URL escapes a single bytestring or unicode string with the
- given charset if applicable to URL safe quoting under all rules
- that need to be considered under all supported Python versions.
-
- If non strings are provided they are converted to their unicode
- representation first.
- """
- if not isinstance(obj, string_types):
- obj = text_type(obj)
- if isinstance(obj, text_type):
- obj = obj.encode(charset)
- safe = for_qs and b'' or b'/'
- rv = text_type(url_quote(obj, safe))
- if for_qs:
- rv = rv.replace('%20', '+')
- return rv
-
-
-class LRUCache(object):
- """A simple LRU Cache implementation."""
-
- # this is fast for small capacities (something below 1000) but doesn't
- # scale. But as long as it's only used as storage for templates this
- # won't do any harm.
-
- def __init__(self, capacity):
- self.capacity = capacity
- self._mapping = {}
- self._queue = deque()
- self._postinit()
-
- def _postinit(self):
- # alias all queue methods for faster lookup
- self._popleft = self._queue.popleft
- self._pop = self._queue.pop
- self._remove = self._queue.remove
- self._wlock = Lock()
- self._append = self._queue.append
-
- def __getstate__(self):
- return {
- 'capacity': self.capacity,
- '_mapping': self._mapping,
- '_queue': self._queue
- }
-
- def __setstate__(self, d):
- self.__dict__.update(d)
- self._postinit()
-
- def __getnewargs__(self):
- return (self.capacity,)
-
- def copy(self):
- """Return a shallow copy of the instance."""
- rv = self.__class__(self.capacity)
- rv._mapping.update(self._mapping)
- rv._queue = deque(self._queue)
- return rv
-
- def get(self, key, default=None):
- """Return an item from the cache dict or `default`"""
- try:
- return self[key]
- except KeyError:
- return default
-
- def setdefault(self, key, default=None):
- """Set `default` if the key is not in the cache otherwise
- leave unchanged. Return the value of this key.
- """
- self._wlock.acquire()
- try:
- try:
- return self[key]
- except KeyError:
- self[key] = default
- return default
- finally:
- self._wlock.release()
-
- def clear(self):
- """Clear the cache."""
- self._wlock.acquire()
- try:
- self._mapping.clear()
- self._queue.clear()
- finally:
- self._wlock.release()
-
- def __contains__(self, key):
- """Check if a key exists in this cache."""
- return key in self._mapping
-
- def __len__(self):
- """Return the current size of the cache."""
- return len(self._mapping)
-
- def __repr__(self):
- return '<%s %r>' % (
- self.__class__.__name__,
- self._mapping
- )
-
- def __getitem__(self, key):
- """Get an item from the cache. Moves the item up so that it has the
- highest priority then.
-
- Raise a `KeyError` if it does not exist.
- """
- self._wlock.acquire()
- try:
- rv = self._mapping[key]
- if self._queue[-1] != key:
- try:
- self._remove(key)
- except ValueError:
- # if something removed the key from the container
- # when we read, ignore the ValueError that we would
- # get otherwise.
- pass
- self._append(key)
- return rv
- finally:
- self._wlock.release()
-
- def __setitem__(self, key, value):
- """Sets the value for an item. Moves the item up so that it
- has the highest priority then.
- """
- self._wlock.acquire()
- try:
- if key in self._mapping:
- self._remove(key)
- elif len(self._mapping) == self.capacity:
- del self._mapping[self._popleft()]
- self._append(key)
- self._mapping[key] = value
- finally:
- self._wlock.release()
-
- def __delitem__(self, key):
- """Remove an item from the cache dict.
- Raise a `KeyError` if it does not exist.
- """
- self._wlock.acquire()
- try:
- del self._mapping[key]
- try:
- self._remove(key)
- except ValueError:
- # __getitem__ is not locked, it might happen
- pass
- finally:
- self._wlock.release()
-
- def items(self):
- """Return a list of items."""
- result = [(key, self._mapping[key]) for key in list(self._queue)]
- result.reverse()
- return result
-
- def iteritems(self):
- """Iterate over all items."""
- return iter(self.items())
-
- def values(self):
- """Return a list of all values."""
- return [x[1] for x in self.items()]
-
- def itervalue(self):
- """Iterate over all values."""
- return iter(self.values())
-
- def keys(self):
- """Return a list of all keys ordered by most recent usage."""
- return list(self)
-
- def iterkeys(self):
- """Iterate over all keys in the cache dict, ordered by
- the most recent usage.
- """
- return reversed(tuple(self._queue))
-
- __iter__ = iterkeys
-
- def __reversed__(self):
- """Iterate over the values in the cache dict, oldest items
- coming first.
- """
- return iter(tuple(self._queue))
-
- __copy__ = copy
-
-
-# register the LRU cache as mutable mapping if possible
-try:
- from collections import MutableMapping
- MutableMapping.register(LRUCache)
-except ImportError:
- pass
-
-
-@implements_iterator
-class Cycler(object):
- """A cycle helper for templates."""
-
- def __init__(self, *items):
- if not items:
- raise RuntimeError('at least one item has to be provided')
- self.items = items
- self.reset()
-
- def reset(self):
- """Resets the cycle."""
- self.pos = 0
-
- @property
- def current(self):
- """Returns the current item."""
- return self.items[self.pos]
-
- def __next__(self):
- """Goes one item ahead and returns it."""
- rv = self.current
- self.pos = (self.pos + 1) % len(self.items)
- return rv
-
-
-class Joiner(object):
- """A joining helper for templates."""
-
- def __init__(self, sep=u', '):
- self.sep = sep
- self.used = False
-
- def __call__(self):
- if not self.used:
- self.used = True
- return u''
- return self.sep
-
-
-# Imported here because that's where it was in the past
-from markupsafe import Markup, escape, soft_unicode
diff --git a/vendor/jinja2/visitor.py b/vendor/jinja2/visitor.py
deleted file mode 100644
index 413e7c30..00000000
--- a/vendor/jinja2/visitor.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2.visitor
- ~~~~~~~~~~~~~~
-
- This module implements a visitor for the nodes.
-
- :copyright: (c) 2010 by the Jinja Team.
- :license: BSD.
-"""
-from jinja2.nodes import Node
-
-
-class NodeVisitor(object):
- """Walks the abstract syntax tree and call visitor functions for every
- node found. The visitor functions may return values which will be
- forwarded by the `visit` method.
-
- Per default the visitor functions for the nodes are ``'visit_'`` +
- class name of the node. So a `TryFinally` node visit function would
- be `visit_TryFinally`. This behavior can be changed by overriding
- the `get_visitor` function. If no visitor function exists for a node
- (return value `None`) the `generic_visit` visitor is used instead.
- """
-
- def get_visitor(self, node):
- """Return the visitor function for this node or `None` if no visitor
- exists for this node. In that case the generic visit function is
- used instead.
- """
- method = 'visit_' + node.__class__.__name__
- return getattr(self, method, None)
-
- def visit(self, node, *args, **kwargs):
- """Visit a node."""
- f = self.get_visitor(node)
- if f is not None:
- return f(node, *args, **kwargs)
- return self.generic_visit(node, *args, **kwargs)
-
- def generic_visit(self, node, *args, **kwargs):
- """Called if no explicit visitor function exists for a node."""
- for node in node.iter_child_nodes():
- self.visit(node, *args, **kwargs)
-
-
-class NodeTransformer(NodeVisitor):
- """Walks the abstract syntax tree and allows modifications of nodes.
-
- The `NodeTransformer` will walk the AST and use the return value of the
- visitor functions to replace or remove the old node. If the return
- value of the visitor function is `None` the node will be removed
- from the previous location otherwise it's replaced with the return
- value. The return value may be the original node in which case no
- replacement takes place.
- """
-
- def generic_visit(self, node, *args, **kwargs):
- for field, old_value in node.iter_fields():
- if isinstance(old_value, list):
- new_values = []
- for value in old_value:
- if isinstance(value, Node):
- value = self.visit(value, *args, **kwargs)
- if value is None:
- continue
- elif not isinstance(value, Node):
- new_values.extend(value)
- continue
- new_values.append(value)
- old_value[:] = new_values
- elif isinstance(old_value, Node):
- new_node = self.visit(old_value, *args, **kwargs)
- if new_node is None:
- delattr(node, field)
- else:
- setattr(node, field, new_node)
- return node
-
- def visit_list(self, node, *args, **kwargs):
- """As transformers may return lists in some places this method
- can be used to enforce a list as return value.
- """
- rv = self.visit(node, *args, **kwargs)
- if not isinstance(rv, list):
- rv = [rv]
- return rv
diff --git a/vendor/markupsafe/AUTHORS b/vendor/markupsafe/AUTHORS
deleted file mode 100644
index f7e2942e..00000000
--- a/vendor/markupsafe/AUTHORS
+++ /dev/null
@@ -1,13 +0,0 @@
-MarkupSafe is written and maintained by Armin Ronacher and
-various contributors:
-
-Development Lead
-````````````````
-
-- Armin Ronacher
-
-Patches and Suggestions
-```````````````````````
-
-- Georg Brandl
-- Mickaël Guérin
diff --git a/vendor/markupsafe/LICENSE b/vendor/markupsafe/LICENSE
deleted file mode 100644
index 5d269389..00000000
--- a/vendor/markupsafe/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS
-for more details.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms of the software as well
-as documentation, with or without modification, are permitted provided
-that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-* The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
diff --git a/vendor/markupsafe/__init__.py b/vendor/markupsafe/__init__.py
deleted file mode 100644
index 27554015..00000000
--- a/vendor/markupsafe/__init__.py
+++ /dev/null
@@ -1,298 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- markupsafe
- ~~~~~~~~~~
-
- Implements a Markup string.
-
- :copyright: (c) 2010 by Armin Ronacher.
- :license: BSD, see LICENSE for more details.
-"""
-import re
-import string
-from collections import Mapping
-from markupsafe._compat import text_type, string_types, int_types, \
- unichr, iteritems, PY2
-
-
-__all__ = ['Markup', 'soft_unicode', 'escape', 'escape_silent']
-
-
-_striptags_re = re.compile(r'(|<[^>]*>)')
-_entity_re = re.compile(r'&([^;]+);')
-
-
-class Markup(text_type):
- r"""Marks a string as being safe for inclusion in HTML/XML output without
- needing to be escaped. This implements the `__html__` interface a couple
- of frameworks and web applications use. :class:`Markup` is a direct
- subclass of `unicode` and provides all the methods of `unicode` just that
- it escapes arguments passed and always returns `Markup`.
-
- The `escape` function returns markup objects so that double escaping can't
- happen.
-
- The constructor of the :class:`Markup` class can be used for three
- different things: When passed an unicode object it's assumed to be safe,
- when passed an object with an HTML representation (has an `__html__`
- method) that representation is used, otherwise the object passed is
- converted into a unicode string and then assumed to be safe:
-
- >>> Markup("Hello World!")
- Markup(u'Hello World!')
- >>> class Foo(object):
- ... def __html__(self):
- ... return 'foo'
- ...
- >>> Markup(Foo())
- Markup(u'foo')
-
- If you want object passed being always treated as unsafe you can use the
- :meth:`escape` classmethod to create a :class:`Markup` object:
-
- >>> Markup.escape("Hello World!")
- Markup(u'Hello <em>World</em>!')
-
- Operations on a markup string are markup aware which means that all
- arguments are passed through the :func:`escape` function:
-
- >>> em = Markup("%s")
- >>> em % "foo & bar"
- Markup(u'foo & bar')
- >>> strong = Markup("%(text)s")
- >>> strong % {'text': ''}
- Markup(u'<blink>hacker here</blink>')
- >>> Markup("Hello ") + ""
- Markup(u'Hello <foo>')
- """
- __slots__ = ()
-
- def __new__(cls, base=u'', encoding=None, errors='strict'):
- if hasattr(base, '__html__'):
- base = base.__html__()
- if encoding is None:
- return text_type.__new__(cls, base)
- return text_type.__new__(cls, base, encoding, errors)
-
- def __html__(self):
- return self
-
- def __add__(self, other):
- if isinstance(other, string_types) or hasattr(other, '__html__'):
- return self.__class__(super(Markup, self).__add__(self.escape(other)))
- return NotImplemented
-
- def __radd__(self, other):
- if hasattr(other, '__html__') or isinstance(other, string_types):
- return self.escape(other).__add__(self)
- return NotImplemented
-
- def __mul__(self, num):
- if isinstance(num, int_types):
- return self.__class__(text_type.__mul__(self, num))
- return NotImplemented
- __rmul__ = __mul__
-
- def __mod__(self, arg):
- if isinstance(arg, tuple):
- arg = tuple(_MarkupEscapeHelper(x, self.escape) for x in arg)
- else:
- arg = _MarkupEscapeHelper(arg, self.escape)
- return self.__class__(text_type.__mod__(self, arg))
-
- def __repr__(self):
- return '%s(%s)' % (
- self.__class__.__name__,
- text_type.__repr__(self)
- )
-
- def join(self, seq):
- return self.__class__(text_type.join(self, map(self.escape, seq)))
- join.__doc__ = text_type.join.__doc__
-
- def split(self, *args, **kwargs):
- return list(map(self.__class__, text_type.split(self, *args, **kwargs)))
- split.__doc__ = text_type.split.__doc__
-
- def rsplit(self, *args, **kwargs):
- return list(map(self.__class__, text_type.rsplit(self, *args, **kwargs)))
- rsplit.__doc__ = text_type.rsplit.__doc__
-
- def splitlines(self, *args, **kwargs):
- return list(map(self.__class__, text_type.splitlines(
- self, *args, **kwargs)))
- splitlines.__doc__ = text_type.splitlines.__doc__
-
- def unescape(self):
- r"""Unescape markup again into an text_type string. This also resolves
- known HTML4 and XHTML entities:
-
- >>> Markup("Main » About").unescape()
- u'Main \xbb About'
- """
- from markupsafe._constants import HTML_ENTITIES
- def handle_match(m):
- name = m.group(1)
- if name in HTML_ENTITIES:
- return unichr(HTML_ENTITIES[name])
- try:
- if name[:2] in ('#x', '#X'):
- return unichr(int(name[2:], 16))
- elif name.startswith('#'):
- return unichr(int(name[1:]))
- except ValueError:
- pass
- return u''
- return _entity_re.sub(handle_match, text_type(self))
-
- def striptags(self):
- r"""Unescape markup into an text_type string and strip all tags. This
- also resolves known HTML4 and XHTML entities. Whitespace is
- normalized to one:
-
- >>> Markup("Main » About").striptags()
- u'Main \xbb About'
- """
- stripped = u' '.join(_striptags_re.sub('', self).split())
- return Markup(stripped).unescape()
-
- @classmethod
- def escape(cls, s):
- """Escape the string. Works like :func:`escape` with the difference
- that for subclasses of :class:`Markup` this function would return the
- correct subclass.
- """
- rv = escape(s)
- if rv.__class__ is not cls:
- return cls(rv)
- return rv
-
- def make_simple_escaping_wrapper(name):
- orig = getattr(text_type, name)
- def func(self, *args, **kwargs):
- args = _escape_argspec(list(args), enumerate(args), self.escape)
- _escape_argspec(kwargs, iteritems(kwargs), self.escape)
- return self.__class__(orig(self, *args, **kwargs))
- func.__name__ = orig.__name__
- func.__doc__ = orig.__doc__
- return func
-
- for method in '__getitem__', 'capitalize', \
- 'title', 'lower', 'upper', 'replace', 'ljust', \
- 'rjust', 'lstrip', 'rstrip', 'center', 'strip', \
- 'translate', 'expandtabs', 'swapcase', 'zfill':
- locals()[method] = make_simple_escaping_wrapper(method)
-
- # new in python 2.5
- if hasattr(text_type, 'partition'):
- def partition(self, sep):
- return tuple(map(self.__class__,
- text_type.partition(self, self.escape(sep))))
- def rpartition(self, sep):
- return tuple(map(self.__class__,
- text_type.rpartition(self, self.escape(sep))))
-
- # new in python 2.6
- if hasattr(text_type, 'format'):
- def format(*args, **kwargs):
- self, args = args[0], args[1:]
- formatter = EscapeFormatter(self.escape)
- kwargs = _MagicFormatMapping(args, kwargs)
- return self.__class__(formatter.vformat(self, args, kwargs))
-
- def __html_format__(self, format_spec):
- if format_spec:
- raise ValueError('Unsupported format specification '
- 'for Markup.')
- return self
-
- # not in python 3
- if hasattr(text_type, '__getslice__'):
- __getslice__ = make_simple_escaping_wrapper('__getslice__')
-
- del method, make_simple_escaping_wrapper
-
-
-class _MagicFormatMapping(Mapping):
- """This class implements a dummy wrapper to fix a bug in the Python
- standard library for string formatting.
-
- See http://bugs.python.org/issue13598 for information about why
- this is necessary.
- """
-
- def __init__(self, args, kwargs):
- self._args = args
- self._kwargs = kwargs
- self._last_index = 0
-
- def __getitem__(self, key):
- if key == '':
- idx = self._last_index
- self._last_index += 1
- try:
- return self._args[idx]
- except LookupError:
- pass
- key = str(idx)
- return self._kwargs[key]
-
- def __iter__(self):
- return iter(self._kwargs)
-
- def __len__(self):
- return len(self._kwargs)
-
-
-if hasattr(text_type, 'format'):
- class EscapeFormatter(string.Formatter):
-
- def __init__(self, escape):
- self.escape = escape
-
- def format_field(self, value, format_spec):
- if hasattr(value, '__html_format__'):
- rv = value.__html_format__(format_spec)
- elif hasattr(value, '__html__'):
- if format_spec:
- raise ValueError('No format specification allowed '
- 'when formatting an object with '
- 'its __html__ method.')
- rv = value.__html__()
- else:
- rv = string.Formatter.format_field(self, value, format_spec)
- return text_type(self.escape(rv))
-
-
-def _escape_argspec(obj, iterable, escape):
- """Helper for various string-wrapped functions."""
- for key, value in iterable:
- if hasattr(value, '__html__') or isinstance(value, string_types):
- obj[key] = escape(value)
- return obj
-
-
-class _MarkupEscapeHelper(object):
- """Helper for Markup.__mod__"""
-
- def __init__(self, obj, escape):
- self.obj = obj
- self.escape = escape
-
- __getitem__ = lambda s, x: _MarkupEscapeHelper(s.obj[x], s.escape)
- __unicode__ = __str__ = lambda s: text_type(s.escape(s.obj))
- __repr__ = lambda s: str(s.escape(repr(s.obj)))
- __int__ = lambda s: int(s.obj)
- __float__ = lambda s: float(s.obj)
-
-
-# we have to import it down here as the speedups and native
-# modules imports the markup type which is define above.
-try:
- from markupsafe._speedups import escape, escape_silent, soft_unicode
-except ImportError:
- from markupsafe._native import escape, escape_silent, soft_unicode
-
-if not PY2:
- soft_str = soft_unicode
- __all__.append('soft_str')
diff --git a/vendor/markupsafe/_compat.py b/vendor/markupsafe/_compat.py
deleted file mode 100644
index 62e5632a..00000000
--- a/vendor/markupsafe/_compat.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- markupsafe._compat
- ~~~~~~~~~~~~~~~~~~
-
- Compatibility module for different Python versions.
-
- :copyright: (c) 2013 by Armin Ronacher.
- :license: BSD, see LICENSE for more details.
-"""
-import sys
-
-PY2 = sys.version_info[0] == 2
-
-if not PY2:
- text_type = str
- string_types = (str,)
- unichr = chr
- int_types = (int,)
- iteritems = lambda x: iter(x.items())
-else:
- text_type = unicode
- string_types = (str, unicode)
- unichr = unichr
- int_types = (int, long)
- iteritems = lambda x: x.iteritems()
diff --git a/vendor/markupsafe/_constants.py b/vendor/markupsafe/_constants.py
deleted file mode 100644
index 919bf03c..00000000
--- a/vendor/markupsafe/_constants.py
+++ /dev/null
@@ -1,267 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- markupsafe._constants
- ~~~~~~~~~~~~~~~~~~~~~
-
- Highlevel implementation of the Markup string.
-
- :copyright: (c) 2010 by Armin Ronacher.
- :license: BSD, see LICENSE for more details.
-"""
-
-
-HTML_ENTITIES = {
- 'AElig': 198,
- 'Aacute': 193,
- 'Acirc': 194,
- 'Agrave': 192,
- 'Alpha': 913,
- 'Aring': 197,
- 'Atilde': 195,
- 'Auml': 196,
- 'Beta': 914,
- 'Ccedil': 199,
- 'Chi': 935,
- 'Dagger': 8225,
- 'Delta': 916,
- 'ETH': 208,
- 'Eacute': 201,
- 'Ecirc': 202,
- 'Egrave': 200,
- 'Epsilon': 917,
- 'Eta': 919,
- 'Euml': 203,
- 'Gamma': 915,
- 'Iacute': 205,
- 'Icirc': 206,
- 'Igrave': 204,
- 'Iota': 921,
- 'Iuml': 207,
- 'Kappa': 922,
- 'Lambda': 923,
- 'Mu': 924,
- 'Ntilde': 209,
- 'Nu': 925,
- 'OElig': 338,
- 'Oacute': 211,
- 'Ocirc': 212,
- 'Ograve': 210,
- 'Omega': 937,
- 'Omicron': 927,
- 'Oslash': 216,
- 'Otilde': 213,
- 'Ouml': 214,
- 'Phi': 934,
- 'Pi': 928,
- 'Prime': 8243,
- 'Psi': 936,
- 'Rho': 929,
- 'Scaron': 352,
- 'Sigma': 931,
- 'THORN': 222,
- 'Tau': 932,
- 'Theta': 920,
- 'Uacute': 218,
- 'Ucirc': 219,
- 'Ugrave': 217,
- 'Upsilon': 933,
- 'Uuml': 220,
- 'Xi': 926,
- 'Yacute': 221,
- 'Yuml': 376,
- 'Zeta': 918,
- 'aacute': 225,
- 'acirc': 226,
- 'acute': 180,
- 'aelig': 230,
- 'agrave': 224,
- 'alefsym': 8501,
- 'alpha': 945,
- 'amp': 38,
- 'and': 8743,
- 'ang': 8736,
- 'apos': 39,
- 'aring': 229,
- 'asymp': 8776,
- 'atilde': 227,
- 'auml': 228,
- 'bdquo': 8222,
- 'beta': 946,
- 'brvbar': 166,
- 'bull': 8226,
- 'cap': 8745,
- 'ccedil': 231,
- 'cedil': 184,
- 'cent': 162,
- 'chi': 967,
- 'circ': 710,
- 'clubs': 9827,
- 'cong': 8773,
- 'copy': 169,
- 'crarr': 8629,
- 'cup': 8746,
- 'curren': 164,
- 'dArr': 8659,
- 'dagger': 8224,
- 'darr': 8595,
- 'deg': 176,
- 'delta': 948,
- 'diams': 9830,
- 'divide': 247,
- 'eacute': 233,
- 'ecirc': 234,
- 'egrave': 232,
- 'empty': 8709,
- 'emsp': 8195,
- 'ensp': 8194,
- 'epsilon': 949,
- 'equiv': 8801,
- 'eta': 951,
- 'eth': 240,
- 'euml': 235,
- 'euro': 8364,
- 'exist': 8707,
- 'fnof': 402,
- 'forall': 8704,
- 'frac12': 189,
- 'frac14': 188,
- 'frac34': 190,
- 'frasl': 8260,
- 'gamma': 947,
- 'ge': 8805,
- 'gt': 62,
- 'hArr': 8660,
- 'harr': 8596,
- 'hearts': 9829,
- 'hellip': 8230,
- 'iacute': 237,
- 'icirc': 238,
- 'iexcl': 161,
- 'igrave': 236,
- 'image': 8465,
- 'infin': 8734,
- 'int': 8747,
- 'iota': 953,
- 'iquest': 191,
- 'isin': 8712,
- 'iuml': 239,
- 'kappa': 954,
- 'lArr': 8656,
- 'lambda': 955,
- 'lang': 9001,
- 'laquo': 171,
- 'larr': 8592,
- 'lceil': 8968,
- 'ldquo': 8220,
- 'le': 8804,
- 'lfloor': 8970,
- 'lowast': 8727,
- 'loz': 9674,
- 'lrm': 8206,
- 'lsaquo': 8249,
- 'lsquo': 8216,
- 'lt': 60,
- 'macr': 175,
- 'mdash': 8212,
- 'micro': 181,
- 'middot': 183,
- 'minus': 8722,
- 'mu': 956,
- 'nabla': 8711,
- 'nbsp': 160,
- 'ndash': 8211,
- 'ne': 8800,
- 'ni': 8715,
- 'not': 172,
- 'notin': 8713,
- 'nsub': 8836,
- 'ntilde': 241,
- 'nu': 957,
- 'oacute': 243,
- 'ocirc': 244,
- 'oelig': 339,
- 'ograve': 242,
- 'oline': 8254,
- 'omega': 969,
- 'omicron': 959,
- 'oplus': 8853,
- 'or': 8744,
- 'ordf': 170,
- 'ordm': 186,
- 'oslash': 248,
- 'otilde': 245,
- 'otimes': 8855,
- 'ouml': 246,
- 'para': 182,
- 'part': 8706,
- 'permil': 8240,
- 'perp': 8869,
- 'phi': 966,
- 'pi': 960,
- 'piv': 982,
- 'plusmn': 177,
- 'pound': 163,
- 'prime': 8242,
- 'prod': 8719,
- 'prop': 8733,
- 'psi': 968,
- 'quot': 34,
- 'rArr': 8658,
- 'radic': 8730,
- 'rang': 9002,
- 'raquo': 187,
- 'rarr': 8594,
- 'rceil': 8969,
- 'rdquo': 8221,
- 'real': 8476,
- 'reg': 174,
- 'rfloor': 8971,
- 'rho': 961,
- 'rlm': 8207,
- 'rsaquo': 8250,
- 'rsquo': 8217,
- 'sbquo': 8218,
- 'scaron': 353,
- 'sdot': 8901,
- 'sect': 167,
- 'shy': 173,
- 'sigma': 963,
- 'sigmaf': 962,
- 'sim': 8764,
- 'spades': 9824,
- 'sub': 8834,
- 'sube': 8838,
- 'sum': 8721,
- 'sup': 8835,
- 'sup1': 185,
- 'sup2': 178,
- 'sup3': 179,
- 'supe': 8839,
- 'szlig': 223,
- 'tau': 964,
- 'there4': 8756,
- 'theta': 952,
- 'thetasym': 977,
- 'thinsp': 8201,
- 'thorn': 254,
- 'tilde': 732,
- 'times': 215,
- 'trade': 8482,
- 'uArr': 8657,
- 'uacute': 250,
- 'uarr': 8593,
- 'ucirc': 251,
- 'ugrave': 249,
- 'uml': 168,
- 'upsih': 978,
- 'upsilon': 965,
- 'uuml': 252,
- 'weierp': 8472,
- 'xi': 958,
- 'yacute': 253,
- 'yen': 165,
- 'yuml': 255,
- 'zeta': 950,
- 'zwj': 8205,
- 'zwnj': 8204
-}
diff --git a/vendor/markupsafe/_native.py b/vendor/markupsafe/_native.py
deleted file mode 100644
index 5e83f10a..00000000
--- a/vendor/markupsafe/_native.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- markupsafe._native
- ~~~~~~~~~~~~~~~~~~
-
- Native Python implementation the C module is not compiled.
-
- :copyright: (c) 2010 by Armin Ronacher.
- :license: BSD, see LICENSE for more details.
-"""
-from markupsafe import Markup
-from markupsafe._compat import text_type
-
-
-def escape(s):
- """Convert the characters &, <, >, ' and " in string s to HTML-safe
- sequences. Use this if you need to display text that might contain
- such characters in HTML. Marks return value as markup string.
- """
- if hasattr(s, '__html__'):
- return s.__html__()
- return Markup(text_type(s)
- .replace('&', '&')
- .replace('>', '>')
- .replace('<', '<')
- .replace("'", ''')
- .replace('"', '"')
- )
-
-
-def escape_silent(s):
- """Like :func:`escape` but converts `None` into an empty
- markup string.
- """
- if s is None:
- return Markup()
- return escape(s)
-
-
-def soft_unicode(s):
- """Make a string unicode if it isn't already. That way a markup
- string is not converted back to unicode.
- """
- if not isinstance(s, text_type):
- s = text_type(s)
- return s
diff --git a/vendor/markupsafe/_speedups.c b/vendor/markupsafe/_speedups.c
deleted file mode 100644
index f349febf..00000000
--- a/vendor/markupsafe/_speedups.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * markupsafe._speedups
- * ~~~~~~~~~~~~~~~~~~~~
- *
- * This module implements functions for automatic escaping in C for better
- * performance.
- *
- * :copyright: (c) 2010 by Armin Ronacher.
- * :license: BSD.
- */
-
-#include
-
-#define ESCAPED_CHARS_TABLE_SIZE 63
-#define UNICHR(x) (PyUnicode_AS_UNICODE((PyUnicodeObject*)PyUnicode_DecodeASCII(x, strlen(x), NULL)));
-
-#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
-typedef int Py_ssize_t;
-#define PY_SSIZE_T_MAX INT_MAX
-#define PY_SSIZE_T_MIN INT_MIN
-#endif
-
-
-static PyObject* markup;
-static Py_ssize_t escaped_chars_delta_len[ESCAPED_CHARS_TABLE_SIZE];
-static Py_UNICODE *escaped_chars_repl[ESCAPED_CHARS_TABLE_SIZE];
-
-static int
-init_constants(void)
-{
- PyObject *module;
- /* happing of characters to replace */
- escaped_chars_repl['"'] = UNICHR(""");
- escaped_chars_repl['\''] = UNICHR("'");
- escaped_chars_repl['&'] = UNICHR("&");
- escaped_chars_repl['<'] = UNICHR("<");
- escaped_chars_repl['>'] = UNICHR(">");
-
- /* lengths of those characters when replaced - 1 */
- memset(escaped_chars_delta_len, 0, sizeof (escaped_chars_delta_len));
- escaped_chars_delta_len['"'] = escaped_chars_delta_len['\''] = \
- escaped_chars_delta_len['&'] = 4;
- escaped_chars_delta_len['<'] = escaped_chars_delta_len['>'] = 3;
-
- /* import markup type so that we can mark the return value */
- module = PyImport_ImportModule("markupsafe");
- if (!module)
- return 0;
- markup = PyObject_GetAttrString(module, "Markup");
- Py_DECREF(module);
-
- return 1;
-}
-
-static PyObject*
-escape_unicode(PyUnicodeObject *in)
-{
- PyUnicodeObject *out;
- Py_UNICODE *inp = PyUnicode_AS_UNICODE(in);
- const Py_UNICODE *inp_end = PyUnicode_AS_UNICODE(in) + PyUnicode_GET_SIZE(in);
- Py_UNICODE *next_escp;
- Py_UNICODE *outp;
- Py_ssize_t delta=0, erepl=0, delta_len=0;
-
- /* First we need to figure out how long the escaped string will be */
- while (*(inp) || inp < inp_end) {
- if (*inp < ESCAPED_CHARS_TABLE_SIZE) {
- delta += escaped_chars_delta_len[*inp];
- erepl += !!escaped_chars_delta_len[*inp];
- }
- ++inp;
- }
-
- /* Do we need to escape anything at all? */
- if (!erepl) {
- Py_INCREF(in);
- return (PyObject*)in;
- }
-
- out = (PyUnicodeObject*)PyUnicode_FromUnicode(NULL, PyUnicode_GET_SIZE(in) + delta);
- if (!out)
- return NULL;
-
- outp = PyUnicode_AS_UNICODE(out);
- inp = PyUnicode_AS_UNICODE(in);
- while (erepl-- > 0) {
- /* look for the next substitution */
- next_escp = inp;
- while (next_escp < inp_end) {
- if (*next_escp < ESCAPED_CHARS_TABLE_SIZE &&
- (delta_len = escaped_chars_delta_len[*next_escp])) {
- ++delta_len;
- break;
- }
- ++next_escp;
- }
-
- if (next_escp > inp) {
- /* copy unescaped chars between inp and next_escp */
- Py_UNICODE_COPY(outp, inp, next_escp-inp);
- outp += next_escp - inp;
- }
-
- /* escape 'next_escp' */
- Py_UNICODE_COPY(outp, escaped_chars_repl[*next_escp], delta_len);
- outp += delta_len;
-
- inp = next_escp + 1;
- }
- if (inp < inp_end)
- Py_UNICODE_COPY(outp, inp, PyUnicode_GET_SIZE(in) - (inp - PyUnicode_AS_UNICODE(in)));
-
- return (PyObject*)out;
-}
-
-
-static PyObject*
-escape(PyObject *self, PyObject *text)
-{
- PyObject *s = NULL, *rv = NULL, *html;
-
- /* we don't have to escape integers, bools or floats */
- if (PyLong_CheckExact(text) ||
-#if PY_MAJOR_VERSION < 3
- PyInt_CheckExact(text) ||
-#endif
- PyFloat_CheckExact(text) || PyBool_Check(text) ||
- text == Py_None)
- return PyObject_CallFunctionObjArgs(markup, text, NULL);
-
- /* if the object has an __html__ method that performs the escaping */
- html = PyObject_GetAttrString(text, "__html__");
- if (html) {
- rv = PyObject_CallObject(html, NULL);
- Py_DECREF(html);
- return rv;
- }
-
- /* otherwise make the object unicode if it isn't, then escape */
- PyErr_Clear();
- if (!PyUnicode_Check(text)) {
-#if PY_MAJOR_VERSION < 3
- PyObject *unicode = PyObject_Unicode(text);
-#else
- PyObject *unicode = PyObject_Str(text);
-#endif
- if (!unicode)
- return NULL;
- s = escape_unicode((PyUnicodeObject*)unicode);
- Py_DECREF(unicode);
- }
- else
- s = escape_unicode((PyUnicodeObject*)text);
-
- /* convert the unicode string into a markup object. */
- rv = PyObject_CallFunctionObjArgs(markup, (PyObject*)s, NULL);
- Py_DECREF(s);
- return rv;
-}
-
-
-static PyObject*
-escape_silent(PyObject *self, PyObject *text)
-{
- if (text != Py_None)
- return escape(self, text);
- return PyObject_CallFunctionObjArgs(markup, NULL);
-}
-
-
-static PyObject*
-soft_unicode(PyObject *self, PyObject *s)
-{
- if (!PyUnicode_Check(s))
-#if PY_MAJOR_VERSION < 3
- return PyObject_Unicode(s);
-#else
- return PyObject_Str(s);
-#endif
- Py_INCREF(s);
- return s;
-}
-
-
-static PyMethodDef module_methods[] = {
- {"escape", (PyCFunction)escape, METH_O,
- "escape(s) -> markup\n\n"
- "Convert the characters &, <, >, ', and \" in string s to HTML-safe\n"
- "sequences. Use this if you need to display text that might contain\n"
- "such characters in HTML. Marks return value as markup string."},
- {"escape_silent", (PyCFunction)escape_silent, METH_O,
- "escape_silent(s) -> markup\n\n"
- "Like escape but converts None to an empty string."},
- {"soft_unicode", (PyCFunction)soft_unicode, METH_O,
- "soft_unicode(object) -> string\n\n"
- "Make a string unicode if it isn't already. That way a markup\n"
- "string is not converted back to unicode."},
- {NULL, NULL, 0, NULL} /* Sentinel */
-};
-
-
-#if PY_MAJOR_VERSION < 3
-
-#ifndef PyMODINIT_FUNC /* declarations for DLL import/export */
-#define PyMODINIT_FUNC void
-#endif
-PyMODINIT_FUNC
-init_speedups(void)
-{
- if (!init_constants())
- return;
-
- Py_InitModule3("markupsafe._speedups", module_methods, "");
-}
-
-#else /* Python 3.x module initialization */
-
-static struct PyModuleDef module_definition = {
- PyModuleDef_HEAD_INIT,
- "markupsafe._speedups",
- NULL,
- -1,
- module_methods,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit__speedups(void)
-{
- if (!init_constants())
- return NULL;
-
- return PyModule_Create(&module_definition);
-}
-
-#endif
diff --git a/vendor/markupsafe/tests.py b/vendor/markupsafe/tests.py
deleted file mode 100644
index 63699362..00000000
--- a/vendor/markupsafe/tests.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# -*- coding: utf-8 -*-
-import gc
-import sys
-import unittest
-from markupsafe import Markup, escape, escape_silent
-from markupsafe._compat import text_type
-
-
-class MarkupTestCase(unittest.TestCase):
-
- def test_adding(self):
- # adding two strings should escape the unsafe one
- unsafe = ''
- safe = Markup('username')
- assert unsafe + safe == text_type(escape(unsafe)) + text_type(safe)
-
- def test_string_interpolation(self):
- # string interpolations are safe to use too
- assert Markup('%s') % '' == \
- '<bad user>'
- assert Markup('%(username)s') % {
- 'username': ''
- } == '<bad user>'
-
- assert Markup('%i') % 3.14 == '3'
- assert Markup('%.2f') % 3.14 == '3.14'
-
- def test_type_behavior(self):
- # an escaped object is markup too
- assert type(Markup('foo') + 'bar') is Markup
-
- # and it implements __html__ by returning itself
- x = Markup("foo")
- assert x.__html__() is x
-
- def test_html_interop(self):
- # it also knows how to treat __html__ objects
- class Foo(object):
- def __html__(self):
- return 'awesome'
- def __unicode__(self):
- return 'awesome'
- __str__ = __unicode__
- assert Markup(Foo()) == 'awesome'
- assert Markup('%s') % Foo() == \
- 'awesome'
-
- def test_tuple_interpol(self):
- self.assertEqual(Markup('%s:%s') % (
- '',
- '',
- ), Markup(u'<foo>:<bar>'))
-
- def test_dict_interpol(self):
- self.assertEqual(Markup('%(foo)s') % {
- 'foo': '',
- }, Markup(u'<foo>'))
- self.assertEqual(Markup('%(foo)s:%(bar)s') % {
- 'foo': '',
- 'bar': '',
- }, Markup(u'<foo>:<bar>'))
-
- def test_escaping(self):
- # escaping and unescaping
- assert escape('"<>&\'') == '"<>&''
- assert Markup("Foo & Bar").striptags() == "Foo & Bar"
- assert Markup("<test>").unescape() == ""
-
- def test_formatting(self):
- for actual, expected in (
- (Markup('%i') % 3.14, '3'),
- (Markup('%.2f') % 3.14159, '3.14'),
- (Markup('%s %s %s') % ('<', 123, '>'), '< 123 >'),
- (Markup('{awesome}').format(awesome=''),
- '<awesome>'),
- (Markup('{0[1][bar]}').format([0, {'bar': ''}]),
- '<bar/>'),
- (Markup('{0[1][bar]}').format([0, {'bar': Markup('')}]),
- '')):
- assert actual == expected, "%r should be %r!" % (actual, expected)
-
- # This is new in 2.7
- if sys.version_info >= (2, 7):
- def test_formatting_empty(self):
- formatted = Markup('{}').format(0)
- assert formatted == Markup('0')
-
- def test_custom_formatting(self):
- class HasHTMLOnly(object):
- def __html__(self):
- return Markup('')
-
- class HasHTMLAndFormat(object):
- def __html__(self):
- return Markup('')
- def __html_format__(self, spec):
- return Markup('')
-
- assert Markup('{0}').format(HasHTMLOnly()) == Markup('')
- assert Markup('{0}').format(HasHTMLAndFormat()) == Markup('')
-
- def test_complex_custom_formatting(self):
- class User(object):
- def __init__(self, id, username):
- self.id = id
- self.username = username
- def __html_format__(self, format_spec):
- if format_spec == 'link':
- return Markup('{1}').format(
- self.id,
- self.__html__(),
- )
- elif format_spec:
- raise ValueError('Invalid format spec')
- return self.__html__()
- def __html__(self):
- return Markup('{0}').format(self.username)
-
- user = User(1, 'foo')
- assert Markup('User: {0:link}').format(user) == \
- Markup('
User: foo')
-
- def test_all_set(self):
- import markupsafe as markup
- for item in markup.__all__:
- getattr(markup, item)
-
- def test_escape_silent(self):
- assert escape_silent(None) == Markup()
- assert escape(None) == Markup(None)
- assert escape_silent('') == Markup(u'<foo>')
-
- def test_splitting(self):
- self.assertEqual(Markup('a b').split(), [
- Markup('a'),
- Markup('b')
- ])
- self.assertEqual(Markup('a b').rsplit(), [
- Markup('a'),
- Markup('b')
- ])
- self.assertEqual(Markup('a\nb').splitlines(), [
- Markup('a'),
- Markup('b')
- ])
-
- def test_mul(self):
- self.assertEqual(Markup('a') * 3, Markup('aaa'))
-
-
-class MarkupLeakTestCase(unittest.TestCase):
-
- def test_markup_leaks(self):
- counts = set()
- for count in range(20):
- for item in range(1000):
- escape("foo")
- escape("")
- escape(u"foo")
- escape(u"")
- counts.add(len(gc.get_objects()))
- assert len(counts) == 1, 'ouch, c extension seems to leak objects'
-
-
-def suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(MarkupTestCase))
-
- # this test only tests the c extension
- if not hasattr(escape, 'func_code'):
- suite.addTest(unittest.makeSuite(MarkupLeakTestCase))
-
- return suite
-
-
-if __name__ == '__main__':
- unittest.main(defaultTest='suite')
-
-# vim:sts=4:sw=4:et:
diff --git a/vendor/pytz/LICENSE.txt b/vendor/pytz/LICENSE.txt
deleted file mode 100644
index 5e12fcca..00000000
--- a/vendor/pytz/LICENSE.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2003-2009 Stuart Bishop
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
diff --git a/vendor/pytz/__init__.py b/vendor/pytz/__init__.py
deleted file mode 100644
index f4ff913f..00000000
--- a/vendor/pytz/__init__.py
+++ /dev/null
@@ -1,1322 +0,0 @@
-'''
-datetime.tzinfo timezone definitions generated from the
-Olson timezone database:
-
- ftp://elsie.nci.nih.gov/pub/tz*.tar.gz
-
-See the datetime section of the Python Library Reference for information
-on how to use these modules.
-'''
-
-# The Olson database has historically been updated about 4 times a year
-OLSON_VERSION = '2006p'
-VERSION = OLSON_VERSION
-#VERSION = OLSON_VERSION + '.2'
-__version__ = OLSON_VERSION
-
-OLSEN_VERSION = OLSON_VERSION # Old releases had this misspelling
-
-__all__ = [
- 'timezone', 'all_timezones', 'common_timezones', 'utc',
- 'AmbiguousTimeError', 'country_timezones', '_',
- ]
-
-import sys, datetime, os.path, gettext
-from tzinfo import AmbiguousTimeError, unpickler
-
-# Enable this when we get some translations?
-# We want an i18n API that is useful to programs using Python's gettext
-# module, as well as the Zope3 i18n package. Perhaps we should just provide
-# the POT file and translations, and leave it up to callers to make use
-# of them.
-#
-# t = gettext.translation(
-# 'pytz', os.path.join(os.path.dirname(__file__), 'locales'),
-# fallback=True
-# )
-# def _(timezone_name):
-# """Translate a timezone name using the current locale, returning Unicode"""
-# return t.ugettext(timezone_name)
-
-def timezone(zone):
- ''' Return a datetime.tzinfo implementation for the given timezone
-
- >>> from datetime import datetime, timedelta
- >>> utc = timezone('UTC')
- >>> eastern = timezone('US/Eastern')
- >>> eastern.zone
- 'US/Eastern'
- >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
- >>> loc_dt = utc_dt.astimezone(eastern)
- >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
- >>> loc_dt.strftime(fmt)
- '2002-10-27 01:00:00 EST (-0500)'
- >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
- '2002-10-27 00:50:00 EST (-0500)'
- >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
- '2002-10-27 01:50:00 EDT (-0400)'
- >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
- '2002-10-27 01:10:00 EST (-0500)'
- '''
- zone = _munge_zone(zone)
- if zone.upper() == 'UTC':
- return utc
- zone_bits = ['zoneinfo'] + zone.split('/')
-
- # Load zone's module
- module_name = '.'.join(zone_bits)
- try:
- module = __import__(module_name, globals(), locals())
- except ImportError:
- raise KeyError, zone
- rv = module
- for bit in zone_bits[1:]:
- rv = getattr(rv, bit)
-
- # Return instance from that module
- rv = getattr(rv, zone_bits[-1])
- assert type(rv) != type(sys)
- return rv
-
-
-def _munge_zone(zone):
- ''' Convert a zone into a string suitable for use as a Python identifier
- '''
- return zone.replace('+', '_plus_').replace('-', '_minus_')
-
-
-ZERO = datetime.timedelta(0)
-HOUR = datetime.timedelta(hours=1)
-
-
-class UTC(datetime.tzinfo):
- """UTC
-
- Identical to the reference UTC implementation given in Python docs except
- that it unpickles using the single module global instance defined beneath
- this class declaration.
-
- Also contains extra attributes and methods to match other pytz tzinfo
- instances.
- """
- zone = "UTC"
-
- def utcoffset(self, dt):
- return ZERO
-
- def tzname(self, dt):
- return "UTC"
-
- def dst(self, dt):
- return ZERO
-
- def __reduce__(self):
- return _UTC, ()
-
- def localize(self, dt, is_dst=False):
- '''Convert naive time to local time'''
- if dt.tzinfo is not None:
- raise ValueError, 'Not naive datetime (tzinfo is already set)'
- return dt.replace(tzinfo=self)
-
- def normalize(self, dt, is_dst=False):
- '''Correct the timezone information on the given datetime'''
- if dt.tzinfo is None:
- raise ValueError, 'Naive time - no tzinfo set'
- return dt.replace(tzinfo=self)
-
- def __repr__(self):
- return ""
-
- def __str__(self):
- return "UTC"
-
-
-UTC = utc = UTC() # UTC is a singleton
-
-
-def _UTC():
- """Factory function for utc unpickling.
-
- Makes sure that unpickling a utc instance always returns the same
- module global.
-
- These examples belong in the UTC class above, but it is obscured; or in
- the README.txt, but we are not depending on Python 2.4 so integrating
- the README.txt examples with the unit tests is not trivial.
-
- >>> import datetime, pickle
- >>> dt = datetime.datetime(2005, 3, 1, 14, 13, 21, tzinfo=utc)
- >>> naive = dt.replace(tzinfo=None)
- >>> p = pickle.dumps(dt, 1)
- >>> naive_p = pickle.dumps(naive, 1)
- >>> len(p), len(naive_p), len(p) - len(naive_p)
- (60, 43, 17)
- >>> new = pickle.loads(p)
- >>> new == dt
- True
- >>> new is dt
- False
- >>> new.tzinfo is dt.tzinfo
- True
- >>> utc is UTC is timezone('UTC')
- True
- >>> utc is timezone('GMT')
- False
- """
- return utc
-_UTC.__safe_for_unpickling__ = True
-
-
-def _p(*args):
- """Factory function for unpickling pytz tzinfo instances.
-
- Just a wrapper around tzinfo.unpickler to save a few bytes in each pickle
- by shortening the path.
- """
- return unpickler(*args)
-_p.__safe_for_unpickling__ = True
-
-_country_timezones_cache = {}
-
-def country_timezones(iso3166_code):
- """Return a list of timezones used in a particular country.
-
- iso3166_code is the two letter code used to identify the country.
-
- >>> country_timezones('ch')
- ['Europe/Zurich']
- >>> country_timezones('CH')
- ['Europe/Zurich']
- >>> country_timezones('XXX')
- Traceback (most recent call last):
- ...
- KeyError: 'XXX'
- """
- iso3166_code = iso3166_code.upper()
- if not _country_timezones_cache:
- try:
- from pkg_resources import resource_stream
- zone_tab = resource_stream(__name__, 'zone.tab')
- except ImportError:
- zone_tab = open(os.path.join(os.path.dirname(__file__), 'zone.tab'))
- for line in zone_tab:
- if line.startswith('#'):
- continue
- code, coordinates, zone = line.split(None, 4)[:3]
- try:
- _country_timezones_cache[code].append(zone)
- except KeyError:
- _country_timezones_cache[code] = [zone]
- return _country_timezones_cache[iso3166_code]
-
-# Time-zone info based solely on fixed offsets
-
-class _FixedOffset(datetime.tzinfo):
-
- zone = None # to match the standard pytz API
-
- def __init__(self, minutes):
- if abs(minutes) >= 1440:
- raise ValueError("absolute offset is too large", minutes)
- self._minutes = minutes
- self._offset = datetime.timedelta(minutes=minutes)
-
- def utcoffset(self, dt):
- return self._offset
-
- def __reduce__(self):
- return FixedOffset, (self._minutes, )
-
- def dst(self, dt):
- return None
-
- def tzname(self, dt):
- return None
-
- def __repr__(self):
- return 'pytz.FixedOffset(%d)' % self._minutes
-
- def localize(self, dt, is_dst=False):
- '''Convert naive time to local time'''
- if dt.tzinfo is not None:
- raise ValueError, 'Not naive datetime (tzinfo is already set)'
- return dt.replace(tzinfo=self)
-
- def normalize(self, dt, is_dst=False):
- '''Correct the timezone information on the given datetime'''
- if dt.tzinfo is None:
- raise ValueError, 'Naive time - no tzinfo set'
- return dt.replace(tzinfo=self)
-
-def FixedOffset(offset, _tzinfos = {}):
- """return a fixed-offset timezone based off a number of minutes.
-
- >>> one = FixedOffset(-330)
- >>> one
- pytz.FixedOffset(-330)
- >>> one.utcoffset(datetime.datetime.now())
- datetime.timedelta(-1, 66600)
-
- >>> two = FixedOffset(1380)
- >>> two
- pytz.FixedOffset(1380)
- >>> two.utcoffset(datetime.datetime.now())
- datetime.timedelta(0, 82800)
-
- The datetime.timedelta must be between the range of -1 and 1 day,
- non-inclusive.
-
- >>> FixedOffset(1440)
- Traceback (most recent call last):
- ...
- ValueError: ('absolute offset is too large', 1440)
-
- >>> FixedOffset(-1440)
- Traceback (most recent call last):
- ...
- ValueError: ('absolute offset is too large', -1440)
-
- An offset of 0 is special-cased to return UTC.
-
- >>> FixedOffset(0) is UTC
- True
-
- There should always be only one instance of a FixedOffset per timedelta.
- This should be true for multiple creation calls.
-
- >>> FixedOffset(-330) is one
- True
- >>> FixedOffset(1380) is two
- True
-
- It should also be true for pickling.
-
- >>> import pickle
- >>> pickle.loads(pickle.dumps(one)) is one
- True
- >>> pickle.loads(pickle.dumps(two)) is two
- True
-
- """
-
- if offset == 0:
- return UTC
-
- info = _tzinfos.get(offset)
- if info is None:
- # We haven't seen this one before. we need to save it.
-
- # Use setdefault to avoid a race condition and make sure we have
- # only one
- info = _tzinfos.setdefault(offset, _FixedOffset(offset))
-
- return info
-
-FixedOffset.__safe_for_unpickling__ = True
-
-def _test():
- import doctest, os, sys
- sys.path.insert(0, os.pardir)
- import pytz
- return doctest.testmod(pytz)
-
-if __name__ == '__main__':
- _test()
-
-common_timezones = \
-['Africa/Abidjan',
- 'Africa/Accra',
- 'Africa/Addis_Ababa',
- 'Africa/Algiers',
- 'Africa/Asmera',
- 'Africa/Bamako',
- 'Africa/Bangui',
- 'Africa/Banjul',
- 'Africa/Bissau',
- 'Africa/Blantyre',
- 'Africa/Brazzaville',
- 'Africa/Bujumbura',
- 'Africa/Cairo',
- 'Africa/Casablanca',
- 'Africa/Ceuta',
- 'Africa/Conakry',
- 'Africa/Dakar',
- 'Africa/Dar_es_Salaam',
- 'Africa/Djibouti',
- 'Africa/Douala',
- 'Africa/El_Aaiun',
- 'Africa/Freetown',
- 'Africa/Gaborone',
- 'Africa/Harare',
- 'Africa/Johannesburg',
- 'Africa/Kampala',
- 'Africa/Khartoum',
- 'Africa/Kigali',
- 'Africa/Kinshasa',
- 'Africa/Lagos',
- 'Africa/Libreville',
- 'Africa/Lome',
- 'Africa/Luanda',
- 'Africa/Lubumbashi',
- 'Africa/Lusaka',
- 'Africa/Malabo',
- 'Africa/Maputo',
- 'Africa/Maseru',
- 'Africa/Mbabane',
- 'Africa/Mogadishu',
- 'Africa/Monrovia',
- 'Africa/Nairobi',
- 'Africa/Ndjamena',
- 'Africa/Niamey',
- 'Africa/Nouakchott',
- 'Africa/Ouagadougou',
- 'Africa/Porto-Novo',
- 'Africa/Sao_Tome',
- 'Africa/Timbuktu',
- 'Africa/Tripoli',
- 'Africa/Tunis',
- 'Africa/Windhoek',
- 'America/Adak',
- 'America/Anchorage',
- 'America/Anguilla',
- 'America/Antigua',
- 'America/Araguaina',
- 'America/Aruba',
- 'America/Asuncion',
- 'America/Atikokan',
- 'America/Atka',
- 'America/Bahia',
- 'America/Barbados',
- 'America/Belem',
- 'America/Belize',
- 'America/Blanc-Sablon',
- 'America/Boa_Vista',
- 'America/Bogota',
- 'America/Boise',
- 'America/Buenos_Aires',
- 'America/Cambridge_Bay',
- 'America/Campo_Grande',
- 'America/Cancun',
- 'America/Caracas',
- 'America/Catamarca',
- 'America/Cayenne',
- 'America/Cayman',
- 'America/Chicago',
- 'America/Chihuahua',
- 'America/Coral_Harbour',
- 'America/Cordoba',
- 'America/Costa_Rica',
- 'America/Cuiaba',
- 'America/Curacao',
- 'America/Danmarkshavn',
- 'America/Dawson',
- 'America/Dawson_Creek',
- 'America/Denver',
- 'America/Detroit',
- 'America/Dominica',
- 'America/Edmonton',
- 'America/Eirunepe',
- 'America/El_Salvador',
- 'America/Ensenada',
- 'America/Fort_Wayne',
- 'America/Fortaleza',
- 'America/Glace_Bay',
- 'America/Godthab',
- 'America/Goose_Bay',
- 'America/Grand_Turk',
- 'America/Grenada',
- 'America/Guadeloupe',
- 'America/Guatemala',
- 'America/Guayaquil',
- 'America/Guyana',
- 'America/Halifax',
- 'America/Havana',
- 'America/Hermosillo',
- 'America/Indianapolis',
- 'America/Inuvik',
- 'America/Iqaluit',
- 'America/Jamaica',
- 'America/Jujuy',
- 'America/Juneau',
- 'America/Knox_IN',
- 'America/La_Paz',
- 'America/Lima',
- 'America/Los_Angeles',
- 'America/Louisville',
- 'America/Maceio',
- 'America/Managua',
- 'America/Manaus',
- 'America/Martinique',
- 'America/Mazatlan',
- 'America/Mendoza',
- 'America/Menominee',
- 'America/Merida',
- 'America/Mexico_City',
- 'America/Miquelon',
- 'America/Moncton',
- 'America/Monterrey',
- 'America/Montevideo',
- 'America/Montreal',
- 'America/Montserrat',
- 'America/Nassau',
- 'America/New_York',
- 'America/Nipigon',
- 'America/Nome',
- 'America/Noronha',
- 'America/Panama',
- 'America/Pangnirtung',
- 'America/Paramaribo',
- 'America/Phoenix',
- 'America/Port-au-Prince',
- 'America/Port_of_Spain',
- 'America/Porto_Acre',
- 'America/Porto_Velho',
- 'America/Puerto_Rico',
- 'America/Rainy_River',
- 'America/Rankin_Inlet',
- 'America/Recife',
- 'America/Regina',
- 'America/Rio_Branco',
- 'America/Rosario',
- 'America/Santiago',
- 'America/Santo_Domingo',
- 'America/Sao_Paulo',
- 'America/Scoresbysund',
- 'America/Shiprock',
- 'America/St_Johns',
- 'America/St_Kitts',
- 'America/St_Lucia',
- 'America/St_Thomas',
- 'America/St_Vincent',
- 'America/Swift_Current',
- 'America/Tegucigalpa',
- 'America/Thule',
- 'America/Thunder_Bay',
- 'America/Tijuana',
- 'America/Toronto',
- 'America/Tortola',
- 'America/Vancouver',
- 'America/Virgin',
- 'America/Whitehorse',
- 'America/Winnipeg',
- 'America/Yakutat',
- 'America/Yellowknife',
- 'Antarctica/Casey',
- 'Antarctica/Davis',
- 'Antarctica/DumontDUrville',
- 'Antarctica/Mawson',
- 'Antarctica/McMurdo',
- 'Antarctica/Palmer',
- 'Antarctica/Rothera',
- 'Antarctica/South_Pole',
- 'Antarctica/Syowa',
- 'Antarctica/Vostok',
- 'Arctic/Longyearbyen',
- 'Asia/Aden',
- 'Asia/Almaty',
- 'Asia/Amman',
- 'Asia/Anadyr',
- 'Asia/Aqtau',
- 'Asia/Aqtobe',
- 'Asia/Ashgabat',
- 'Asia/Ashkhabad',
- 'Asia/Baghdad',
- 'Asia/Bahrain',
- 'Asia/Baku',
- 'Asia/Bangkok',
- 'Asia/Beirut',
- 'Asia/Bishkek',
- 'Asia/Brunei',
- 'Asia/Calcutta',
- 'Asia/Choibalsan',
- 'Asia/Chongqing',
- 'Asia/Chungking',
- 'Asia/Colombo',
- 'Asia/Dacca',
- 'Asia/Damascus',
- 'Asia/Dhaka',
- 'Asia/Dili',
- 'Asia/Dubai',
- 'Asia/Dushanbe',
- 'Asia/Gaza',
- 'Asia/Harbin',
- 'Asia/Hong_Kong',
- 'Asia/Hovd',
- 'Asia/Irkutsk',
- 'Asia/Istanbul',
- 'Asia/Jakarta',
- 'Asia/Jayapura',
- 'Asia/Jerusalem',
- 'Asia/Kabul',
- 'Asia/Kamchatka',
- 'Asia/Karachi',
- 'Asia/Kashgar',
- 'Asia/Katmandu',
- 'Asia/Krasnoyarsk',
- 'Asia/Kuala_Lumpur',
- 'Asia/Kuching',
- 'Asia/Kuwait',
- 'Asia/Macao',
- 'Asia/Macau',
- 'Asia/Magadan',
- 'Asia/Makassar',
- 'Asia/Manila',
- 'Asia/Muscat',
- 'Asia/Nicosia',
- 'Asia/Novosibirsk',
- 'Asia/Omsk',
- 'Asia/Oral',
- 'Asia/Phnom_Penh',
- 'Asia/Pontianak',
- 'Asia/Pyongyang',
- 'Asia/Qatar',
- 'Asia/Qyzylorda',
- 'Asia/Rangoon',
- 'Asia/Riyadh',
- 'Asia/Saigon',
- 'Asia/Sakhalin',
- 'Asia/Samarkand',
- 'Asia/Seoul',
- 'Asia/Shanghai',
- 'Asia/Singapore',
- 'Asia/Taipei',
- 'Asia/Tashkent',
- 'Asia/Tbilisi',
- 'Asia/Tehran',
- 'Asia/Tel_Aviv',
- 'Asia/Thimbu',
- 'Asia/Thimphu',
- 'Asia/Tokyo',
- 'Asia/Ujung_Pandang',
- 'Asia/Ulaanbaatar',
- 'Asia/Ulan_Bator',
- 'Asia/Urumqi',
- 'Asia/Vientiane',
- 'Asia/Vladivostok',
- 'Asia/Yakutsk',
- 'Asia/Yekaterinburg',
- 'Asia/Yerevan',
- 'Atlantic/Azores',
- 'Atlantic/Bermuda',
- 'Atlantic/Canary',
- 'Atlantic/Cape_Verde',
- 'Atlantic/Faeroe',
- 'Atlantic/Jan_Mayen',
- 'Atlantic/Madeira',
- 'Atlantic/Reykjavik',
- 'Atlantic/South_Georgia',
- 'Atlantic/St_Helena',
- 'Atlantic/Stanley',
- 'Australia/ACT',
- 'Australia/Adelaide',
- 'Australia/Brisbane',
- 'Australia/Broken_Hill',
- 'Australia/Canberra',
- 'Australia/Currie',
- 'Australia/Darwin',
- 'Australia/Hobart',
- 'Australia/LHI',
- 'Australia/Lindeman',
- 'Australia/Lord_Howe',
- 'Australia/Melbourne',
- 'Australia/NSW',
- 'Australia/North',
- 'Australia/Perth',
- 'Australia/Queensland',
- 'Australia/South',
- 'Australia/Sydney',
- 'Australia/Tasmania',
- 'Australia/Victoria',
- 'Australia/West',
- 'Australia/Yancowinna',
- 'Brazil/Acre',
- 'Brazil/DeNoronha',
- 'Brazil/East',
- 'Brazil/West',
- 'Canada/Atlantic',
- 'Canada/Central',
- 'Canada/East-Saskatchewan',
- 'Canada/Eastern',
- 'Canada/Mountain',
- 'Canada/Newfoundland',
- 'Canada/Pacific',
- 'Canada/Saskatchewan',
- 'Canada/Yukon',
- 'Chile/Continental',
- 'Chile/EasterIsland',
- 'Europe/Amsterdam',
- 'Europe/Andorra',
- 'Europe/Athens',
- 'Europe/Belfast',
- 'Europe/Belgrade',
- 'Europe/Berlin',
- 'Europe/Bratislava',
- 'Europe/Brussels',
- 'Europe/Bucharest',
- 'Europe/Budapest',
- 'Europe/Chisinau',
- 'Europe/Copenhagen',
- 'Europe/Dublin',
- 'Europe/Gibraltar',
- 'Europe/Guernsey',
- 'Europe/Helsinki',
- 'Europe/Isle_of_Man',
- 'Europe/Istanbul',
- 'Europe/Jersey',
- 'Europe/Kaliningrad',
- 'Europe/Kiev',
- 'Europe/Lisbon',
- 'Europe/Ljubljana',
- 'Europe/London',
- 'Europe/Luxembourg',
- 'Europe/Madrid',
- 'Europe/Malta',
- 'Europe/Mariehamn',
- 'Europe/Minsk',
- 'Europe/Monaco',
- 'Europe/Moscow',
- 'Europe/Nicosia',
- 'Europe/Oslo',
- 'Europe/Paris',
- 'Europe/Podgorica',
- 'Europe/Prague',
- 'Europe/Riga',
- 'Europe/Rome',
- 'Europe/Samara',
- 'Europe/San_Marino',
- 'Europe/Sarajevo',
- 'Europe/Simferopol',
- 'Europe/Skopje',
- 'Europe/Sofia',
- 'Europe/Stockholm',
- 'Europe/Tallinn',
- 'Europe/Tirane',
- 'Europe/Tiraspol',
- 'Europe/Uzhgorod',
- 'Europe/Vaduz',
- 'Europe/Vatican',
- 'Europe/Vienna',
- 'Europe/Vilnius',
- 'Europe/Volgograd',
- 'Europe/Warsaw',
- 'Europe/Zagreb',
- 'Europe/Zaporozhye',
- 'Europe/Zurich',
- 'GMT',
- 'Indian/Antananarivo',
- 'Indian/Chagos',
- 'Indian/Christmas',
- 'Indian/Cocos',
- 'Indian/Comoro',
- 'Indian/Kerguelen',
- 'Indian/Mahe',
- 'Indian/Maldives',
- 'Indian/Mauritius',
- 'Indian/Mayotte',
- 'Indian/Reunion',
- 'Mexico/BajaNorte',
- 'Mexico/BajaSur',
- 'Mexico/General',
- 'Pacific/Apia',
- 'Pacific/Auckland',
- 'Pacific/Chatham',
- 'Pacific/Easter',
- 'Pacific/Efate',
- 'Pacific/Enderbury',
- 'Pacific/Fakaofo',
- 'Pacific/Fiji',
- 'Pacific/Funafuti',
- 'Pacific/Galapagos',
- 'Pacific/Gambier',
- 'Pacific/Guadalcanal',
- 'Pacific/Guam',
- 'Pacific/Honolulu',
- 'Pacific/Johnston',
- 'Pacific/Kiritimati',
- 'Pacific/Kosrae',
- 'Pacific/Kwajalein',
- 'Pacific/Majuro',
- 'Pacific/Marquesas',
- 'Pacific/Midway',
- 'Pacific/Nauru',
- 'Pacific/Niue',
- 'Pacific/Norfolk',
- 'Pacific/Noumea',
- 'Pacific/Pago_Pago',
- 'Pacific/Palau',
- 'Pacific/Pitcairn',
- 'Pacific/Ponape',
- 'Pacific/Port_Moresby',
- 'Pacific/Rarotonga',
- 'Pacific/Saipan',
- 'Pacific/Samoa',
- 'Pacific/Tahiti',
- 'Pacific/Tarawa',
- 'Pacific/Tongatapu',
- 'Pacific/Truk',
- 'Pacific/Wake',
- 'Pacific/Wallis',
- 'Pacific/Yap',
- 'US/Alaska',
- 'US/Aleutian',
- 'US/Arizona',
- 'US/Central',
- 'US/East-Indiana',
- 'US/Eastern',
- 'US/Hawaii',
- 'US/Indiana-Starke',
- 'US/Michigan',
- 'US/Mountain',
- 'US/Pacific',
- 'US/Pacific-New',
- 'US/Samoa',
- 'UTC']
-
-all_timezones = \
-['Africa/Abidjan',
- 'Africa/Accra',
- 'Africa/Addis_Ababa',
- 'Africa/Algiers',
- 'Africa/Asmera',
- 'Africa/Bamako',
- 'Africa/Bangui',
- 'Africa/Banjul',
- 'Africa/Bissau',
- 'Africa/Blantyre',
- 'Africa/Brazzaville',
- 'Africa/Bujumbura',
- 'Africa/Cairo',
- 'Africa/Casablanca',
- 'Africa/Ceuta',
- 'Africa/Conakry',
- 'Africa/Dakar',
- 'Africa/Dar_es_Salaam',
- 'Africa/Djibouti',
- 'Africa/Douala',
- 'Africa/El_Aaiun',
- 'Africa/Freetown',
- 'Africa/Gaborone',
- 'Africa/Harare',
- 'Africa/Johannesburg',
- 'Africa/Kampala',
- 'Africa/Khartoum',
- 'Africa/Kigali',
- 'Africa/Kinshasa',
- 'Africa/Lagos',
- 'Africa/Libreville',
- 'Africa/Lome',
- 'Africa/Luanda',
- 'Africa/Lubumbashi',
- 'Africa/Lusaka',
- 'Africa/Malabo',
- 'Africa/Maputo',
- 'Africa/Maseru',
- 'Africa/Mbabane',
- 'Africa/Mogadishu',
- 'Africa/Monrovia',
- 'Africa/Nairobi',
- 'Africa/Ndjamena',
- 'Africa/Niamey',
- 'Africa/Nouakchott',
- 'Africa/Ouagadougou',
- 'Africa/Porto-Novo',
- 'Africa/Sao_Tome',
- 'Africa/Timbuktu',
- 'Africa/Tripoli',
- 'Africa/Tunis',
- 'Africa/Windhoek',
- 'America/Adak',
- 'America/Anchorage',
- 'America/Anguilla',
- 'America/Antigua',
- 'America/Araguaina',
- 'America/Argentina/Buenos_Aires',
- 'America/Argentina/Catamarca',
- 'America/Argentina/ComodRivadavia',
- 'America/Argentina/Cordoba',
- 'America/Argentina/Jujuy',
- 'America/Argentina/La_Rioja',
- 'America/Argentina/Mendoza',
- 'America/Argentina/Rio_Gallegos',
- 'America/Argentina/San_Juan',
- 'America/Argentina/Tucuman',
- 'America/Argentina/Ushuaia',
- 'America/Aruba',
- 'America/Asuncion',
- 'America/Atikokan',
- 'America/Atka',
- 'America/Bahia',
- 'America/Barbados',
- 'America/Belem',
- 'America/Belize',
- 'America/Blanc-Sablon',
- 'America/Boa_Vista',
- 'America/Bogota',
- 'America/Boise',
- 'America/Buenos_Aires',
- 'America/Cambridge_Bay',
- 'America/Campo_Grande',
- 'America/Cancun',
- 'America/Caracas',
- 'America/Catamarca',
- 'America/Cayenne',
- 'America/Cayman',
- 'America/Chicago',
- 'America/Chihuahua',
- 'America/Coral_Harbour',
- 'America/Cordoba',
- 'America/Costa_Rica',
- 'America/Cuiaba',
- 'America/Curacao',
- 'America/Danmarkshavn',
- 'America/Dawson',
- 'America/Dawson_Creek',
- 'America/Denver',
- 'America/Detroit',
- 'America/Dominica',
- 'America/Edmonton',
- 'America/Eirunepe',
- 'America/El_Salvador',
- 'America/Ensenada',
- 'America/Fort_Wayne',
- 'America/Fortaleza',
- 'America/Glace_Bay',
- 'America/Godthab',
- 'America/Goose_Bay',
- 'America/Grand_Turk',
- 'America/Grenada',
- 'America/Guadeloupe',
- 'America/Guatemala',
- 'America/Guayaquil',
- 'America/Guyana',
- 'America/Halifax',
- 'America/Havana',
- 'America/Hermosillo',
- 'America/Indiana/Indianapolis',
- 'America/Indiana/Knox',
- 'America/Indiana/Marengo',
- 'America/Indiana/Petersburg',
- 'America/Indiana/Vevay',
- 'America/Indiana/Vincennes',
- 'America/Indianapolis',
- 'America/Inuvik',
- 'America/Iqaluit',
- 'America/Jamaica',
- 'America/Jujuy',
- 'America/Juneau',
- 'America/Kentucky/Louisville',
- 'America/Kentucky/Monticello',
- 'America/Knox_IN',
- 'America/La_Paz',
- 'America/Lima',
- 'America/Los_Angeles',
- 'America/Louisville',
- 'America/Maceio',
- 'America/Managua',
- 'America/Manaus',
- 'America/Martinique',
- 'America/Mazatlan',
- 'America/Mendoza',
- 'America/Menominee',
- 'America/Merida',
- 'America/Mexico_City',
- 'America/Miquelon',
- 'America/Moncton',
- 'America/Monterrey',
- 'America/Montevideo',
- 'America/Montreal',
- 'America/Montserrat',
- 'America/Nassau',
- 'America/New_York',
- 'America/Nipigon',
- 'America/Nome',
- 'America/Noronha',
- 'America/North_Dakota/Center',
- 'America/North_Dakota/New_Salem',
- 'America/Panama',
- 'America/Pangnirtung',
- 'America/Paramaribo',
- 'America/Phoenix',
- 'America/Port-au-Prince',
- 'America/Port_of_Spain',
- 'America/Porto_Acre',
- 'America/Porto_Velho',
- 'America/Puerto_Rico',
- 'America/Rainy_River',
- 'America/Rankin_Inlet',
- 'America/Recife',
- 'America/Regina',
- 'America/Rio_Branco',
- 'America/Rosario',
- 'America/Santiago',
- 'America/Santo_Domingo',
- 'America/Sao_Paulo',
- 'America/Scoresbysund',
- 'America/Shiprock',
- 'America/St_Johns',
- 'America/St_Kitts',
- 'America/St_Lucia',
- 'America/St_Thomas',
- 'America/St_Vincent',
- 'America/Swift_Current',
- 'America/Tegucigalpa',
- 'America/Thule',
- 'America/Thunder_Bay',
- 'America/Tijuana',
- 'America/Toronto',
- 'America/Tortola',
- 'America/Vancouver',
- 'America/Virgin',
- 'America/Whitehorse',
- 'America/Winnipeg',
- 'America/Yakutat',
- 'America/Yellowknife',
- 'Antarctica/Casey',
- 'Antarctica/Davis',
- 'Antarctica/DumontDUrville',
- 'Antarctica/Mawson',
- 'Antarctica/McMurdo',
- 'Antarctica/Palmer',
- 'Antarctica/Rothera',
- 'Antarctica/South_Pole',
- 'Antarctica/Syowa',
- 'Antarctica/Vostok',
- 'Arctic/Longyearbyen',
- 'Asia/Aden',
- 'Asia/Almaty',
- 'Asia/Amman',
- 'Asia/Anadyr',
- 'Asia/Aqtau',
- 'Asia/Aqtobe',
- 'Asia/Ashgabat',
- 'Asia/Ashkhabad',
- 'Asia/Baghdad',
- 'Asia/Bahrain',
- 'Asia/Baku',
- 'Asia/Bangkok',
- 'Asia/Beirut',
- 'Asia/Bishkek',
- 'Asia/Brunei',
- 'Asia/Calcutta',
- 'Asia/Choibalsan',
- 'Asia/Chongqing',
- 'Asia/Chungking',
- 'Asia/Colombo',
- 'Asia/Dacca',
- 'Asia/Damascus',
- 'Asia/Dhaka',
- 'Asia/Dili',
- 'Asia/Dubai',
- 'Asia/Dushanbe',
- 'Asia/Gaza',
- 'Asia/Harbin',
- 'Asia/Hong_Kong',
- 'Asia/Hovd',
- 'Asia/Irkutsk',
- 'Asia/Istanbul',
- 'Asia/Jakarta',
- 'Asia/Jayapura',
- 'Asia/Jerusalem',
- 'Asia/Kabul',
- 'Asia/Kamchatka',
- 'Asia/Karachi',
- 'Asia/Kashgar',
- 'Asia/Katmandu',
- 'Asia/Krasnoyarsk',
- 'Asia/Kuala_Lumpur',
- 'Asia/Kuching',
- 'Asia/Kuwait',
- 'Asia/Macao',
- 'Asia/Macau',
- 'Asia/Magadan',
- 'Asia/Makassar',
- 'Asia/Manila',
- 'Asia/Muscat',
- 'Asia/Nicosia',
- 'Asia/Novosibirsk',
- 'Asia/Omsk',
- 'Asia/Oral',
- 'Asia/Phnom_Penh',
- 'Asia/Pontianak',
- 'Asia/Pyongyang',
- 'Asia/Qatar',
- 'Asia/Qyzylorda',
- 'Asia/Rangoon',
- 'Asia/Riyadh',
- 'Asia/Saigon',
- 'Asia/Sakhalin',
- 'Asia/Samarkand',
- 'Asia/Seoul',
- 'Asia/Shanghai',
- 'Asia/Singapore',
- 'Asia/Taipei',
- 'Asia/Tashkent',
- 'Asia/Tbilisi',
- 'Asia/Tehran',
- 'Asia/Tel_Aviv',
- 'Asia/Thimbu',
- 'Asia/Thimphu',
- 'Asia/Tokyo',
- 'Asia/Ujung_Pandang',
- 'Asia/Ulaanbaatar',
- 'Asia/Ulan_Bator',
- 'Asia/Urumqi',
- 'Asia/Vientiane',
- 'Asia/Vladivostok',
- 'Asia/Yakutsk',
- 'Asia/Yekaterinburg',
- 'Asia/Yerevan',
- 'Atlantic/Azores',
- 'Atlantic/Bermuda',
- 'Atlantic/Canary',
- 'Atlantic/Cape_Verde',
- 'Atlantic/Faeroe',
- 'Atlantic/Jan_Mayen',
- 'Atlantic/Madeira',
- 'Atlantic/Reykjavik',
- 'Atlantic/South_Georgia',
- 'Atlantic/St_Helena',
- 'Atlantic/Stanley',
- 'Australia/ACT',
- 'Australia/Adelaide',
- 'Australia/Brisbane',
- 'Australia/Broken_Hill',
- 'Australia/Canberra',
- 'Australia/Currie',
- 'Australia/Darwin',
- 'Australia/Hobart',
- 'Australia/LHI',
- 'Australia/Lindeman',
- 'Australia/Lord_Howe',
- 'Australia/Melbourne',
- 'Australia/NSW',
- 'Australia/North',
- 'Australia/Perth',
- 'Australia/Queensland',
- 'Australia/South',
- 'Australia/Sydney',
- 'Australia/Tasmania',
- 'Australia/Victoria',
- 'Australia/West',
- 'Australia/Yancowinna',
- 'Brazil/Acre',
- 'Brazil/DeNoronha',
- 'Brazil/East',
- 'Brazil/West',
- 'CET',
- 'CST6CDT',
- 'Canada/Atlantic',
- 'Canada/Central',
- 'Canada/East-Saskatchewan',
- 'Canada/Eastern',
- 'Canada/Mountain',
- 'Canada/Newfoundland',
- 'Canada/Pacific',
- 'Canada/Saskatchewan',
- 'Canada/Yukon',
- 'Chile/Continental',
- 'Chile/EasterIsland',
- 'Cuba',
- 'EET',
- 'EST',
- 'EST5EDT',
- 'Egypt',
- 'Eire',
- 'Etc/GMT',
- 'Etc/GMT+0',
- 'Etc/GMT+1',
- 'Etc/GMT+10',
- 'Etc/GMT+11',
- 'Etc/GMT+12',
- 'Etc/GMT+2',
- 'Etc/GMT+3',
- 'Etc/GMT+4',
- 'Etc/GMT+5',
- 'Etc/GMT+6',
- 'Etc/GMT+7',
- 'Etc/GMT+8',
- 'Etc/GMT+9',
- 'Etc/GMT-0',
- 'Etc/GMT-1',
- 'Etc/GMT-10',
- 'Etc/GMT-11',
- 'Etc/GMT-12',
- 'Etc/GMT-13',
- 'Etc/GMT-14',
- 'Etc/GMT-2',
- 'Etc/GMT-3',
- 'Etc/GMT-4',
- 'Etc/GMT-5',
- 'Etc/GMT-6',
- 'Etc/GMT-7',
- 'Etc/GMT-8',
- 'Etc/GMT-9',
- 'Etc/GMT0',
- 'Etc/Greenwich',
- 'Etc/UCT',
- 'Etc/UTC',
- 'Etc/Universal',
- 'Etc/Zulu',
- 'Europe/Amsterdam',
- 'Europe/Andorra',
- 'Europe/Athens',
- 'Europe/Belfast',
- 'Europe/Belgrade',
- 'Europe/Berlin',
- 'Europe/Bratislava',
- 'Europe/Brussels',
- 'Europe/Bucharest',
- 'Europe/Budapest',
- 'Europe/Chisinau',
- 'Europe/Copenhagen',
- 'Europe/Dublin',
- 'Europe/Gibraltar',
- 'Europe/Guernsey',
- 'Europe/Helsinki',
- 'Europe/Isle_of_Man',
- 'Europe/Istanbul',
- 'Europe/Jersey',
- 'Europe/Kaliningrad',
- 'Europe/Kiev',
- 'Europe/Lisbon',
- 'Europe/Ljubljana',
- 'Europe/London',
- 'Europe/Luxembourg',
- 'Europe/Madrid',
- 'Europe/Malta',
- 'Europe/Mariehamn',
- 'Europe/Minsk',
- 'Europe/Monaco',
- 'Europe/Moscow',
- 'Europe/Nicosia',
- 'Europe/Oslo',
- 'Europe/Paris',
- 'Europe/Podgorica',
- 'Europe/Prague',
- 'Europe/Riga',
- 'Europe/Rome',
- 'Europe/Samara',
- 'Europe/San_Marino',
- 'Europe/Sarajevo',
- 'Europe/Simferopol',
- 'Europe/Skopje',
- 'Europe/Sofia',
- 'Europe/Stockholm',
- 'Europe/Tallinn',
- 'Europe/Tirane',
- 'Europe/Tiraspol',
- 'Europe/Uzhgorod',
- 'Europe/Vaduz',
- 'Europe/Vatican',
- 'Europe/Vienna',
- 'Europe/Vilnius',
- 'Europe/Volgograd',
- 'Europe/Warsaw',
- 'Europe/Zagreb',
- 'Europe/Zaporozhye',
- 'Europe/Zurich',
- 'GB',
- 'GB-Eire',
- 'GMT',
- 'GMT+0',
- 'GMT-0',
- 'GMT0',
- 'Greenwich',
- 'HST',
- 'Hongkong',
- 'Iceland',
- 'Indian/Antananarivo',
- 'Indian/Chagos',
- 'Indian/Christmas',
- 'Indian/Cocos',
- 'Indian/Comoro',
- 'Indian/Kerguelen',
- 'Indian/Mahe',
- 'Indian/Maldives',
- 'Indian/Mauritius',
- 'Indian/Mayotte',
- 'Indian/Reunion',
- 'Iran',
- 'Israel',
- 'Jamaica',
- 'Japan',
- 'Kwajalein',
- 'Libya',
- 'MET',
- 'MST',
- 'MST7MDT',
- 'Mexico/BajaNorte',
- 'Mexico/BajaSur',
- 'Mexico/General',
- 'NZ',
- 'NZ-CHAT',
- 'Navajo',
- 'PRC',
- 'PST8PDT',
- 'Pacific/Apia',
- 'Pacific/Auckland',
- 'Pacific/Chatham',
- 'Pacific/Easter',
- 'Pacific/Efate',
- 'Pacific/Enderbury',
- 'Pacific/Fakaofo',
- 'Pacific/Fiji',
- 'Pacific/Funafuti',
- 'Pacific/Galapagos',
- 'Pacific/Gambier',
- 'Pacific/Guadalcanal',
- 'Pacific/Guam',
- 'Pacific/Honolulu',
- 'Pacific/Johnston',
- 'Pacific/Kiritimati',
- 'Pacific/Kosrae',
- 'Pacific/Kwajalein',
- 'Pacific/Majuro',
- 'Pacific/Marquesas',
- 'Pacific/Midway',
- 'Pacific/Nauru',
- 'Pacific/Niue',
- 'Pacific/Norfolk',
- 'Pacific/Noumea',
- 'Pacific/Pago_Pago',
- 'Pacific/Palau',
- 'Pacific/Pitcairn',
- 'Pacific/Ponape',
- 'Pacific/Port_Moresby',
- 'Pacific/Rarotonga',
- 'Pacific/Saipan',
- 'Pacific/Samoa',
- 'Pacific/Tahiti',
- 'Pacific/Tarawa',
- 'Pacific/Tongatapu',
- 'Pacific/Truk',
- 'Pacific/Wake',
- 'Pacific/Wallis',
- 'Pacific/Yap',
- 'Poland',
- 'Portugal',
- 'ROC',
- 'ROK',
- 'Singapore',
- 'Turkey',
- 'UCT',
- 'US/Alaska',
- 'US/Aleutian',
- 'US/Arizona',
- 'US/Central',
- 'US/East-Indiana',
- 'US/Eastern',
- 'US/Hawaii',
- 'US/Indiana-Starke',
- 'US/Michigan',
- 'US/Mountain',
- 'US/Pacific',
- 'US/Pacific-New',
- 'US/Samoa',
- 'UTC',
- 'Universal',
- 'W-SU',
- 'WET',
- 'Zulu',
- 'posixrules']
diff --git a/vendor/pytz/locales/pytz.pot b/vendor/pytz/locales/pytz.pot
deleted file mode 100644
index fc06204a..00000000
--- a/vendor/pytz/locales/pytz.pot
+++ /dev/null
@@ -1,1645 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: pytz 2006p\n"
-"POT-Creation-Date: 2006-12-08 05:03+UTC\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-
-
-msgid "Africa/Abidjan"
-msgstr ""
-
-msgid "Africa/Accra"
-msgstr ""
-
-msgid "Africa/Addis_Ababa"
-msgstr ""
-
-msgid "Africa/Algiers"
-msgstr ""
-
-msgid "Africa/Asmera"
-msgstr ""
-
-msgid "Africa/Bamako"
-msgstr ""
-
-msgid "Africa/Bangui"
-msgstr ""
-
-msgid "Africa/Banjul"
-msgstr ""
-
-msgid "Africa/Bissau"
-msgstr ""
-
-msgid "Africa/Blantyre"
-msgstr ""
-
-msgid "Africa/Brazzaville"
-msgstr ""
-
-msgid "Africa/Bujumbura"
-msgstr ""
-
-msgid "Africa/Cairo"
-msgstr ""
-
-msgid "Africa/Casablanca"
-msgstr ""
-
-msgid "Africa/Ceuta"
-msgstr ""
-
-msgid "Africa/Conakry"
-msgstr ""
-
-msgid "Africa/Dakar"
-msgstr ""
-
-msgid "Africa/Dar_es_Salaam"
-msgstr ""
-
-msgid "Africa/Djibouti"
-msgstr ""
-
-msgid "Africa/Douala"
-msgstr ""
-
-msgid "Africa/El_Aaiun"
-msgstr ""
-
-msgid "Africa/Freetown"
-msgstr ""
-
-msgid "Africa/Gaborone"
-msgstr ""
-
-msgid "Africa/Harare"
-msgstr ""
-
-msgid "Africa/Johannesburg"
-msgstr ""
-
-msgid "Africa/Kampala"
-msgstr ""
-
-msgid "Africa/Khartoum"
-msgstr ""
-
-msgid "Africa/Kigali"
-msgstr ""
-
-msgid "Africa/Kinshasa"
-msgstr ""
-
-msgid "Africa/Lagos"
-msgstr ""
-
-msgid "Africa/Libreville"
-msgstr ""
-
-msgid "Africa/Lome"
-msgstr ""
-
-msgid "Africa/Luanda"
-msgstr ""
-
-msgid "Africa/Lubumbashi"
-msgstr ""
-
-msgid "Africa/Lusaka"
-msgstr ""
-
-msgid "Africa/Malabo"
-msgstr ""
-
-msgid "Africa/Maputo"
-msgstr ""
-
-msgid "Africa/Maseru"
-msgstr ""
-
-msgid "Africa/Mbabane"
-msgstr ""
-
-msgid "Africa/Mogadishu"
-msgstr ""
-
-msgid "Africa/Monrovia"
-msgstr ""
-
-msgid "Africa/Nairobi"
-msgstr ""
-
-msgid "Africa/Ndjamena"
-msgstr ""
-
-msgid "Africa/Niamey"
-msgstr ""
-
-msgid "Africa/Nouakchott"
-msgstr ""
-
-msgid "Africa/Ouagadougou"
-msgstr ""
-
-msgid "Africa/Porto-Novo"
-msgstr ""
-
-msgid "Africa/Sao_Tome"
-msgstr ""
-
-msgid "Africa/Timbuktu"
-msgstr ""
-
-msgid "Africa/Tripoli"
-msgstr ""
-
-msgid "Africa/Tunis"
-msgstr ""
-
-msgid "Africa/Windhoek"
-msgstr ""
-
-msgid "America/Adak"
-msgstr ""
-
-msgid "America/Anchorage"
-msgstr ""
-
-msgid "America/Anguilla"
-msgstr ""
-
-msgid "America/Antigua"
-msgstr ""
-
-msgid "America/Araguaina"
-msgstr ""
-
-msgid "America/Argentina/Buenos_Aires"
-msgstr ""
-
-msgid "America/Argentina/Catamarca"
-msgstr ""
-
-msgid "America/Argentina/ComodRivadavia"
-msgstr ""
-
-msgid "America/Argentina/Cordoba"
-msgstr ""
-
-msgid "America/Argentina/Jujuy"
-msgstr ""
-
-msgid "America/Argentina/La_Rioja"
-msgstr ""
-
-msgid "America/Argentina/Mendoza"
-msgstr ""
-
-msgid "America/Argentina/Rio_Gallegos"
-msgstr ""
-
-msgid "America/Argentina/San_Juan"
-msgstr ""
-
-msgid "America/Argentina/Tucuman"
-msgstr ""
-
-msgid "America/Argentina/Ushuaia"
-msgstr ""
-
-msgid "America/Aruba"
-msgstr ""
-
-msgid "America/Asuncion"
-msgstr ""
-
-msgid "America/Atikokan"
-msgstr ""
-
-msgid "America/Atka"
-msgstr ""
-
-msgid "America/Bahia"
-msgstr ""
-
-msgid "America/Barbados"
-msgstr ""
-
-msgid "America/Belem"
-msgstr ""
-
-msgid "America/Belize"
-msgstr ""
-
-msgid "America/Blanc-Sablon"
-msgstr ""
-
-msgid "America/Boa_Vista"
-msgstr ""
-
-msgid "America/Bogota"
-msgstr ""
-
-msgid "America/Boise"
-msgstr ""
-
-msgid "America/Buenos_Aires"
-msgstr ""
-
-msgid "America/Cambridge_Bay"
-msgstr ""
-
-msgid "America/Campo_Grande"
-msgstr ""
-
-msgid "America/Cancun"
-msgstr ""
-
-msgid "America/Caracas"
-msgstr ""
-
-msgid "America/Catamarca"
-msgstr ""
-
-msgid "America/Cayenne"
-msgstr ""
-
-msgid "America/Cayman"
-msgstr ""
-
-msgid "America/Chicago"
-msgstr ""
-
-msgid "America/Chihuahua"
-msgstr ""
-
-msgid "America/Coral_Harbour"
-msgstr ""
-
-msgid "America/Cordoba"
-msgstr ""
-
-msgid "America/Costa_Rica"
-msgstr ""
-
-msgid "America/Cuiaba"
-msgstr ""
-
-msgid "America/Curacao"
-msgstr ""
-
-msgid "America/Danmarkshavn"
-msgstr ""
-
-msgid "America/Dawson"
-msgstr ""
-
-msgid "America/Dawson_Creek"
-msgstr ""
-
-msgid "America/Denver"
-msgstr ""
-
-msgid "America/Detroit"
-msgstr ""
-
-msgid "America/Dominica"
-msgstr ""
-
-msgid "America/Edmonton"
-msgstr ""
-
-msgid "America/Eirunepe"
-msgstr ""
-
-msgid "America/El_Salvador"
-msgstr ""
-
-msgid "America/Ensenada"
-msgstr ""
-
-msgid "America/Fort_Wayne"
-msgstr ""
-
-msgid "America/Fortaleza"
-msgstr ""
-
-msgid "America/Glace_Bay"
-msgstr ""
-
-msgid "America/Godthab"
-msgstr ""
-
-msgid "America/Goose_Bay"
-msgstr ""
-
-msgid "America/Grand_Turk"
-msgstr ""
-
-msgid "America/Grenada"
-msgstr ""
-
-msgid "America/Guadeloupe"
-msgstr ""
-
-msgid "America/Guatemala"
-msgstr ""
-
-msgid "America/Guayaquil"
-msgstr ""
-
-msgid "America/Guyana"
-msgstr ""
-
-msgid "America/Halifax"
-msgstr ""
-
-msgid "America/Havana"
-msgstr ""
-
-msgid "America/Hermosillo"
-msgstr ""
-
-msgid "America/Indiana/Indianapolis"
-msgstr ""
-
-msgid "America/Indiana/Knox"
-msgstr ""
-
-msgid "America/Indiana/Marengo"
-msgstr ""
-
-msgid "America/Indiana/Petersburg"
-msgstr ""
-
-msgid "America/Indiana/Vevay"
-msgstr ""
-
-msgid "America/Indiana/Vincennes"
-msgstr ""
-
-msgid "America/Indianapolis"
-msgstr ""
-
-msgid "America/Inuvik"
-msgstr ""
-
-msgid "America/Iqaluit"
-msgstr ""
-
-msgid "America/Jamaica"
-msgstr ""
-
-msgid "America/Jujuy"
-msgstr ""
-
-msgid "America/Juneau"
-msgstr ""
-
-msgid "America/Kentucky/Louisville"
-msgstr ""
-
-msgid "America/Kentucky/Monticello"
-msgstr ""
-
-msgid "America/Knox_IN"
-msgstr ""
-
-msgid "America/La_Paz"
-msgstr ""
-
-msgid "America/Lima"
-msgstr ""
-
-msgid "America/Los_Angeles"
-msgstr ""
-
-msgid "America/Louisville"
-msgstr ""
-
-msgid "America/Maceio"
-msgstr ""
-
-msgid "America/Managua"
-msgstr ""
-
-msgid "America/Manaus"
-msgstr ""
-
-msgid "America/Martinique"
-msgstr ""
-
-msgid "America/Mazatlan"
-msgstr ""
-
-msgid "America/Mendoza"
-msgstr ""
-
-msgid "America/Menominee"
-msgstr ""
-
-msgid "America/Merida"
-msgstr ""
-
-msgid "America/Mexico_City"
-msgstr ""
-
-msgid "America/Miquelon"
-msgstr ""
-
-msgid "America/Moncton"
-msgstr ""
-
-msgid "America/Monterrey"
-msgstr ""
-
-msgid "America/Montevideo"
-msgstr ""
-
-msgid "America/Montreal"
-msgstr ""
-
-msgid "America/Montserrat"
-msgstr ""
-
-msgid "America/Nassau"
-msgstr ""
-
-msgid "America/New_York"
-msgstr ""
-
-msgid "America/Nipigon"
-msgstr ""
-
-msgid "America/Nome"
-msgstr ""
-
-msgid "America/Noronha"
-msgstr ""
-
-msgid "America/North_Dakota/Center"
-msgstr ""
-
-msgid "America/North_Dakota/New_Salem"
-msgstr ""
-
-msgid "America/Panama"
-msgstr ""
-
-msgid "America/Pangnirtung"
-msgstr ""
-
-msgid "America/Paramaribo"
-msgstr ""
-
-msgid "America/Phoenix"
-msgstr ""
-
-msgid "America/Port-au-Prince"
-msgstr ""
-
-msgid "America/Port_of_Spain"
-msgstr ""
-
-msgid "America/Porto_Acre"
-msgstr ""
-
-msgid "America/Porto_Velho"
-msgstr ""
-
-msgid "America/Puerto_Rico"
-msgstr ""
-
-msgid "America/Rainy_River"
-msgstr ""
-
-msgid "America/Rankin_Inlet"
-msgstr ""
-
-msgid "America/Recife"
-msgstr ""
-
-msgid "America/Regina"
-msgstr ""
-
-msgid "America/Rio_Branco"
-msgstr ""
-
-msgid "America/Rosario"
-msgstr ""
-
-msgid "America/Santiago"
-msgstr ""
-
-msgid "America/Santo_Domingo"
-msgstr ""
-
-msgid "America/Sao_Paulo"
-msgstr ""
-
-msgid "America/Scoresbysund"
-msgstr ""
-
-msgid "America/Shiprock"
-msgstr ""
-
-msgid "America/St_Johns"
-msgstr ""
-
-msgid "America/St_Kitts"
-msgstr ""
-
-msgid "America/St_Lucia"
-msgstr ""
-
-msgid "America/St_Thomas"
-msgstr ""
-
-msgid "America/St_Vincent"
-msgstr ""
-
-msgid "America/Swift_Current"
-msgstr ""
-
-msgid "America/Tegucigalpa"
-msgstr ""
-
-msgid "America/Thule"
-msgstr ""
-
-msgid "America/Thunder_Bay"
-msgstr ""
-
-msgid "America/Tijuana"
-msgstr ""
-
-msgid "America/Toronto"
-msgstr ""
-
-msgid "America/Tortola"
-msgstr ""
-
-msgid "America/Vancouver"
-msgstr ""
-
-msgid "America/Virgin"
-msgstr ""
-
-msgid "America/Whitehorse"
-msgstr ""
-
-msgid "America/Winnipeg"
-msgstr ""
-
-msgid "America/Yakutat"
-msgstr ""
-
-msgid "America/Yellowknife"
-msgstr ""
-
-msgid "Antarctica/Casey"
-msgstr ""
-
-msgid "Antarctica/Davis"
-msgstr ""
-
-msgid "Antarctica/DumontDUrville"
-msgstr ""
-
-msgid "Antarctica/Mawson"
-msgstr ""
-
-msgid "Antarctica/McMurdo"
-msgstr ""
-
-msgid "Antarctica/Palmer"
-msgstr ""
-
-msgid "Antarctica/Rothera"
-msgstr ""
-
-msgid "Antarctica/South_Pole"
-msgstr ""
-
-msgid "Antarctica/Syowa"
-msgstr ""
-
-msgid "Antarctica/Vostok"
-msgstr ""
-
-msgid "Arctic/Longyearbyen"
-msgstr ""
-
-msgid "Asia/Aden"
-msgstr ""
-
-msgid "Asia/Almaty"
-msgstr ""
-
-msgid "Asia/Amman"
-msgstr ""
-
-msgid "Asia/Anadyr"
-msgstr ""
-
-msgid "Asia/Aqtau"
-msgstr ""
-
-msgid "Asia/Aqtobe"
-msgstr ""
-
-msgid "Asia/Ashgabat"
-msgstr ""
-
-msgid "Asia/Ashkhabad"
-msgstr ""
-
-msgid "Asia/Baghdad"
-msgstr ""
-
-msgid "Asia/Bahrain"
-msgstr ""
-
-msgid "Asia/Baku"
-msgstr ""
-
-msgid "Asia/Bangkok"
-msgstr ""
-
-msgid "Asia/Beirut"
-msgstr ""
-
-msgid "Asia/Bishkek"
-msgstr ""
-
-msgid "Asia/Brunei"
-msgstr ""
-
-msgid "Asia/Calcutta"
-msgstr ""
-
-msgid "Asia/Choibalsan"
-msgstr ""
-
-msgid "Asia/Chongqing"
-msgstr ""
-
-msgid "Asia/Chungking"
-msgstr ""
-
-msgid "Asia/Colombo"
-msgstr ""
-
-msgid "Asia/Dacca"
-msgstr ""
-
-msgid "Asia/Damascus"
-msgstr ""
-
-msgid "Asia/Dhaka"
-msgstr ""
-
-msgid "Asia/Dili"
-msgstr ""
-
-msgid "Asia/Dubai"
-msgstr ""
-
-msgid "Asia/Dushanbe"
-msgstr ""
-
-msgid "Asia/Gaza"
-msgstr ""
-
-msgid "Asia/Harbin"
-msgstr ""
-
-msgid "Asia/Hong_Kong"
-msgstr ""
-
-msgid "Asia/Hovd"
-msgstr ""
-
-msgid "Asia/Irkutsk"
-msgstr ""
-
-msgid "Asia/Istanbul"
-msgstr ""
-
-msgid "Asia/Jakarta"
-msgstr ""
-
-msgid "Asia/Jayapura"
-msgstr ""
-
-msgid "Asia/Jerusalem"
-msgstr ""
-
-msgid "Asia/Kabul"
-msgstr ""
-
-msgid "Asia/Kamchatka"
-msgstr ""
-
-msgid "Asia/Karachi"
-msgstr ""
-
-msgid "Asia/Kashgar"
-msgstr ""
-
-msgid "Asia/Katmandu"
-msgstr ""
-
-msgid "Asia/Krasnoyarsk"
-msgstr ""
-
-msgid "Asia/Kuala_Lumpur"
-msgstr ""
-
-msgid "Asia/Kuching"
-msgstr ""
-
-msgid "Asia/Kuwait"
-msgstr ""
-
-msgid "Asia/Macao"
-msgstr ""
-
-msgid "Asia/Macau"
-msgstr ""
-
-msgid "Asia/Magadan"
-msgstr ""
-
-msgid "Asia/Makassar"
-msgstr ""
-
-msgid "Asia/Manila"
-msgstr ""
-
-msgid "Asia/Muscat"
-msgstr ""
-
-msgid "Asia/Nicosia"
-msgstr ""
-
-msgid "Asia/Novosibirsk"
-msgstr ""
-
-msgid "Asia/Omsk"
-msgstr ""
-
-msgid "Asia/Oral"
-msgstr ""
-
-msgid "Asia/Phnom_Penh"
-msgstr ""
-
-msgid "Asia/Pontianak"
-msgstr ""
-
-msgid "Asia/Pyongyang"
-msgstr ""
-
-msgid "Asia/Qatar"
-msgstr ""
-
-msgid "Asia/Qyzylorda"
-msgstr ""
-
-msgid "Asia/Rangoon"
-msgstr ""
-
-msgid "Asia/Riyadh"
-msgstr ""
-
-msgid "Asia/Saigon"
-msgstr ""
-
-msgid "Asia/Sakhalin"
-msgstr ""
-
-msgid "Asia/Samarkand"
-msgstr ""
-
-msgid "Asia/Seoul"
-msgstr ""
-
-msgid "Asia/Shanghai"
-msgstr ""
-
-msgid "Asia/Singapore"
-msgstr ""
-
-msgid "Asia/Taipei"
-msgstr ""
-
-msgid "Asia/Tashkent"
-msgstr ""
-
-msgid "Asia/Tbilisi"
-msgstr ""
-
-msgid "Asia/Tehran"
-msgstr ""
-
-msgid "Asia/Tel_Aviv"
-msgstr ""
-
-msgid "Asia/Thimbu"
-msgstr ""
-
-msgid "Asia/Thimphu"
-msgstr ""
-
-msgid "Asia/Tokyo"
-msgstr ""
-
-msgid "Asia/Ujung_Pandang"
-msgstr ""
-
-msgid "Asia/Ulaanbaatar"
-msgstr ""
-
-msgid "Asia/Ulan_Bator"
-msgstr ""
-
-msgid "Asia/Urumqi"
-msgstr ""
-
-msgid "Asia/Vientiane"
-msgstr ""
-
-msgid "Asia/Vladivostok"
-msgstr ""
-
-msgid "Asia/Yakutsk"
-msgstr ""
-
-msgid "Asia/Yekaterinburg"
-msgstr ""
-
-msgid "Asia/Yerevan"
-msgstr ""
-
-msgid "Atlantic/Azores"
-msgstr ""
-
-msgid "Atlantic/Bermuda"
-msgstr ""
-
-msgid "Atlantic/Canary"
-msgstr ""
-
-msgid "Atlantic/Cape_Verde"
-msgstr ""
-
-msgid "Atlantic/Faeroe"
-msgstr ""
-
-msgid "Atlantic/Jan_Mayen"
-msgstr ""
-
-msgid "Atlantic/Madeira"
-msgstr ""
-
-msgid "Atlantic/Reykjavik"
-msgstr ""
-
-msgid "Atlantic/South_Georgia"
-msgstr ""
-
-msgid "Atlantic/St_Helena"
-msgstr ""
-
-msgid "Atlantic/Stanley"
-msgstr ""
-
-msgid "Australia/ACT"
-msgstr ""
-
-msgid "Australia/Adelaide"
-msgstr ""
-
-msgid "Australia/Brisbane"
-msgstr ""
-
-msgid "Australia/Broken_Hill"
-msgstr ""
-
-msgid "Australia/Canberra"
-msgstr ""
-
-msgid "Australia/Currie"
-msgstr ""
-
-msgid "Australia/Darwin"
-msgstr ""
-
-msgid "Australia/Hobart"
-msgstr ""
-
-msgid "Australia/LHI"
-msgstr ""
-
-msgid "Australia/Lindeman"
-msgstr ""
-
-msgid "Australia/Lord_Howe"
-msgstr ""
-
-msgid "Australia/Melbourne"
-msgstr ""
-
-msgid "Australia/NSW"
-msgstr ""
-
-msgid "Australia/North"
-msgstr ""
-
-msgid "Australia/Perth"
-msgstr ""
-
-msgid "Australia/Queensland"
-msgstr ""
-
-msgid "Australia/South"
-msgstr ""
-
-msgid "Australia/Sydney"
-msgstr ""
-
-msgid "Australia/Tasmania"
-msgstr ""
-
-msgid "Australia/Victoria"
-msgstr ""
-
-msgid "Australia/West"
-msgstr ""
-
-msgid "Australia/Yancowinna"
-msgstr ""
-
-msgid "Brazil/Acre"
-msgstr ""
-
-msgid "Brazil/DeNoronha"
-msgstr ""
-
-msgid "Brazil/East"
-msgstr ""
-
-msgid "Brazil/West"
-msgstr ""
-
-msgid "CET"
-msgstr ""
-
-msgid "CST6CDT"
-msgstr ""
-
-msgid "Canada/Atlantic"
-msgstr ""
-
-msgid "Canada/Central"
-msgstr ""
-
-msgid "Canada/East-Saskatchewan"
-msgstr ""
-
-msgid "Canada/Eastern"
-msgstr ""
-
-msgid "Canada/Mountain"
-msgstr ""
-
-msgid "Canada/Newfoundland"
-msgstr ""
-
-msgid "Canada/Pacific"
-msgstr ""
-
-msgid "Canada/Saskatchewan"
-msgstr ""
-
-msgid "Canada/Yukon"
-msgstr ""
-
-msgid "Chile/Continental"
-msgstr ""
-
-msgid "Chile/EasterIsland"
-msgstr ""
-
-msgid "Cuba"
-msgstr ""
-
-msgid "EET"
-msgstr ""
-
-msgid "EST"
-msgstr ""
-
-msgid "EST5EDT"
-msgstr ""
-
-msgid "Egypt"
-msgstr ""
-
-msgid "Eire"
-msgstr ""
-
-msgid "Etc/GMT"
-msgstr ""
-
-msgid "Etc/GMT+0"
-msgstr ""
-
-msgid "Etc/GMT+1"
-msgstr ""
-
-msgid "Etc/GMT+10"
-msgstr ""
-
-msgid "Etc/GMT+11"
-msgstr ""
-
-msgid "Etc/GMT+12"
-msgstr ""
-
-msgid "Etc/GMT+2"
-msgstr ""
-
-msgid "Etc/GMT+3"
-msgstr ""
-
-msgid "Etc/GMT+4"
-msgstr ""
-
-msgid "Etc/GMT+5"
-msgstr ""
-
-msgid "Etc/GMT+6"
-msgstr ""
-
-msgid "Etc/GMT+7"
-msgstr ""
-
-msgid "Etc/GMT+8"
-msgstr ""
-
-msgid "Etc/GMT+9"
-msgstr ""
-
-msgid "Etc/GMT-0"
-msgstr ""
-
-msgid "Etc/GMT-1"
-msgstr ""
-
-msgid "Etc/GMT-10"
-msgstr ""
-
-msgid "Etc/GMT-11"
-msgstr ""
-
-msgid "Etc/GMT-12"
-msgstr ""
-
-msgid "Etc/GMT-13"
-msgstr ""
-
-msgid "Etc/GMT-14"
-msgstr ""
-
-msgid "Etc/GMT-2"
-msgstr ""
-
-msgid "Etc/GMT-3"
-msgstr ""
-
-msgid "Etc/GMT-4"
-msgstr ""
-
-msgid "Etc/GMT-5"
-msgstr ""
-
-msgid "Etc/GMT-6"
-msgstr ""
-
-msgid "Etc/GMT-7"
-msgstr ""
-
-msgid "Etc/GMT-8"
-msgstr ""
-
-msgid "Etc/GMT-9"
-msgstr ""
-
-msgid "Etc/GMT0"
-msgstr ""
-
-msgid "Etc/Greenwich"
-msgstr ""
-
-msgid "Etc/UCT"
-msgstr ""
-
-msgid "Etc/UTC"
-msgstr ""
-
-msgid "Etc/Universal"
-msgstr ""
-
-msgid "Etc/Zulu"
-msgstr ""
-
-msgid "Europe/Amsterdam"
-msgstr ""
-
-msgid "Europe/Andorra"
-msgstr ""
-
-msgid "Europe/Athens"
-msgstr ""
-
-msgid "Europe/Belfast"
-msgstr ""
-
-msgid "Europe/Belgrade"
-msgstr ""
-
-msgid "Europe/Berlin"
-msgstr ""
-
-msgid "Europe/Bratislava"
-msgstr ""
-
-msgid "Europe/Brussels"
-msgstr ""
-
-msgid "Europe/Bucharest"
-msgstr ""
-
-msgid "Europe/Budapest"
-msgstr ""
-
-msgid "Europe/Chisinau"
-msgstr ""
-
-msgid "Europe/Copenhagen"
-msgstr ""
-
-msgid "Europe/Dublin"
-msgstr ""
-
-msgid "Europe/Gibraltar"
-msgstr ""
-
-msgid "Europe/Guernsey"
-msgstr ""
-
-msgid "Europe/Helsinki"
-msgstr ""
-
-msgid "Europe/Isle_of_Man"
-msgstr ""
-
-msgid "Europe/Istanbul"
-msgstr ""
-
-msgid "Europe/Jersey"
-msgstr ""
-
-msgid "Europe/Kaliningrad"
-msgstr ""
-
-msgid "Europe/Kiev"
-msgstr ""
-
-msgid "Europe/Lisbon"
-msgstr ""
-
-msgid "Europe/Ljubljana"
-msgstr ""
-
-msgid "Europe/London"
-msgstr ""
-
-msgid "Europe/Luxembourg"
-msgstr ""
-
-msgid "Europe/Madrid"
-msgstr ""
-
-msgid "Europe/Malta"
-msgstr ""
-
-msgid "Europe/Mariehamn"
-msgstr ""
-
-msgid "Europe/Minsk"
-msgstr ""
-
-msgid "Europe/Monaco"
-msgstr ""
-
-msgid "Europe/Moscow"
-msgstr ""
-
-msgid "Europe/Nicosia"
-msgstr ""
-
-msgid "Europe/Oslo"
-msgstr ""
-
-msgid "Europe/Paris"
-msgstr ""
-
-msgid "Europe/Podgorica"
-msgstr ""
-
-msgid "Europe/Prague"
-msgstr ""
-
-msgid "Europe/Riga"
-msgstr ""
-
-msgid "Europe/Rome"
-msgstr ""
-
-msgid "Europe/Samara"
-msgstr ""
-
-msgid "Europe/San_Marino"
-msgstr ""
-
-msgid "Europe/Sarajevo"
-msgstr ""
-
-msgid "Europe/Simferopol"
-msgstr ""
-
-msgid "Europe/Skopje"
-msgstr ""
-
-msgid "Europe/Sofia"
-msgstr ""
-
-msgid "Europe/Stockholm"
-msgstr ""
-
-msgid "Europe/Tallinn"
-msgstr ""
-
-msgid "Europe/Tirane"
-msgstr ""
-
-msgid "Europe/Tiraspol"
-msgstr ""
-
-msgid "Europe/Uzhgorod"
-msgstr ""
-
-msgid "Europe/Vaduz"
-msgstr ""
-
-msgid "Europe/Vatican"
-msgstr ""
-
-msgid "Europe/Vienna"
-msgstr ""
-
-msgid "Europe/Vilnius"
-msgstr ""
-
-msgid "Europe/Volgograd"
-msgstr ""
-
-msgid "Europe/Warsaw"
-msgstr ""
-
-msgid "Europe/Zagreb"
-msgstr ""
-
-msgid "Europe/Zaporozhye"
-msgstr ""
-
-msgid "Europe/Zurich"
-msgstr ""
-
-msgid "GB"
-msgstr ""
-
-msgid "GB-Eire"
-msgstr ""
-
-msgid "GMT"
-msgstr ""
-
-msgid "GMT+0"
-msgstr ""
-
-msgid "GMT-0"
-msgstr ""
-
-msgid "GMT0"
-msgstr ""
-
-msgid "Greenwich"
-msgstr ""
-
-msgid "HST"
-msgstr ""
-
-msgid "Hongkong"
-msgstr ""
-
-msgid "Iceland"
-msgstr ""
-
-msgid "Indian/Antananarivo"
-msgstr ""
-
-msgid "Indian/Chagos"
-msgstr ""
-
-msgid "Indian/Christmas"
-msgstr ""
-
-msgid "Indian/Cocos"
-msgstr ""
-
-msgid "Indian/Comoro"
-msgstr ""
-
-msgid "Indian/Kerguelen"
-msgstr ""
-
-msgid "Indian/Mahe"
-msgstr ""
-
-msgid "Indian/Maldives"
-msgstr ""
-
-msgid "Indian/Mauritius"
-msgstr ""
-
-msgid "Indian/Mayotte"
-msgstr ""
-
-msgid "Indian/Reunion"
-msgstr ""
-
-msgid "Iran"
-msgstr ""
-
-msgid "Israel"
-msgstr ""
-
-msgid "Jamaica"
-msgstr ""
-
-msgid "Japan"
-msgstr ""
-
-msgid "Kwajalein"
-msgstr ""
-
-msgid "Libya"
-msgstr ""
-
-msgid "MET"
-msgstr ""
-
-msgid "MST"
-msgstr ""
-
-msgid "MST7MDT"
-msgstr ""
-
-msgid "Mexico/BajaNorte"
-msgstr ""
-
-msgid "Mexico/BajaSur"
-msgstr ""
-
-msgid "Mexico/General"
-msgstr ""
-
-msgid "NZ"
-msgstr ""
-
-msgid "NZ-CHAT"
-msgstr ""
-
-msgid "Navajo"
-msgstr ""
-
-msgid "PRC"
-msgstr ""
-
-msgid "PST8PDT"
-msgstr ""
-
-msgid "Pacific/Apia"
-msgstr ""
-
-msgid "Pacific/Auckland"
-msgstr ""
-
-msgid "Pacific/Chatham"
-msgstr ""
-
-msgid "Pacific/Easter"
-msgstr ""
-
-msgid "Pacific/Efate"
-msgstr ""
-
-msgid "Pacific/Enderbury"
-msgstr ""
-
-msgid "Pacific/Fakaofo"
-msgstr ""
-
-msgid "Pacific/Fiji"
-msgstr ""
-
-msgid "Pacific/Funafuti"
-msgstr ""
-
-msgid "Pacific/Galapagos"
-msgstr ""
-
-msgid "Pacific/Gambier"
-msgstr ""
-
-msgid "Pacific/Guadalcanal"
-msgstr ""
-
-msgid "Pacific/Guam"
-msgstr ""
-
-msgid "Pacific/Honolulu"
-msgstr ""
-
-msgid "Pacific/Johnston"
-msgstr ""
-
-msgid "Pacific/Kiritimati"
-msgstr ""
-
-msgid "Pacific/Kosrae"
-msgstr ""
-
-msgid "Pacific/Kwajalein"
-msgstr ""
-
-msgid "Pacific/Majuro"
-msgstr ""
-
-msgid "Pacific/Marquesas"
-msgstr ""
-
-msgid "Pacific/Midway"
-msgstr ""
-
-msgid "Pacific/Nauru"
-msgstr ""
-
-msgid "Pacific/Niue"
-msgstr ""
-
-msgid "Pacific/Norfolk"
-msgstr ""
-
-msgid "Pacific/Noumea"
-msgstr ""
-
-msgid "Pacific/Pago_Pago"
-msgstr ""
-
-msgid "Pacific/Palau"
-msgstr ""
-
-msgid "Pacific/Pitcairn"
-msgstr ""
-
-msgid "Pacific/Ponape"
-msgstr ""
-
-msgid "Pacific/Port_Moresby"
-msgstr ""
-
-msgid "Pacific/Rarotonga"
-msgstr ""
-
-msgid "Pacific/Saipan"
-msgstr ""
-
-msgid "Pacific/Samoa"
-msgstr ""
-
-msgid "Pacific/Tahiti"
-msgstr ""
-
-msgid "Pacific/Tarawa"
-msgstr ""
-
-msgid "Pacific/Tongatapu"
-msgstr ""
-
-msgid "Pacific/Truk"
-msgstr ""
-
-msgid "Pacific/Wake"
-msgstr ""
-
-msgid "Pacific/Wallis"
-msgstr ""
-
-msgid "Pacific/Yap"
-msgstr ""
-
-msgid "Poland"
-msgstr ""
-
-msgid "Portugal"
-msgstr ""
-
-msgid "ROC"
-msgstr ""
-
-msgid "ROK"
-msgstr ""
-
-msgid "Singapore"
-msgstr ""
-
-msgid "Turkey"
-msgstr ""
-
-msgid "UCT"
-msgstr ""
-
-msgid "US/Alaska"
-msgstr ""
-
-msgid "US/Aleutian"
-msgstr ""
-
-msgid "US/Arizona"
-msgstr ""
-
-msgid "US/Central"
-msgstr ""
-
-msgid "US/East-Indiana"
-msgstr ""
-
-msgid "US/Eastern"
-msgstr ""
-
-msgid "US/Hawaii"
-msgstr ""
-
-msgid "US/Indiana-Starke"
-msgstr ""
-
-msgid "US/Michigan"
-msgstr ""
-
-msgid "US/Mountain"
-msgstr ""
-
-msgid "US/Pacific"
-msgstr ""
-
-msgid "US/Pacific-New"
-msgstr ""
-
-msgid "US/Samoa"
-msgstr ""
-
-msgid "UTC"
-msgstr ""
-
-msgid "Universal"
-msgstr ""
-
-msgid "W-SU"
-msgstr ""
-
-msgid "WET"
-msgstr ""
-
-msgid "Zulu"
-msgstr ""
-
-msgid "posixrules"
-msgstr ""
-
diff --git a/vendor/pytz/reference.py b/vendor/pytz/reference.py
deleted file mode 100644
index 3dda13e7..00000000
--- a/vendor/pytz/reference.py
+++ /dev/null
@@ -1,127 +0,0 @@
-'''
-Reference tzinfo implementations from the Python docs.
-Used for testing against as they are only correct for the years
-1987 to 2006. Do not use these for real code.
-'''
-
-from datetime import tzinfo, timedelta, datetime
-from pytz import utc, UTC, HOUR, ZERO
-
-# A class building tzinfo objects for fixed-offset time zones.
-# Note that FixedOffset(0, "UTC") is a different way to build a
-# UTC tzinfo object.
-
-class FixedOffset(tzinfo):
- """Fixed offset in minutes east from UTC."""
-
- def __init__(self, offset, name):
- self.__offset = timedelta(minutes = offset)
- self.__name = name
-
- def utcoffset(self, dt):
- return self.__offset
-
- def tzname(self, dt):
- return self.__name
-
- def dst(self, dt):
- return ZERO
-
-# A class capturing the platform's idea of local time.
-
-import time as _time
-
-STDOFFSET = timedelta(seconds = -_time.timezone)
-if _time.daylight:
- DSTOFFSET = timedelta(seconds = -_time.altzone)
-else:
- DSTOFFSET = STDOFFSET
-
-DSTDIFF = DSTOFFSET - STDOFFSET
-
-class LocalTimezone(tzinfo):
-
- def utcoffset(self, dt):
- if self._isdst(dt):
- return DSTOFFSET
- else:
- return STDOFFSET
-
- def dst(self, dt):
- if self._isdst(dt):
- return DSTDIFF
- else:
- return ZERO
-
- def tzname(self, dt):
- return _time.tzname[self._isdst(dt)]
-
- def _isdst(self, dt):
- tt = (dt.year, dt.month, dt.day,
- dt.hour, dt.minute, dt.second,
- dt.weekday(), 0, -1)
- stamp = _time.mktime(tt)
- tt = _time.localtime(stamp)
- return tt.tm_isdst > 0
-
-Local = LocalTimezone()
-
-# A complete implementation of current DST rules for major US time zones.
-
-def first_sunday_on_or_after(dt):
- days_to_go = 6 - dt.weekday()
- if days_to_go:
- dt += timedelta(days_to_go)
- return dt
-
-# In the US, DST starts at 2am (standard time) on the first Sunday in April.
-DSTSTART = datetime(1, 4, 1, 2)
-# and ends at 2am (DST time; 1am standard time) on the last Sunday of Oct.
-# which is the first Sunday on or after Oct 25.
-DSTEND = datetime(1, 10, 25, 1)
-
-class USTimeZone(tzinfo):
-
- def __init__(self, hours, reprname, stdname, dstname):
- self.stdoffset = timedelta(hours=hours)
- self.reprname = reprname
- self.stdname = stdname
- self.dstname = dstname
-
- def __repr__(self):
- return self.reprname
-
- def tzname(self, dt):
- if self.dst(dt):
- return self.dstname
- else:
- return self.stdname
-
- def utcoffset(self, dt):
- return self.stdoffset + self.dst(dt)
-
- def dst(self, dt):
- if dt is None or dt.tzinfo is None:
- # An exception may be sensible here, in one or both cases.
- # It depends on how you want to treat them. The default
- # fromutc() implementation (called by the default astimezone()
- # implementation) passes a datetime with dt.tzinfo is self.
- return ZERO
- assert dt.tzinfo is self
-
- # Find first Sunday in April & the last in October.
- start = first_sunday_on_or_after(DSTSTART.replace(year=dt.year))
- end = first_sunday_on_or_after(DSTEND.replace(year=dt.year))
-
- # Can't compare naive to aware objects, so strip the timezone from
- # dt first.
- if start <= dt.replace(tzinfo=None) < end:
- return HOUR
- else:
- return ZERO
-
-Eastern = USTimeZone(-5, "Eastern", "EST", "EDT")
-Central = USTimeZone(-6, "Central", "CST", "CDT")
-Mountain = USTimeZone(-7, "Mountain", "MST", "MDT")
-Pacific = USTimeZone(-8, "Pacific", "PST", "PDT")
-
diff --git a/vendor/pytz/tzinfo.py b/vendor/pytz/tzinfo.py
deleted file mode 100644
index f5e9e0b0..00000000
--- a/vendor/pytz/tzinfo.py
+++ /dev/null
@@ -1,379 +0,0 @@
-'''Base classes and helpers for building zone specific tzinfo classes'''
-
-from datetime import datetime, timedelta, tzinfo
-from bisect import bisect_right
-from sets import Set
-
-import pytz
-
-__all__ = []
-
-_timedelta_cache = {}
-def memorized_timedelta(seconds):
- '''Create only one instance of each distinct timedelta'''
- try:
- return _timedelta_cache[seconds]
- except KeyError:
- delta = timedelta(seconds=seconds)
- _timedelta_cache[seconds] = delta
- return delta
-
-_datetime_cache = {}
-def memorized_datetime(*args):
- '''Create only one instance of each distinct datetime'''
- try:
- return _datetime_cache[args]
- except KeyError:
- dt = datetime(*args)
- _datetime_cache[args] = dt
- return dt
-
-_ttinfo_cache = {}
-def memorized_ttinfo(*args):
- '''Create only one instance of each distinct tuple'''
- try:
- return _ttinfo_cache[args]
- except KeyError:
- ttinfo = (
- memorized_timedelta(args[0]),
- memorized_timedelta(args[1]),
- args[2]
- )
- _ttinfo_cache[args] = ttinfo
- return ttinfo
-
-_notime = memorized_timedelta(0)
-
-def _to_seconds(td):
- '''Convert a timedelta to seconds'''
- return td.seconds + td.days * 24 * 60 * 60
-
-
-class BaseTzInfo(tzinfo):
- # Overridden in subclass
- _utcoffset = None
- _tzname = None
- zone = None
-
- def __str__(self):
- return self.zone
-
-
-class StaticTzInfo(BaseTzInfo):
- '''A timezone that has a constant offset from UTC
-
- These timezones are rare, as most regions have changed their
- offset from UTC at some point in their history
- '''
- def fromutc(self, dt):
- '''See datetime.tzinfo.fromutc'''
- return (dt + self._utcoffset).replace(tzinfo=self)
-
- def utcoffset(self,dt):
- '''See datetime.tzinfo.utcoffset'''
- return self._utcoffset
-
- def dst(self,dt):
- '''See datetime.tzinfo.dst'''
- return _notime
-
- def tzname(self,dt):
- '''See datetime.tzinfo.tzname'''
- return self._tzname
-
- def localize(self, dt, is_dst=False):
- '''Convert naive time to local time'''
- if dt.tzinfo is not None:
- raise ValueError, 'Not naive datetime (tzinfo is already set)'
- return dt.replace(tzinfo=self)
-
- def normalize(self, dt, is_dst=False):
- '''Correct the timezone information on the given datetime'''
- if dt.tzinfo is None:
- raise ValueError, 'Naive time - no tzinfo set'
- return dt.replace(tzinfo=self)
-
- def __repr__(self):
- return '' % (self.zone,)
-
- def __reduce__(self):
- # Special pickle to zone remains a singleton and to cope with
- # database changes.
- return pytz._p, (self.zone,)
-
-
-class DstTzInfo(BaseTzInfo):
- '''A timezone that has a variable offset from UTC
-
- The offset might change if daylight savings time comes into effect,
- or at a point in history when the region decides to change their
- timezone definition.
-
- '''
- # Overridden in subclass
- _utc_transition_times = None # Sorted list of DST transition times in UTC
- _transition_info = None # [(utcoffset, dstoffset, tzname)] corresponding
- # to _utc_transition_times entries
- zone = None
-
- # Set in __init__
- _tzinfos = None
- _dst = None # DST offset
-
- def __init__(self, _inf=None, _tzinfos=None):
- if _inf:
- self._tzinfos = _tzinfos
- self._utcoffset, self._dst, self._tzname = _inf
- else:
- _tzinfos = {}
- self._tzinfos = _tzinfos
- self._utcoffset, self._dst, self._tzname = self._transition_info[0]
- _tzinfos[self._transition_info[0]] = self
- for inf in self._transition_info[1:]:
- if not _tzinfos.has_key(inf):
- _tzinfos[inf] = self.__class__(inf, _tzinfos)
-
- def fromutc(self, dt):
- '''See datetime.tzinfo.fromutc'''
- dt = dt.replace(tzinfo=None)
- idx = max(0, bisect_right(self._utc_transition_times, dt) - 1)
- inf = self._transition_info[idx]
- return (dt + inf[0]).replace(tzinfo=self._tzinfos[inf])
-
- def normalize(self, dt):
- '''Correct the timezone information on the given datetime
-
- If date arithmetic crosses DST boundaries, the tzinfo
- is not magically adjusted. This method normalizes the
- tzinfo to the correct one.
-
- To test, first we need to do some setup
-
- >>> from pytz import timezone
- >>> utc = timezone('UTC')
- >>> eastern = timezone('US/Eastern')
- >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
-
- We next create a datetime right on an end-of-DST transition point,
- the instant when the wallclocks are wound back one hour.
-
- >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
- >>> loc_dt = utc_dt.astimezone(eastern)
- >>> loc_dt.strftime(fmt)
- '2002-10-27 01:00:00 EST (-0500)'
-
- Now, if we subtract a few minutes from it, note that the timezone
- information has not changed.
-
- >>> before = loc_dt - timedelta(minutes=10)
- >>> before.strftime(fmt)
- '2002-10-27 00:50:00 EST (-0500)'
-
- But we can fix that by calling the normalize method
-
- >>> before = eastern.normalize(before)
- >>> before.strftime(fmt)
- '2002-10-27 01:50:00 EDT (-0400)'
-
- '''
- if dt.tzinfo is None:
- raise ValueError, 'Naive time - no tzinfo set'
-
- # Convert dt in localtime to UTC
- offset = dt.tzinfo._utcoffset
- dt = dt.replace(tzinfo=None)
- dt = dt - offset
- # convert it back, and return it
- return self.fromutc(dt)
-
- def localize(self, dt, is_dst=False):
- '''Convert naive time to local time.
-
- This method should be used to construct localtimes, rather
- than passing a tzinfo argument to a datetime constructor.
-
- is_dst is used to determine the correct timezone in the ambigous
- period at the end of daylight savings time.
-
- >>> from pytz import timezone
- >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
- >>> amdam = timezone('Europe/Amsterdam')
- >>> dt = datetime(2004, 10, 31, 2, 0, 0)
- >>> loc_dt1 = amdam.localize(dt, is_dst=True)
- >>> loc_dt2 = amdam.localize(dt, is_dst=False)
- >>> loc_dt1.strftime(fmt)
- '2004-10-31 02:00:00 CEST (+0200)'
- >>> loc_dt2.strftime(fmt)
- '2004-10-31 02:00:00 CET (+0100)'
- >>> str(loc_dt2 - loc_dt1)
- '1:00:00'
-
- Use is_dst=None to raise an AmbiguousTimeError for ambiguous
- times at the end of daylight savings
-
- >>> try:
- ... loc_dt1 = amdam.localize(dt, is_dst=None)
- ... except AmbiguousTimeError:
- ... print 'Oops'
- Oops
-
- >>> loc_dt1 = amdam.localize(dt, is_dst=None)
- Traceback (most recent call last):
- [...]
- AmbiguousTimeError: 2004-10-31 02:00:00
-
- is_dst defaults to False
-
- >>> amdam.localize(dt) == amdam.localize(dt, False)
- True
-
- '''
- if dt.tzinfo is not None:
- raise ValueError, 'Not naive datetime (tzinfo is already set)'
-
- # Find the possibly correct timezones. We probably just have one,
- # but we might end up with two if we are in the end-of-DST
- # transition period. Or possibly more in some particularly confused
- # location...
- possible_loc_dt = Set()
- for tzinfo in self._tzinfos.values():
- loc_dt = tzinfo.normalize(dt.replace(tzinfo=tzinfo))
- if loc_dt.replace(tzinfo=None) == dt:
- possible_loc_dt.add(loc_dt)
-
- if len(possible_loc_dt) == 1:
- return possible_loc_dt.pop()
-
- # If told to be strict, raise an exception since we have an
- # ambiguous case
- if is_dst is None:
- raise AmbiguousTimeError(dt)
-
- # Filter out the possiblilities that don't match the requested
- # is_dst
- filtered_possible_loc_dt = [
- p for p in possible_loc_dt
- if bool(p.tzinfo._dst) == is_dst
- ]
-
- # Hopefully we only have one possibility left. Return it.
- if len(filtered_possible_loc_dt) == 1:
- return filtered_possible_loc_dt[0]
-
- if len(filtered_possible_loc_dt) == 0:
- filtered_possible_loc_dt = list(possible_loc_dt)
-
- # If we get this far, we have in a wierd timezone transition
- # where the clocks have been wound back but is_dst is the same
- # in both (eg. Europe/Warsaw 1915 when they switched to CET).
- # At this point, we just have to guess unless we allow more
- # hints to be passed in (such as the UTC offset or abbreviation),
- # but that is just getting silly.
- #
- # Choose the earliest (by UTC) applicable timezone.
- def mycmp(a,b):
- return cmp(
- a.replace(tzinfo=None) - a.tzinfo._utcoffset,
- b.replace(tzinfo=None) - b.tzinfo._utcoffset,
- )
- filtered_possible_loc_dt.sort(mycmp)
- return filtered_possible_loc_dt[0]
-
- def utcoffset(self, dt):
- '''See datetime.tzinfo.utcoffset'''
- return self._utcoffset
-
- def dst(self, dt):
- '''See datetime.tzinfo.dst'''
- return self._dst
-
- def tzname(self, dt):
- '''See datetime.tzinfo.tzname'''
- return self._tzname
-
- def __repr__(self):
- if self._dst:
- dst = 'DST'
- else:
- dst = 'STD'
- if self._utcoffset > _notime:
- return '' % (
- self.zone, self._tzname, self._utcoffset, dst
- )
- else:
- return '' % (
- self.zone, self._tzname, self._utcoffset, dst
- )
-
- def __reduce__(self):
- # Special pickle to zone remains a singleton and to cope with
- # database changes.
- return pytz._p, (
- self.zone,
- _to_seconds(self._utcoffset),
- _to_seconds(self._dst),
- self._tzname
- )
-
-
-class AmbiguousTimeError(Exception):
- '''Exception raised when attempting to create an ambiguous wallclock time.
-
- At the end of a DST transition period, a particular wallclock time will
- occur twice (once before the clocks are set back, once after). Both
- possibilities may be correct, unless further information is supplied.
-
- See DstTzInfo.normalize() for more info
- '''
-
-
-def unpickler(zone, utcoffset=None, dstoffset=None, tzname=None):
- """Factory function for unpickling pytz tzinfo instances.
-
- This is shared for both StaticTzInfo and DstTzInfo instances, because
- database changes could cause a zones implementation to switch between
- these two base classes and we can't break pickles on a pytz version
- upgrade.
- """
- # Raises a KeyError if zone no longer exists, which should never happen
- # and would be a bug.
- tz = pytz.timezone(zone)
-
- # A StaticTzInfo - just return it
- if utcoffset is None:
- return tz
-
- # This pickle was created from a DstTzInfo. We need to
- # determine which of the list of tzinfo instances for this zone
- # to use in order to restore the state of any datetime instances using
- # it correctly.
- utcoffset = memorized_timedelta(utcoffset)
- dstoffset = memorized_timedelta(dstoffset)
- try:
- return tz._tzinfos[(utcoffset, dstoffset, tzname)]
- except KeyError:
- # The particular state requested in this timezone no longer exists.
- # This indicates a corrupt pickle, or the timezone database has been
- # corrected violently enough to make this particular
- # (utcoffset,dstoffset) no longer exist in the zone, or the
- # abbreviation has been changed.
- pass
-
- # See if we can find an entry differing only by tzname. Abbreviations
- # get changed from the initial guess by the database maintainers to
- # match reality when this information is discovered.
- for localized_tz in tz._tzinfos.values():
- if (localized_tz._utcoffset == utcoffset
- and localized_tz._dst == dstoffset):
- return localized_tz
-
- # This (utcoffset, dstoffset) information has been removed from the
- # zone. Add it back. This might occur when the database maintainers have
- # corrected incorrect information. datetime instances using this
- # incorrect information will continue to do so, exactly as they were
- # before being pickled. This is purely an overly paranoid safety net - I
- # doubt this will ever been needed in real life.
- inf = (utcoffset, dstoffset, tzname)
- tz._tzinfos[inf] = tz.__class__(inf, tz._tzinfos)
- return tz._tzinfos[inf]
-
diff --git a/vendor/pytz/zone.tab b/vendor/pytz/zone.tab
deleted file mode 100644
index 253e9401..00000000
--- a/vendor/pytz/zone.tab
+++ /dev/null
@@ -1,417 +0,0 @@
-# @(#)zone.tab 8.6
-#
-# TZ zone descriptions
-#
-# From Paul Eggert (1996-08-05):
-#
-# This file contains a table with the following columns:
-# 1. ISO 3166 2-character country code. See the file `iso3166.tab'.
-# 2. Latitude and longitude of the zone's principal location
-# in ISO 6709 sign-degrees-minutes-seconds format,
-# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
-# first latitude (+ is north), then longitude (+ is east).
-# 3. Zone name used in value of TZ environment variable.
-# 4. Comments; present if and only if the country has multiple rows.
-#
-# Columns are separated by a single tab.
-# The table is sorted first by country, then an order within the country that
-# (1) makes some geographical sense, and
-# (2) puts the most populous zones first, where that does not contradict (1).
-#
-# Lines beginning with `#' are comments.
-#
-#country-
-#code coordinates TZ comments
-AD +4230+00131 Europe/Andorra
-AE +2518+05518 Asia/Dubai
-AF +3431+06912 Asia/Kabul
-AG +1703-06148 America/Antigua
-AI +1812-06304 America/Anguilla
-AL +4120+01950 Europe/Tirane
-AM +4011+04430 Asia/Yerevan
-AN +1211-06900 America/Curacao
-AO -0848+01314 Africa/Luanda
-AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island
-AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole
-AQ -6734-06808 Antarctica/Rothera Rothera Station, Adelaide Island
-AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island
-AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay
-AQ -6835+07758 Antarctica/Davis Davis Station, Vestfold Hills
-AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula
-AQ -7824+10654 Antarctica/Vostok Vostok Station, S Magnetic Pole
-AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Base, Terre Adelie
-AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I
-AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
-AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF, SL)
-AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
-AR -2649-06513 America/Argentina/Tucuman Tucuman (TM)
-AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH)
-AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR)
-AR -3132-06831 America/Argentina/San_Juan San Juan (SJ)
-AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
-AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
-AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
-AS -1416-17042 Pacific/Pago_Pago
-AT +4813+01620 Europe/Vienna
-AU -3133+15905 Australia/Lord_Howe Lord Howe Island
-AU -4253+14719 Australia/Hobart Tasmania - most locations
-AU -3956+14352 Australia/Currie Tasmania - King Island
-AU -3749+14458 Australia/Melbourne Victoria
-AU -3352+15113 Australia/Sydney New South Wales - most locations
-AU -3157+14127 Australia/Broken_Hill New South Wales - Yancowinna
-AU -2728+15302 Australia/Brisbane Queensland - most locations
-AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands
-AU -3455+13835 Australia/Adelaide South Australia
-AU -1228+13050 Australia/Darwin Northern Territory
-AU -3157+11551 Australia/Perth Western Australia
-AW +1230-06858 America/Aruba
-AX +6006+01957 Europe/Mariehamn
-AZ +4023+04951 Asia/Baku
-BA +4352+01825 Europe/Sarajevo
-BB +1306-05937 America/Barbados
-BD +2343+09025 Asia/Dhaka
-BE +5050+00420 Europe/Brussels
-BF +1222-00131 Africa/Ouagadougou
-BG +4241+02319 Europe/Sofia
-BH +2623+05035 Asia/Bahrain
-BI -0323+02922 Africa/Bujumbura
-BJ +0629+00237 Africa/Porto-Novo
-BM +3217-06446 Atlantic/Bermuda
-BN +0456+11455 Asia/Brunei
-BO -1630-06809 America/La_Paz
-BR -0351-03225 America/Noronha Atlantic islands
-BR -0127-04829 America/Belem Amapa, E Para
-BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB)
-BR -0803-03454 America/Recife Pernambuco
-BR -0712-04812 America/Araguaina Tocantins
-BR -0940-03543 America/Maceio Alagoas, Sergipe
-BR -1259-03831 America/Bahia Bahia
-BR -2332-04637 America/Sao_Paulo S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
-BR -2027-05437 America/Campo_Grande Mato Grosso do Sul
-BR -1535-05605 America/Cuiaba Mato Grosso
-BR -0846-06354 America/Porto_Velho W Para, Rondonia
-BR +0249-06040 America/Boa_Vista Roraima
-BR -0308-06001 America/Manaus E Amazonas
-BR -0640-06952 America/Eirunepe W Amazonas
-BR -0958-06748 America/Rio_Branco Acre
-BS +2505-07721 America/Nassau
-BT +2728+08939 Asia/Thimphu
-BW -2545+02555 Africa/Gaborone
-BY +5354+02734 Europe/Minsk
-BZ +1730-08812 America/Belize
-CA +4734-05243 America/St_Johns Newfoundland Time, including SE Labrador
-CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), PEI
-CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
-CA +4606-06447 America/Moncton Atlantic Time - New Brunswick
-CA +5320-06025 America/Goose_Bay Atlantic Time - Labrador - most locations
-CA +5125-05707 America/Blanc-Sablon Atlantic Standard Time - Quebec - Lower North Shore
-CA +4531-07334 America/Montreal Eastern Time - Quebec - most locations
-CA +4339-07923 America/Toronto Eastern Time - Ontario - most locations
-CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973
-CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario
-CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
-CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut
-CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
-CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
-CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
-CA +4843-09434 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario
-CA +6903-10505 America/Cambridge_Bay Central Time - west Nunavut
-CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations
-CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest
-CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan
-CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories
-CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories
-CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
-CA +4916-12307 America/Vancouver Pacific Time - west British Columbia
-CA +6043-13503 America/Whitehorse Pacific Time - south Yukon
-CA +6404-13925 America/Dawson Pacific Time - north Yukon
-CC -1210+09655 Indian/Cocos
-CD -0418+01518 Africa/Kinshasa west Dem. Rep. of Congo
-CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo
-CF +0422+01835 Africa/Bangui
-CG -0416+01517 Africa/Brazzaville
-CH +4723+00832 Europe/Zurich
-CI +0519-00402 Africa/Abidjan
-CK -2114-15946 Pacific/Rarotonga
-CL -3327-07040 America/Santiago most locations
-CL -2710-10927 Pacific/Easter Easter Island & Sala y Gomez
-CM +0403+00942 Africa/Douala
-CN +3114+12128 Asia/Shanghai east China - Beijing, Guangdong, Shanghai, etc.
-CN +4545+12641 Asia/Harbin Heilongjiang (except Mohe), Jilin
-CN +2934+10635 Asia/Chongqing central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
-CN +4348+08735 Asia/Urumqi most of Tibet & Xinjiang
-CN +3929+07559 Asia/Kashgar west Tibet & Xinjiang
-CO +0436-07405 America/Bogota
-CR +0956-08405 America/Costa_Rica
-CU +2308-08222 America/Havana
-CV +1455-02331 Atlantic/Cape_Verde
-CX -1025+10543 Indian/Christmas
-CY +3510+03322 Asia/Nicosia
-CZ +5005+01426 Europe/Prague
-DE +5230+01322 Europe/Berlin
-DJ +1136+04309 Africa/Djibouti
-DK +5540+01235 Europe/Copenhagen
-DM +1518-06124 America/Dominica
-DO +1828-06954 America/Santo_Domingo
-DZ +3647+00303 Africa/Algiers
-EC -0210-07950 America/Guayaquil mainland
-EC -0054-08936 Pacific/Galapagos Galapagos Islands
-EE +5925+02445 Europe/Tallinn
-EG +3003+03115 Africa/Cairo
-EH +2709-01312 Africa/El_Aaiun
-ER +1520+03853 Africa/Asmera
-ES +4024-00341 Europe/Madrid mainland
-ES +3553-00519 Africa/Ceuta Ceuta & Melilla
-ES +2806-01524 Atlantic/Canary Canary Islands
-ET +0902+03842 Africa/Addis_Ababa
-FI +6010+02458 Europe/Helsinki
-FJ -1808+17825 Pacific/Fiji
-FK -5142-05751 Atlantic/Stanley
-FM +0725+15147 Pacific/Truk Truk (Chuuk) and Yap
-FM +0658+15813 Pacific/Ponape Ponape (Pohnpei)
-FM +0519+16259 Pacific/Kosrae Kosrae
-FO +6201-00646 Atlantic/Faeroe
-FR +4852+00220 Europe/Paris
-GA +0023+00927 Africa/Libreville
-GB +512830-0001845 Europe/London
-GD +1203-06145 America/Grenada
-GE +4143+04449 Asia/Tbilisi
-GF +0456-05220 America/Cayenne
-GG +4927-00232 Europe/Guernsey
-GH +0533-00013 Africa/Accra
-GI +3608-00521 Europe/Gibraltar
-GL +6411-05144 America/Godthab most locations
-GL +7646-01840 America/Danmarkshavn east coast, north of Scoresbysund
-GL +7029-02158 America/Scoresbysund Scoresbysund / Ittoqqortoormiit
-GL +7634-06847 America/Thule Thule / Pituffik
-GM +1328-01639 Africa/Banjul
-GN +0931-01343 Africa/Conakry
-GP +1614-06132 America/Guadeloupe
-GQ +0345+00847 Africa/Malabo
-GR +3758+02343 Europe/Athens
-GS -5416-03632 Atlantic/South_Georgia
-GT +1438-09031 America/Guatemala
-GU +1328+14445 Pacific/Guam
-GW +1151-01535 Africa/Bissau
-GY +0648-05810 America/Guyana
-HK +2217+11409 Asia/Hong_Kong
-HN +1406-08713 America/Tegucigalpa
-HR +4548+01558 Europe/Zagreb
-HT +1832-07220 America/Port-au-Prince
-HU +4730+01905 Europe/Budapest
-ID -0610+10648 Asia/Jakarta Java & Sumatra
-ID -0002+10920 Asia/Pontianak west & central Borneo
-ID -0507+11924 Asia/Makassar east & south Borneo, Celebes, Bali, Nusa Tengarra, west Timor
-ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas
-IE +5320-00615 Europe/Dublin
-IL +3146+03514 Asia/Jerusalem
-IM +5409-00428 Europe/Isle_of_Man
-IN +2232+08822 Asia/Calcutta
-IO -0720+07225 Indian/Chagos
-IQ +3321+04425 Asia/Baghdad
-IR +3540+05126 Asia/Tehran
-IS +6409-02151 Atlantic/Reykjavik
-IT +4154+01229 Europe/Rome
-JE +4912-00207 Europe/Jersey
-JM +1800-07648 America/Jamaica
-JO +3157+03556 Asia/Amman
-JP +353916+1394441 Asia/Tokyo
-KE -0117+03649 Africa/Nairobi
-KG +4254+07436 Asia/Bishkek
-KH +1133+10455 Asia/Phnom_Penh
-KI +0125+17300 Pacific/Tarawa Gilbert Islands
-KI -0308-17105 Pacific/Enderbury Phoenix Islands
-KI +0152-15720 Pacific/Kiritimati Line Islands
-KM -1141+04316 Indian/Comoro
-KN +1718-06243 America/St_Kitts
-KP +3901+12545 Asia/Pyongyang
-KR +3733+12658 Asia/Seoul
-KW +2920+04759 Asia/Kuwait
-KY +1918-08123 America/Cayman
-KZ +4315+07657 Asia/Almaty most locations
-KZ +4448+06528 Asia/Qyzylorda Qyzylorda (Kyzylorda, Kzyl-Orda)
-KZ +5017+05710 Asia/Aqtobe Aqtobe (Aktobe)
-KZ +4431+05016 Asia/Aqtau Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau)
-KZ +5113+05121 Asia/Oral West Kazakhstan
-LA +1758+10236 Asia/Vientiane
-LB +3353+03530 Asia/Beirut
-LC +1401-06100 America/St_Lucia
-LI +4709+00931 Europe/Vaduz
-LK +0656+07951 Asia/Colombo
-LR +0618-01047 Africa/Monrovia
-LS -2928+02730 Africa/Maseru
-LT +5441+02519 Europe/Vilnius
-LU +4936+00609 Europe/Luxembourg
-LV +5657+02406 Europe/Riga
-LY +3254+01311 Africa/Tripoli
-MA +3339-00735 Africa/Casablanca
-MC +4342+00723 Europe/Monaco
-MD +4700+02850 Europe/Chisinau
-ME +4226+01916 Europe/Podgorica
-MG -1855+04731 Indian/Antananarivo
-MH +0709+17112 Pacific/Majuro most locations
-MH +0905+16720 Pacific/Kwajalein Kwajalein
-MK +4159+02126 Europe/Skopje
-ML +1239-00800 Africa/Bamako
-MM +1647+09610 Asia/Rangoon
-MN +4755+10653 Asia/Ulaanbaatar most locations
-MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
-MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
-MO +2214+11335 Asia/Macau
-MP +1512+14545 Pacific/Saipan
-MQ +1436-06105 America/Martinique
-MR +1806-01557 Africa/Nouakchott
-MS +1643-06213 America/Montserrat
-MT +3554+01431 Europe/Malta
-MU -2010+05730 Indian/Mauritius
-MV +0410+07330 Indian/Maldives
-MW -1547+03500 Africa/Blantyre
-MX +1924-09909 America/Mexico_City Central Time - most locations
-MX +2105-08646 America/Cancun Central Time - Quintana Roo
-MX +2058-08937 America/Merida Central Time - Campeche, Yucatan
-MX +2540-10019 America/Monterrey Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas
-MX +2313-10625 America/Mazatlan Mountain Time - S Baja, Nayarit, Sinaloa
-MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua
-MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
-MX +3232-11701 America/Tijuana Pacific Time
-MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
-MY +0133+11020 Asia/Kuching Sabah & Sarawak
-MZ -2558+03235 Africa/Maputo
-NA -2234+01706 Africa/Windhoek
-NC -2216+16530 Pacific/Noumea
-NE +1331+00207 Africa/Niamey
-NF -2903+16758 Pacific/Norfolk
-NG +0627+00324 Africa/Lagos
-NI +1209-08617 America/Managua
-NL +5222+00454 Europe/Amsterdam
-NO +5955+01045 Europe/Oslo
-NP +2743+08519 Asia/Katmandu
-NR -0031+16655 Pacific/Nauru
-NU -1901+16955 Pacific/Niue
-NZ -3652+17446 Pacific/Auckland most locations
-NZ -4357-17633 Pacific/Chatham Chatham Islands
-OM +2336+05835 Asia/Muscat
-PA +0858-07932 America/Panama
-PE -1203-07703 America/Lima
-PF -1732-14934 Pacific/Tahiti Society Islands
-PF -0900-13930 Pacific/Marquesas Marquesas Islands
-PF -2308-13457 Pacific/Gambier Gambier Islands
-PG -0930+14710 Pacific/Port_Moresby
-PH +1435+12100 Asia/Manila
-PK +2452+06703 Asia/Karachi
-PL +5215+02100 Europe/Warsaw
-PM +4703-05620 America/Miquelon
-PN -2504-13005 Pacific/Pitcairn
-PR +182806-0660622 America/Puerto_Rico
-PS +3130+03428 Asia/Gaza
-PT +3843-00908 Europe/Lisbon mainland
-PT +3238-01654 Atlantic/Madeira Madeira Islands
-PT +3744-02540 Atlantic/Azores Azores
-PW +0720+13429 Pacific/Palau
-PY -2516-05740 America/Asuncion
-QA +2517+05132 Asia/Qatar
-RE -2052+05528 Indian/Reunion
-RO +4426+02606 Europe/Bucharest
-RS +4450+02030 Europe/Belgrade
-RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad
-RU +5545+03735 Europe/Moscow Moscow+00 - west Russia
-RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea
-RU +5312+05009 Europe/Samara Moscow+01 - Samara, Udmurtia
-RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals
-RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia
-RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk
-RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River
-RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal
-RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River
-RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River
-RU +4658+14242 Asia/Sakhalin Moscow+07 - Sakhalin Island
-RU +5934+15048 Asia/Magadan Moscow+08 - Magadan
-RU +5301+15839 Asia/Kamchatka Moscow+09 - Kamchatka
-RU +6445+17729 Asia/Anadyr Moscow+10 - Bering Sea
-RW -0157+03004 Africa/Kigali
-SA +2438+04643 Asia/Riyadh
-SB -0932+16012 Pacific/Guadalcanal
-SC -0440+05528 Indian/Mahe
-SD +1536+03232 Africa/Khartoum
-SE +5920+01803 Europe/Stockholm
-SG +0117+10351 Asia/Singapore
-SH -1555-00542 Atlantic/St_Helena
-SI +4603+01431 Europe/Ljubljana
-SJ +7800+01600 Arctic/Longyearbyen Svalbard
-SJ +7059-00805 Atlantic/Jan_Mayen Jan Mayen
-SK +4809+01707 Europe/Bratislava
-SL +0830-01315 Africa/Freetown
-SM +4355+01228 Europe/San_Marino
-SN +1440-01726 Africa/Dakar
-SO +0204+04522 Africa/Mogadishu
-SR +0550-05510 America/Paramaribo
-ST +0020+00644 Africa/Sao_Tome
-SV +1342-08912 America/El_Salvador
-SY +3330+03618 Asia/Damascus
-SZ -2618+03106 Africa/Mbabane
-TC +2128-07108 America/Grand_Turk
-TD +1207+01503 Africa/Ndjamena
-TF -492110+0701303 Indian/Kerguelen
-TG +0608+00113 Africa/Lome
-TH +1345+10031 Asia/Bangkok
-TJ +3835+06848 Asia/Dushanbe
-TK -0922-17114 Pacific/Fakaofo
-TL -0833+12535 Asia/Dili
-TM +3757+05823 Asia/Ashgabat
-TN +3648+01011 Africa/Tunis
-TO -2110+17510 Pacific/Tongatapu
-TR +4101+02858 Europe/Istanbul
-TT +1039-06131 America/Port_of_Spain
-TV -0831+17913 Pacific/Funafuti
-TW +2503+12130 Asia/Taipei
-TZ -0648+03917 Africa/Dar_es_Salaam
-UA +5026+03031 Europe/Kiev most locations
-UA +4837+02218 Europe/Uzhgorod Ruthenia
-UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk
-UA +4457+03406 Europe/Simferopol central Crimea
-UG +0019+03225 Africa/Kampala
-UM +1700-16830 Pacific/Johnston Johnston Atoll
-UM +2813-17722 Pacific/Midway Midway Islands
-UM +1917+16637 Pacific/Wake Wake Island
-US +404251-0740023 America/New_York Eastern Time
-US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations
-US +381515-0854534 America/Kentucky/Louisville Eastern Time - Kentucky - Louisville area
-US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County
-US +394606-0860929 America/Indiana/Indianapolis Eastern Time - Indiana - most locations
-US +382232-0862041 America/Indiana/Marengo Eastern Time - Indiana - Crawford County
-US +411745-0863730 America/Indiana/Knox Eastern Time - Indiana - Starke County
-US +384452-0850402 America/Indiana/Vevay Eastern Time - Indiana - Switzerland County
-US +415100-0873900 America/Chicago Central Time
-US +384038-0873143 America/Indiana/Vincennes Central Time - Indiana - Daviess, Dubois, Knox, Martin, Perry & Pulaski Counties
-US +382931-0871643 America/Indiana/Petersburg Central Time - Indiana - Pike County
-US +450628-0873651 America/Menominee Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
-US +470659-1011757 America/North_Dakota/Center Central Time - North Dakota - Oliver County
-US +465042-1012439 America/North_Dakota/New_Salem Central Time - North Dakota - Morton County (except Mandan area)
-US +394421-1045903 America/Denver Mountain Time
-US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon
-US +364708-1084111 America/Shiprock Mountain Time - Navajo
-US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona
-US +340308-1181434 America/Los_Angeles Pacific Time
-US +611305-1495401 America/Anchorage Alaska Time
-US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle
-US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck
-US +643004-1652423 America/Nome Alaska Time - west Alaska
-US +515248-1763929 America/Adak Aleutian Islands
-US +211825-1575130 Pacific/Honolulu Hawaii
-UY -3453-05611 America/Montevideo
-UZ +3940+06648 Asia/Samarkand west Uzbekistan
-UZ +4120+06918 Asia/Tashkent east Uzbekistan
-VA +4154+01227 Europe/Vatican
-VC +1309-06114 America/St_Vincent
-VE +1030-06656 America/Caracas
-VG +1827-06437 America/Tortola
-VI +1821-06456 America/St_Thomas
-VN +1045+10640 Asia/Saigon
-VU -1740+16825 Pacific/Efate
-WF -1318-17610 Pacific/Wallis
-WS -1350-17144 Pacific/Apia
-YE +1245+04512 Asia/Aden
-YT -1247+04514 Indian/Mayotte
-ZA -2615+02800 Africa/Johannesburg
-ZM -1525+02817 Africa/Lusaka
-ZW -1750+03103 Africa/Harare
diff --git a/vendor/pytz/zoneinfo/Africa/Abidjan.py b/vendor/pytz/zoneinfo/Africa/Abidjan.py
deleted file mode 100644
index a78a5071..00000000
--- a/vendor/pytz/zoneinfo/Africa/Abidjan.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Abidjan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Abidjan(DstTzInfo):
- '''Africa/Abidjan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Abidjan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,16,8),
- ]
-
- _transition_info = [
-i(-960,0,'LMT'),
-i(0,0,'GMT'),
- ]
-
-Abidjan = Abidjan()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Accra.py b/vendor/pytz/zoneinfo/Africa/Accra.py
deleted file mode 100644
index 62c42d39..00000000
--- a/vendor/pytz/zoneinfo/Africa/Accra.py
+++ /dev/null
@@ -1,50 +0,0 @@
-'''tzinfo timezone information for Africa/Accra.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Accra(DstTzInfo):
- '''Africa/Accra timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Accra'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,1,1,0,0,52),
-d(1936,9,1,0,0,0),
-d(1936,12,30,23,40,0),
-d(1937,9,1,0,0,0),
-d(1937,12,30,23,40,0),
-d(1938,9,1,0,0,0),
-d(1938,12,30,23,40,0),
-d(1939,9,1,0,0,0),
-d(1939,12,30,23,40,0),
-d(1940,9,1,0,0,0),
-d(1940,12,30,23,40,0),
-d(1941,9,1,0,0,0),
-d(1941,12,30,23,40,0),
-d(1942,9,1,0,0,0),
-d(1942,12,30,23,40,0),
- ]
-
- _transition_info = [
-i(-60,0,'LMT'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
-i(1200,1200,'GHST'),
-i(0,0,'GMT'),
- ]
-
-Accra = Accra()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Addis_Ababa.py b/vendor/pytz/zoneinfo/Africa/Addis_Ababa.py
deleted file mode 100644
index 2b7a992e..00000000
--- a/vendor/pytz/zoneinfo/Africa/Addis_Ababa.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Addis_Ababa.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Addis_Ababa(DstTzInfo):
- '''Africa/Addis_Ababa timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Addis_Ababa'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1936,5,4,21,24,40),
- ]
-
- _transition_info = [
-i(9300,0,'ADMT'),
-i(10800,0,'EAT'),
- ]
-
-Addis_Ababa = Addis_Ababa()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Algiers.py b/vendor/pytz/zoneinfo/Africa/Algiers.py
deleted file mode 100644
index 6f2b763f..00000000
--- a/vendor/pytz/zoneinfo/Africa/Algiers.py
+++ /dev/null
@@ -1,86 +0,0 @@
-'''tzinfo timezone information for Africa/Algiers.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Algiers(DstTzInfo):
- '''Africa/Algiers timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Algiers'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,3,10,23,50,39),
-d(1916,6,14,23,0,0),
-d(1916,10,1,23,0,0),
-d(1917,3,24,23,0,0),
-d(1917,10,7,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,6,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,5,23,0,0),
-d(1920,2,14,23,0,0),
-d(1920,10,23,23,0,0),
-d(1921,3,14,23,0,0),
-d(1921,6,21,23,0,0),
-d(1939,9,11,23,0,0),
-d(1939,11,19,0,0,0),
-d(1940,2,25,2,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,8,0,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,15,23,0,0),
-d(1946,10,6,23,0,0),
-d(1956,1,29,0,0,0),
-d(1963,4,13,23,0,0),
-d(1971,4,25,23,0,0),
-d(1971,9,26,23,0,0),
-d(1977,5,6,0,0,0),
-d(1977,10,20,23,0,0),
-d(1978,3,24,0,0,0),
-d(1978,9,22,1,0,0),
-d(1979,10,25,23,0,0),
-d(1980,4,25,0,0,0),
-d(1980,10,31,1,0,0),
-d(1981,5,1,0,0,0),
- ]
-
- _transition_info = [
-i(540,0,'PMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
- ]
-
-Algiers = Algiers()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Asmera.py b/vendor/pytz/zoneinfo/Africa/Asmera.py
deleted file mode 100644
index f05e0444..00000000
--- a/vendor/pytz/zoneinfo/Africa/Asmera.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Asmera.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Asmera(DstTzInfo):
- '''Africa/Asmera timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Asmera'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1936,5,4,21,24,40),
- ]
-
- _transition_info = [
-i(9300,0,'ADMT'),
-i(10800,0,'EAT'),
- ]
-
-Asmera = Asmera()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Bamako.py b/vendor/pytz/zoneinfo/Africa/Bamako.py
deleted file mode 100644
index 67a15dd9..00000000
--- a/vendor/pytz/zoneinfo/Africa/Bamako.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Bamako.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bamako(DstTzInfo):
- '''Africa/Bamako timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Bamako'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,32,0),
-d(1934,2,26,0,0,0),
-d(1960,6,20,1,0,0),
- ]
-
- _transition_info = [
-i(-1920,0,'LMT'),
-i(0,0,'GMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Bamako = Bamako()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Bangui.py b/vendor/pytz/zoneinfo/Africa/Bangui.py
deleted file mode 100644
index 6fc9ea9c..00000000
--- a/vendor/pytz/zoneinfo/Africa/Bangui.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Bangui.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bangui(DstTzInfo):
- '''Africa/Bangui timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Bangui'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,22,45,40),
- ]
-
- _transition_info = [
-i(4440,0,'LMT'),
-i(3600,0,'WAT'),
- ]
-
-Bangui = Bangui()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Banjul.py b/vendor/pytz/zoneinfo/Africa/Banjul.py
deleted file mode 100644
index 6d88185e..00000000
--- a/vendor/pytz/zoneinfo/Africa/Banjul.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Banjul.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Banjul(DstTzInfo):
- '''Africa/Banjul timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Banjul'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,1,6,36),
-d(1935,1,1,1,6,36),
-d(1964,1,1,1,0,0),
- ]
-
- _transition_info = [
-i(-4020,0,'LMT'),
-i(-4020,0,'BMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Banjul = Banjul()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Bissau.py b/vendor/pytz/zoneinfo/Africa/Bissau.py
deleted file mode 100644
index 9ba10a3f..00000000
--- a/vendor/pytz/zoneinfo/Africa/Bissau.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Bissau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bissau(DstTzInfo):
- '''Africa/Bissau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Bissau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,26,1,2,20),
-d(1975,1,1,1,0,0),
- ]
-
- _transition_info = [
-i(-3720,0,'LMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Bissau = Bissau()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Blantyre.py b/vendor/pytz/zoneinfo/Africa/Blantyre.py
deleted file mode 100644
index d9ee75fe..00000000
--- a/vendor/pytz/zoneinfo/Africa/Blantyre.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Blantyre.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Blantyre(DstTzInfo):
- '''Africa/Blantyre timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Blantyre'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,21,40,0),
- ]
-
- _transition_info = [
-i(8400,0,'LMT'),
-i(7200,0,'CAT'),
- ]
-
-Blantyre = Blantyre()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Brazzaville.py b/vendor/pytz/zoneinfo/Africa/Brazzaville.py
deleted file mode 100644
index b027a136..00000000
--- a/vendor/pytz/zoneinfo/Africa/Brazzaville.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Brazzaville.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Brazzaville(DstTzInfo):
- '''Africa/Brazzaville timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Brazzaville'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,22,58,52),
- ]
-
- _transition_info = [
-i(3660,0,'LMT'),
-i(3600,0,'WAT'),
- ]
-
-Brazzaville = Brazzaville()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Bujumbura.py b/vendor/pytz/zoneinfo/Africa/Bujumbura.py
deleted file mode 100644
index 5c6df45e..00000000
--- a/vendor/pytz/zoneinfo/Africa/Bujumbura.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Africa/Bujumbura.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Bujumbura(StaticTzInfo):
- '''Africa/Bujumbura timezone definition. See datetime.tzinfo for details'''
- zone = 'Africa/Bujumbura'
- _utcoffset = timedelta(seconds=7200)
- _tzname = 'CAT'
-
-Bujumbura = Bujumbura()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Cairo.py b/vendor/pytz/zoneinfo/Africa/Cairo.py
deleted file mode 100644
index f172d36a..00000000
--- a/vendor/pytz/zoneinfo/Africa/Cairo.py
+++ /dev/null
@@ -1,368 +0,0 @@
-'''tzinfo timezone information for Africa/Cairo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cairo(DstTzInfo):
- '''Africa/Cairo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Cairo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,7,14,22,0,0),
-d(1940,9,30,21,0,0),
-d(1941,4,14,22,0,0),
-d(1941,9,15,21,0,0),
-d(1942,3,31,22,0,0),
-d(1942,10,26,21,0,0),
-d(1943,3,31,22,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,21,0,0),
-d(1957,5,9,22,0,0),
-d(1957,9,30,21,0,0),
-d(1958,4,30,22,0,0),
-d(1958,9,30,21,0,0),
-d(1959,4,30,23,0,0),
-d(1959,9,30,0,0,0),
-d(1960,4,30,23,0,0),
-d(1960,9,30,0,0,0),
-d(1961,4,30,23,0,0),
-d(1961,9,30,0,0,0),
-d(1962,4,30,23,0,0),
-d(1962,9,30,0,0,0),
-d(1963,4,30,23,0,0),
-d(1963,9,30,0,0,0),
-d(1964,4,30,23,0,0),
-d(1964,9,30,0,0,0),
-d(1965,4,30,23,0,0),
-d(1965,9,30,0,0,0),
-d(1966,4,30,23,0,0),
-d(1966,10,1,0,0,0),
-d(1967,4,30,23,0,0),
-d(1967,10,1,0,0,0),
-d(1968,4,30,23,0,0),
-d(1968,10,1,0,0,0),
-d(1969,4,30,23,0,0),
-d(1969,10,1,0,0,0),
-d(1970,4,30,23,0,0),
-d(1970,10,1,0,0,0),
-d(1971,4,30,23,0,0),
-d(1971,10,1,0,0,0),
-d(1972,4,30,23,0,0),
-d(1972,10,1,0,0,0),
-d(1973,4,30,23,0,0),
-d(1973,10,1,0,0,0),
-d(1974,4,30,23,0,0),
-d(1974,10,1,0,0,0),
-d(1975,4,30,23,0,0),
-d(1975,10,1,0,0,0),
-d(1976,4,30,23,0,0),
-d(1976,10,1,0,0,0),
-d(1977,4,30,23,0,0),
-d(1977,10,1,0,0,0),
-d(1978,4,30,23,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,30,23,0,0),
-d(1979,10,1,0,0,0),
-d(1980,4,30,23,0,0),
-d(1980,10,1,0,0,0),
-d(1981,4,30,23,0,0),
-d(1981,10,1,0,0,0),
-d(1982,7,24,23,0,0),
-d(1982,10,1,0,0,0),
-d(1983,7,11,23,0,0),
-d(1983,10,1,0,0,0),
-d(1984,4,30,23,0,0),
-d(1984,10,1,0,0,0),
-d(1985,4,30,23,0,0),
-d(1985,10,1,0,0,0),
-d(1986,4,30,23,0,0),
-d(1986,10,1,0,0,0),
-d(1987,4,30,23,0,0),
-d(1987,10,1,0,0,0),
-d(1988,4,30,23,0,0),
-d(1988,10,1,0,0,0),
-d(1989,5,5,23,0,0),
-d(1989,10,1,0,0,0),
-d(1990,4,30,23,0,0),
-d(1990,10,1,0,0,0),
-d(1991,4,30,23,0,0),
-d(1991,10,1,0,0,0),
-d(1992,4,30,23,0,0),
-d(1992,10,1,0,0,0),
-d(1993,4,30,23,0,0),
-d(1993,10,1,0,0,0),
-d(1994,4,30,23,0,0),
-d(1994,10,1,0,0,0),
-d(1995,4,27,22,0,0),
-d(1995,9,28,21,0,0),
-d(1996,4,25,22,0,0),
-d(1996,9,26,21,0,0),
-d(1997,4,24,22,0,0),
-d(1997,9,25,21,0,0),
-d(1998,4,23,22,0,0),
-d(1998,9,24,21,0,0),
-d(1999,4,29,22,0,0),
-d(1999,9,30,21,0,0),
-d(2000,4,27,22,0,0),
-d(2000,9,28,21,0,0),
-d(2001,4,26,22,0,0),
-d(2001,9,27,21,0,0),
-d(2002,4,25,22,0,0),
-d(2002,9,26,21,0,0),
-d(2003,4,24,22,0,0),
-d(2003,9,25,21,0,0),
-d(2004,4,29,22,0,0),
-d(2004,9,30,21,0,0),
-d(2005,4,28,22,0,0),
-d(2005,9,29,21,0,0),
-d(2006,4,27,22,0,0),
-d(2006,9,21,21,0,0),
-d(2007,4,26,22,0,0),
-d(2007,9,27,21,0,0),
-d(2008,4,24,22,0,0),
-d(2008,9,25,21,0,0),
-d(2009,4,23,22,0,0),
-d(2009,9,24,21,0,0),
-d(2010,4,29,22,0,0),
-d(2010,9,30,21,0,0),
-d(2011,4,28,22,0,0),
-d(2011,9,29,21,0,0),
-d(2012,4,26,22,0,0),
-d(2012,9,27,21,0,0),
-d(2013,4,25,22,0,0),
-d(2013,9,26,21,0,0),
-d(2014,4,24,22,0,0),
-d(2014,9,25,21,0,0),
-d(2015,4,23,22,0,0),
-d(2015,9,24,21,0,0),
-d(2016,4,28,22,0,0),
-d(2016,9,29,21,0,0),
-d(2017,4,27,22,0,0),
-d(2017,9,28,21,0,0),
-d(2018,4,26,22,0,0),
-d(2018,9,27,21,0,0),
-d(2019,4,25,22,0,0),
-d(2019,9,26,21,0,0),
-d(2020,4,23,22,0,0),
-d(2020,9,24,21,0,0),
-d(2021,4,29,22,0,0),
-d(2021,9,30,21,0,0),
-d(2022,4,28,22,0,0),
-d(2022,9,29,21,0,0),
-d(2023,4,27,22,0,0),
-d(2023,9,28,21,0,0),
-d(2024,4,25,22,0,0),
-d(2024,9,26,21,0,0),
-d(2025,4,24,22,0,0),
-d(2025,9,25,21,0,0),
-d(2026,4,23,22,0,0),
-d(2026,9,24,21,0,0),
-d(2027,4,29,22,0,0),
-d(2027,9,30,21,0,0),
-d(2028,4,27,22,0,0),
-d(2028,9,28,21,0,0),
-d(2029,4,26,22,0,0),
-d(2029,9,27,21,0,0),
-d(2030,4,25,22,0,0),
-d(2030,9,26,21,0,0),
-d(2031,4,24,22,0,0),
-d(2031,9,25,21,0,0),
-d(2032,4,29,22,0,0),
-d(2032,9,30,21,0,0),
-d(2033,4,28,22,0,0),
-d(2033,9,29,21,0,0),
-d(2034,4,27,22,0,0),
-d(2034,9,28,21,0,0),
-d(2035,4,26,22,0,0),
-d(2035,9,27,21,0,0),
-d(2036,4,24,22,0,0),
-d(2036,9,25,21,0,0),
-d(2037,4,23,22,0,0),
-d(2037,9,24,21,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Cairo = Cairo()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Casablanca.py b/vendor/pytz/zoneinfo/Africa/Casablanca.py
deleted file mode 100644
index 3e7bf3b3..00000000
--- a/vendor/pytz/zoneinfo/Africa/Casablanca.py
+++ /dev/null
@@ -1,58 +0,0 @@
-'''tzinfo timezone information for Africa/Casablanca.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Casablanca(DstTzInfo):
- '''Africa/Casablanca timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Casablanca'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1913,10,26,0,30,20),
-d(1939,9,12,0,0,0),
-d(1939,11,18,23,0,0),
-d(1940,2,25,0,0,0),
-d(1945,11,17,23,0,0),
-d(1950,6,11,0,0,0),
-d(1950,10,28,23,0,0),
-d(1967,6,3,12,0,0),
-d(1967,9,30,23,0,0),
-d(1974,6,24,0,0,0),
-d(1974,8,31,23,0,0),
-d(1976,5,1,0,0,0),
-d(1976,7,31,23,0,0),
-d(1977,5,1,0,0,0),
-d(1977,9,27,23,0,0),
-d(1978,6,1,0,0,0),
-d(1978,8,3,23,0,0),
-d(1984,3,16,0,0,0),
-d(1985,12,31,23,0,0),
- ]
-
- _transition_info = [
-i(-1800,0,'LMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
- ]
-
-Casablanca = Casablanca()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Ceuta.py b/vendor/pytz/zoneinfo/Africa/Ceuta.py
deleted file mode 100644
index 8da35b7c..00000000
--- a/vendor/pytz/zoneinfo/Africa/Ceuta.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for Africa/Ceuta.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ceuta(DstTzInfo):
- '''Africa/Ceuta timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Ceuta'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,5,6,23,0,0),
-d(1918,10,7,22,0,0),
-d(1924,4,16,23,0,0),
-d(1924,10,4,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,1,1,0,0,0),
-d(1967,6,3,12,0,0),
-d(1967,9,30,23,0,0),
-d(1974,6,24,0,0,0),
-d(1974,8,31,23,0,0),
-d(1976,5,1,0,0,0),
-d(1976,7,31,23,0,0),
-d(1977,5,1,0,0,0),
-d(1977,9,27,23,0,0),
-d(1978,6,1,0,0,0),
-d(1978,8,3,23,0,0),
-d(1984,3,16,0,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Ceuta = Ceuta()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Conakry.py b/vendor/pytz/zoneinfo/Africa/Conakry.py
deleted file mode 100644
index 39fd4059..00000000
--- a/vendor/pytz/zoneinfo/Africa/Conakry.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Conakry.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Conakry(DstTzInfo):
- '''Africa/Conakry timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Conakry'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,54,52),
-d(1934,2,26,0,0,0),
-d(1960,1,1,1,0,0),
- ]
-
- _transition_info = [
-i(-3300,0,'LMT'),
-i(0,0,'GMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Conakry = Conakry()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Dakar.py b/vendor/pytz/zoneinfo/Africa/Dakar.py
deleted file mode 100644
index 5a07e676..00000000
--- a/vendor/pytz/zoneinfo/Africa/Dakar.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Dakar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dakar(DstTzInfo):
- '''Africa/Dakar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Dakar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,1,9,44),
-d(1941,6,1,1,0,0),
- ]
-
- _transition_info = [
-i(-4200,0,'LMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Dakar = Dakar()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Dar_es_Salaam.py b/vendor/pytz/zoneinfo/Africa/Dar_es_Salaam.py
deleted file mode 100644
index 63f72fe5..00000000
--- a/vendor/pytz/zoneinfo/Africa/Dar_es_Salaam.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Dar_es_Salaam.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dar_es_Salaam(DstTzInfo):
- '''Africa/Dar_es_Salaam timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Dar_es_Salaam'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1930,12,31,21,22,52),
-d(1947,12,31,21,0,0),
-d(1960,12,31,21,15,15),
- ]
-
- _transition_info = [
-i(9420,0,'LMT'),
-i(10800,0,'EAT'),
-i(9900,0,'BEAUT'),
-i(10800,0,'EAT'),
- ]
-
-Dar_es_Salaam = Dar_es_Salaam()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Djibouti.py b/vendor/pytz/zoneinfo/Africa/Djibouti.py
deleted file mode 100644
index 1f114880..00000000
--- a/vendor/pytz/zoneinfo/Africa/Djibouti.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Djibouti.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Djibouti(DstTzInfo):
- '''Africa/Djibouti timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Djibouti'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,6,30,21,7,24),
- ]
-
- _transition_info = [
-i(10380,0,'LMT'),
-i(10800,0,'EAT'),
- ]
-
-Djibouti = Djibouti()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Douala.py b/vendor/pytz/zoneinfo/Africa/Douala.py
deleted file mode 100644
index ffa00b51..00000000
--- a/vendor/pytz/zoneinfo/Africa/Douala.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Douala.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Douala(DstTzInfo):
- '''Africa/Douala timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Douala'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,23,21,12),
- ]
-
- _transition_info = [
-i(2340,0,'LMT'),
-i(3600,0,'WAT'),
- ]
-
-Douala = Douala()
-
diff --git a/vendor/pytz/zoneinfo/Africa/El_Aaiun.py b/vendor/pytz/zoneinfo/Africa/El_Aaiun.py
deleted file mode 100644
index 7fa97f7f..00000000
--- a/vendor/pytz/zoneinfo/Africa/El_Aaiun.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/El_Aaiun.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class El_Aaiun(DstTzInfo):
- '''Africa/El_Aaiun timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/El_Aaiun'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1934,1,1,0,52,48),
-d(1976,4,14,1,0,0),
- ]
-
- _transition_info = [
-i(-3180,0,'LMT'),
-i(-3600,0,'WAT'),
-i(0,0,'WET'),
- ]
-
-El_Aaiun = El_Aaiun()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Freetown.py b/vendor/pytz/zoneinfo/Africa/Freetown.py
deleted file mode 100644
index 729e0f38..00000000
--- a/vendor/pytz/zoneinfo/Africa/Freetown.py
+++ /dev/null
@@ -1,80 +0,0 @@
-'''tzinfo timezone information for Africa/Freetown.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Freetown(DstTzInfo):
- '''Africa/Freetown timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Freetown'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1913,6,1,0,53,0),
-d(1935,6,1,1,0,0),
-d(1935,10,1,0,20,0),
-d(1936,6,1,1,0,0),
-d(1936,10,1,0,20,0),
-d(1937,6,1,1,0,0),
-d(1937,10,1,0,20,0),
-d(1938,6,1,1,0,0),
-d(1938,10,1,0,20,0),
-d(1939,6,1,1,0,0),
-d(1939,10,1,0,20,0),
-d(1940,6,1,1,0,0),
-d(1940,10,1,0,20,0),
-d(1941,6,1,1,0,0),
-d(1941,10,1,0,20,0),
-d(1942,6,1,1,0,0),
-d(1942,10,1,0,20,0),
-d(1957,1,1,1,0,0),
-d(1957,6,1,0,0,0),
-d(1957,8,31,23,0,0),
-d(1958,6,1,0,0,0),
-d(1958,8,31,23,0,0),
-d(1959,6,1,0,0,0),
-d(1959,8,31,23,0,0),
-d(1960,6,1,0,0,0),
-d(1960,8,31,23,0,0),
-d(1961,6,1,0,0,0),
-d(1961,8,31,23,0,0),
-d(1962,6,1,0,0,0),
-d(1962,8,31,23,0,0),
- ]
-
- _transition_info = [
-i(-3180,0,'FMT'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(-1200,2400,'SLST'),
-i(-3600,0,'WAT'),
-i(0,0,'WAT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
-i(3600,3600,'SLST'),
-i(0,0,'GMT'),
- ]
-
-Freetown = Freetown()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Gaborone.py b/vendor/pytz/zoneinfo/Africa/Gaborone.py
deleted file mode 100644
index 2f7ca37c..00000000
--- a/vendor/pytz/zoneinfo/Africa/Gaborone.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Gaborone.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Gaborone(DstTzInfo):
- '''Africa/Gaborone timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Gaborone'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1943,9,19,0,0,0),
-d(1944,3,18,23,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
- ]
-
-Gaborone = Gaborone()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Harare.py b/vendor/pytz/zoneinfo/Africa/Harare.py
deleted file mode 100644
index 3dd81aaa..00000000
--- a/vendor/pytz/zoneinfo/Africa/Harare.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Harare.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Harare(DstTzInfo):
- '''Africa/Harare timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Harare'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,21,55,48),
- ]
-
- _transition_info = [
-i(7440,0,'LMT'),
-i(7200,0,'CAT'),
- ]
-
-Harare = Harare()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Johannesburg.py b/vendor/pytz/zoneinfo/Africa/Johannesburg.py
deleted file mode 100644
index 09bde279..00000000
--- a/vendor/pytz/zoneinfo/Africa/Johannesburg.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Africa/Johannesburg.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Johannesburg(DstTzInfo):
- '''Africa/Johannesburg timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Johannesburg'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,22,30,0),
-d(1942,9,20,0,0,0),
-d(1943,3,20,23,0,0),
-d(1943,9,19,0,0,0),
-d(1944,3,18,23,0,0),
- ]
-
- _transition_info = [
-i(5400,0,'SAST'),
-i(7200,0,'SAST'),
-i(10800,3600,'SAST'),
-i(7200,0,'SAST'),
-i(10800,3600,'SAST'),
-i(7200,0,'SAST'),
- ]
-
-Johannesburg = Johannesburg()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Kampala.py b/vendor/pytz/zoneinfo/Africa/Kampala.py
deleted file mode 100644
index c60e898d..00000000
--- a/vendor/pytz/zoneinfo/Africa/Kampala.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Africa/Kampala.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kampala(DstTzInfo):
- '''Africa/Kampala timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Kampala'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1928,6,30,21,50,20),
-d(1929,12,31,21,0,0),
-d(1947,12,31,21,30,0),
-d(1956,12,31,21,15,15),
- ]
-
- _transition_info = [
-i(7800,0,'LMT'),
-i(10800,0,'EAT'),
-i(9000,0,'BEAT'),
-i(9900,0,'BEAUT'),
-i(10800,0,'EAT'),
- ]
-
-Kampala = Kampala()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Khartoum.py b/vendor/pytz/zoneinfo/Africa/Khartoum.py
deleted file mode 100644
index 94beac52..00000000
--- a/vendor/pytz/zoneinfo/Africa/Khartoum.py
+++ /dev/null
@@ -1,88 +0,0 @@
-'''tzinfo timezone information for Africa/Khartoum.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Khartoum(DstTzInfo):
- '''Africa/Khartoum timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Khartoum'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1930,12,31,21,49,52),
-d(1970,4,30,22,0,0),
-d(1970,10,14,21,0,0),
-d(1971,4,29,22,0,0),
-d(1971,10,14,21,0,0),
-d(1972,4,29,22,0,0),
-d(1972,10,14,21,0,0),
-d(1973,4,28,22,0,0),
-d(1973,10,14,21,0,0),
-d(1974,4,27,22,0,0),
-d(1974,10,14,21,0,0),
-d(1975,4,26,22,0,0),
-d(1975,10,14,21,0,0),
-d(1976,4,24,22,0,0),
-d(1976,10,14,21,0,0),
-d(1977,4,23,22,0,0),
-d(1977,10,14,21,0,0),
-d(1978,4,29,22,0,0),
-d(1978,10,14,21,0,0),
-d(1979,4,28,22,0,0),
-d(1979,10,14,21,0,0),
-d(1980,4,26,22,0,0),
-d(1980,10,14,21,0,0),
-d(1981,4,25,22,0,0),
-d(1981,10,14,21,0,0),
-d(1982,4,24,22,0,0),
-d(1982,10,14,21,0,0),
-d(1983,4,23,22,0,0),
-d(1983,10,14,21,0,0),
-d(1984,4,28,22,0,0),
-d(1984,10,14,21,0,0),
-d(1985,4,27,22,0,0),
-d(1985,10,14,21,0,0),
-d(2000,1,15,10,0,0),
- ]
-
- _transition_info = [
-i(7800,0,'LMT'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,3600,'CAST'),
-i(7200,0,'CAT'),
-i(10800,0,'EAT'),
- ]
-
-Khartoum = Khartoum()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Kigali.py b/vendor/pytz/zoneinfo/Africa/Kigali.py
deleted file mode 100644
index eaf21aa8..00000000
--- a/vendor/pytz/zoneinfo/Africa/Kigali.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Kigali.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kigali(DstTzInfo):
- '''Africa/Kigali timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Kigali'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1935,5,31,21,59,44),
- ]
-
- _transition_info = [
-i(7200,0,'LMT'),
-i(7200,0,'CAT'),
- ]
-
-Kigali = Kigali()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Kinshasa.py b/vendor/pytz/zoneinfo/Africa/Kinshasa.py
deleted file mode 100644
index abba1690..00000000
--- a/vendor/pytz/zoneinfo/Africa/Kinshasa.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Africa/Kinshasa.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Kinshasa(StaticTzInfo):
- '''Africa/Kinshasa timezone definition. See datetime.tzinfo for details'''
- zone = 'Africa/Kinshasa'
- _utcoffset = timedelta(seconds=3600)
- _tzname = 'WAT'
-
-Kinshasa = Kinshasa()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Lagos.py b/vendor/pytz/zoneinfo/Africa/Lagos.py
deleted file mode 100644
index 23a616fa..00000000
--- a/vendor/pytz/zoneinfo/Africa/Lagos.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Lagos.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lagos(DstTzInfo):
- '''Africa/Lagos timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Lagos'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,8,31,23,46,24),
- ]
-
- _transition_info = [
-i(840,0,'LMT'),
-i(3600,0,'WAT'),
- ]
-
-Lagos = Lagos()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Libreville.py b/vendor/pytz/zoneinfo/Africa/Libreville.py
deleted file mode 100644
index 26c4bdf9..00000000
--- a/vendor/pytz/zoneinfo/Africa/Libreville.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Libreville.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Libreville(DstTzInfo):
- '''Africa/Libreville timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Libreville'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,23,22,12),
- ]
-
- _transition_info = [
-i(2280,0,'LMT'),
-i(3600,0,'WAT'),
- ]
-
-Libreville = Libreville()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Lome.py b/vendor/pytz/zoneinfo/Africa/Lome.py
deleted file mode 100644
index f161dddf..00000000
--- a/vendor/pytz/zoneinfo/Africa/Lome.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Africa/Lome.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Lome(StaticTzInfo):
- '''Africa/Lome timezone definition. See datetime.tzinfo for details'''
- zone = 'Africa/Lome'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-Lome = Lome()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Luanda.py b/vendor/pytz/zoneinfo/Africa/Luanda.py
deleted file mode 100644
index 80528f6f..00000000
--- a/vendor/pytz/zoneinfo/Africa/Luanda.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Luanda.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Luanda(DstTzInfo):
- '''Africa/Luanda timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Luanda'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,25,23,7,56),
- ]
-
- _transition_info = [
-i(3120,0,'AOT'),
-i(3600,0,'WAT'),
- ]
-
-Luanda = Luanda()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Lubumbashi.py b/vendor/pytz/zoneinfo/Africa/Lubumbashi.py
deleted file mode 100644
index a9d6411f..00000000
--- a/vendor/pytz/zoneinfo/Africa/Lubumbashi.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Africa/Lubumbashi.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Lubumbashi(StaticTzInfo):
- '''Africa/Lubumbashi timezone definition. See datetime.tzinfo for details'''
- zone = 'Africa/Lubumbashi'
- _utcoffset = timedelta(seconds=7200)
- _tzname = 'CAT'
-
-Lubumbashi = Lubumbashi()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Lusaka.py b/vendor/pytz/zoneinfo/Africa/Lusaka.py
deleted file mode 100644
index cb92fb80..00000000
--- a/vendor/pytz/zoneinfo/Africa/Lusaka.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Lusaka.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lusaka(DstTzInfo):
- '''Africa/Lusaka timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Lusaka'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,22,6,52),
- ]
-
- _transition_info = [
-i(6780,0,'LMT'),
-i(7200,0,'CAT'),
- ]
-
-Lusaka = Lusaka()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Malabo.py b/vendor/pytz/zoneinfo/Africa/Malabo.py
deleted file mode 100644
index c5ec85e6..00000000
--- a/vendor/pytz/zoneinfo/Africa/Malabo.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Malabo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Malabo(DstTzInfo):
- '''Africa/Malabo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Malabo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,23,24,52),
-d(1963,12,15,0,0,0),
- ]
-
- _transition_info = [
-i(2100,0,'LMT'),
-i(0,0,'GMT'),
-i(3600,0,'WAT'),
- ]
-
-Malabo = Malabo()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Maputo.py b/vendor/pytz/zoneinfo/Africa/Maputo.py
deleted file mode 100644
index 69b83ebf..00000000
--- a/vendor/pytz/zoneinfo/Africa/Maputo.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Maputo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Maputo(DstTzInfo):
- '''Africa/Maputo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Maputo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,21,49,40),
- ]
-
- _transition_info = [
-i(7800,0,'LMT'),
-i(7200,0,'CAT'),
- ]
-
-Maputo = Maputo()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Maseru.py b/vendor/pytz/zoneinfo/Africa/Maseru.py
deleted file mode 100644
index d49b14f6..00000000
--- a/vendor/pytz/zoneinfo/Africa/Maseru.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Maseru.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Maseru(DstTzInfo):
- '''Africa/Maseru timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Maseru'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,22,10,0),
-d(1943,9,19,0,0,0),
-d(1944,3,18,23,0,0),
- ]
-
- _transition_info = [
-i(6600,0,'LMT'),
-i(7200,0,'SAST'),
-i(10800,3600,'SAST'),
-i(7200,0,'SAST'),
- ]
-
-Maseru = Maseru()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Mbabane.py b/vendor/pytz/zoneinfo/Africa/Mbabane.py
deleted file mode 100644
index caf48cc7..00000000
--- a/vendor/pytz/zoneinfo/Africa/Mbabane.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Mbabane.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mbabane(DstTzInfo):
- '''Africa/Mbabane timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Mbabane'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,21,55,36),
- ]
-
- _transition_info = [
-i(7440,0,'LMT'),
-i(7200,0,'SAST'),
- ]
-
-Mbabane = Mbabane()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Mogadishu.py b/vendor/pytz/zoneinfo/Africa/Mogadishu.py
deleted file mode 100644
index fd871e15..00000000
--- a/vendor/pytz/zoneinfo/Africa/Mogadishu.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Mogadishu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mogadishu(DstTzInfo):
- '''Africa/Mogadishu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Mogadishu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1930,12,31,21,0,0),
-d(1956,12,31,21,30,0),
- ]
-
- _transition_info = [
-i(10800,0,'EAT'),
-i(9000,0,'BEAT'),
-i(10800,0,'EAT'),
- ]
-
-Mogadishu = Mogadishu()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Monrovia.py b/vendor/pytz/zoneinfo/Africa/Monrovia.py
deleted file mode 100644
index 15a42685..00000000
--- a/vendor/pytz/zoneinfo/Africa/Monrovia.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Monrovia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Monrovia(DstTzInfo):
- '''Africa/Monrovia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Monrovia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,3,1,0,43,8),
-d(1972,5,1,0,44,30),
- ]
-
- _transition_info = [
-i(-2580,0,'MMT'),
-i(-2640,0,'LRT'),
-i(0,0,'GMT'),
- ]
-
-Monrovia = Monrovia()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Nairobi.py b/vendor/pytz/zoneinfo/Africa/Nairobi.py
deleted file mode 100644
index fbee2de7..00000000
--- a/vendor/pytz/zoneinfo/Africa/Nairobi.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Africa/Nairobi.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nairobi(DstTzInfo):
- '''Africa/Nairobi timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Nairobi'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1928,6,30,21,32,44),
-d(1929,12,31,21,0,0),
-d(1939,12,31,21,30,0),
-d(1959,12,31,21,15,15),
- ]
-
- _transition_info = [
-i(8820,0,'LMT'),
-i(10800,0,'EAT'),
-i(9000,0,'BEAT'),
-i(9900,0,'BEAUT'),
-i(10800,0,'EAT'),
- ]
-
-Nairobi = Nairobi()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Ndjamena.py b/vendor/pytz/zoneinfo/Africa/Ndjamena.py
deleted file mode 100644
index 52a0ea83..00000000
--- a/vendor/pytz/zoneinfo/Africa/Ndjamena.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Ndjamena.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ndjamena(DstTzInfo):
- '''Africa/Ndjamena timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Ndjamena'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,22,59,48),
-d(1979,10,13,23,0,0),
-d(1980,3,7,22,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'LMT'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
- ]
-
-Ndjamena = Ndjamena()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Niamey.py b/vendor/pytz/zoneinfo/Africa/Niamey.py
deleted file mode 100644
index f4ffd54d..00000000
--- a/vendor/pytz/zoneinfo/Africa/Niamey.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Niamey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Niamey(DstTzInfo):
- '''Africa/Niamey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Niamey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,23,51,32),
-d(1934,2,26,1,0,0),
-d(1960,1,1,0,0,0),
- ]
-
- _transition_info = [
-i(480,0,'LMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
-i(3600,0,'WAT'),
- ]
-
-Niamey = Niamey()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Nouakchott.py b/vendor/pytz/zoneinfo/Africa/Nouakchott.py
deleted file mode 100644
index 1c35ec79..00000000
--- a/vendor/pytz/zoneinfo/Africa/Nouakchott.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Nouakchott.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nouakchott(DstTzInfo):
- '''Africa/Nouakchott timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Nouakchott'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,1,3,48),
-d(1934,2,26,0,0,0),
-d(1960,11,28,1,0,0),
- ]
-
- _transition_info = [
-i(-3840,0,'LMT'),
-i(0,0,'GMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Nouakchott = Nouakchott()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Ouagadougou.py b/vendor/pytz/zoneinfo/Africa/Ouagadougou.py
deleted file mode 100644
index 1019d179..00000000
--- a/vendor/pytz/zoneinfo/Africa/Ouagadougou.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Ouagadougou.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ouagadougou(DstTzInfo):
- '''Africa/Ouagadougou timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Ouagadougou'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,6,4),
- ]
-
- _transition_info = [
-i(-360,0,'LMT'),
-i(0,0,'GMT'),
- ]
-
-Ouagadougou = Ouagadougou()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Porto_minus_Novo.py b/vendor/pytz/zoneinfo/Africa/Porto_minus_Novo.py
deleted file mode 100644
index 867c468f..00000000
--- a/vendor/pytz/zoneinfo/Africa/Porto_minus_Novo.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Africa/Porto_minus_Novo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Porto_minus_Novo(DstTzInfo):
- '''Africa/Porto_minus_Novo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Porto_minus_Novo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,23,49,32),
-d(1934,2,26,0,0,0),
- ]
-
- _transition_info = [
-i(600,0,'LMT'),
-i(0,0,'GMT'),
-i(3600,0,'WAT'),
- ]
-
-Porto_minus_Novo = Porto_minus_Novo()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Sao_Tome.py b/vendor/pytz/zoneinfo/Africa/Sao_Tome.py
deleted file mode 100644
index 427b6d00..00000000
--- a/vendor/pytz/zoneinfo/Africa/Sao_Tome.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Africa/Sao_Tome.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sao_Tome(DstTzInfo):
- '''Africa/Sao_Tome timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Sao_Tome'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,36,32),
- ]
-
- _transition_info = [
-i(-2220,0,'LMT'),
-i(0,0,'GMT'),
- ]
-
-Sao_Tome = Sao_Tome()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Timbuktu.py b/vendor/pytz/zoneinfo/Africa/Timbuktu.py
deleted file mode 100644
index adc88f9a..00000000
--- a/vendor/pytz/zoneinfo/Africa/Timbuktu.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Africa/Timbuktu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Timbuktu(DstTzInfo):
- '''Africa/Timbuktu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Timbuktu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,32,0),
-d(1934,2,26,0,0,0),
-d(1960,6,20,1,0,0),
- ]
-
- _transition_info = [
-i(-1920,0,'LMT'),
-i(0,0,'GMT'),
-i(-3600,0,'WAT'),
-i(0,0,'GMT'),
- ]
-
-Timbuktu = Timbuktu()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Tripoli.py b/vendor/pytz/zoneinfo/Africa/Tripoli.py
deleted file mode 100644
index d4752dc9..00000000
--- a/vendor/pytz/zoneinfo/Africa/Tripoli.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for Africa/Tripoli.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tripoli(DstTzInfo):
- '''Africa/Tripoli timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Tripoli'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,23,7,16),
-d(1951,10,14,1,0,0),
-d(1951,12,31,22,0,0),
-d(1953,10,9,1,0,0),
-d(1953,12,31,22,0,0),
-d(1955,9,29,23,0,0),
-d(1955,12,31,22,0,0),
-d(1958,12,31,23,0,0),
-d(1981,12,31,22,0,0),
-d(1982,3,31,23,0,0),
-d(1982,9,30,22,0,0),
-d(1983,3,31,23,0,0),
-d(1983,9,30,22,0,0),
-d(1984,3,31,23,0,0),
-d(1984,9,30,22,0,0),
-d(1985,4,5,23,0,0),
-d(1985,9,30,22,0,0),
-d(1986,4,3,23,0,0),
-d(1986,10,2,22,0,0),
-d(1987,3,31,23,0,0),
-d(1987,9,30,22,0,0),
-d(1988,3,31,23,0,0),
-d(1988,9,30,22,0,0),
-d(1989,3,31,23,0,0),
-d(1989,9,30,22,0,0),
-d(1990,5,3,23,0,0),
-d(1996,9,29,22,0,0),
-d(1997,4,3,23,0,0),
-d(1997,10,3,22,0,0),
- ]
-
- _transition_info = [
-i(3180,0,'LMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,0,'EET'),
- ]
-
-Tripoli = Tripoli()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Tunis.py b/vendor/pytz/zoneinfo/Africa/Tunis.py
deleted file mode 100644
index b5346855..00000000
--- a/vendor/pytz/zoneinfo/Africa/Tunis.py
+++ /dev/null
@@ -1,202 +0,0 @@
-'''tzinfo timezone information for Africa/Tunis.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tunis(DstTzInfo):
- '''Africa/Tunis timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Tunis'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,3,10,23,50,39),
-d(1939,4,15,22,0,0),
-d(1939,11,18,22,0,0),
-d(1940,2,25,22,0,0),
-d(1941,10,5,22,0,0),
-d(1942,3,8,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,4,17,0,0,0),
-d(1943,4,25,1,0,0),
-d(1943,10,4,0,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,7,22,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,15,22,0,0),
-d(1977,4,29,23,0,0),
-d(1977,9,23,23,0,0),
-d(1978,4,30,23,0,0),
-d(1978,9,30,23,0,0),
-d(1988,5,31,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,4,30,23,0,0),
-d(1990,9,29,23,0,0),
-d(2005,4,30,23,0,0),
-d(2005,9,30,0,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(540,0,'PMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Tunis = Tunis()
-
diff --git a/vendor/pytz/zoneinfo/Africa/Windhoek.py b/vendor/pytz/zoneinfo/Africa/Windhoek.py
deleted file mode 100644
index 58bca755..00000000
--- a/vendor/pytz/zoneinfo/Africa/Windhoek.py
+++ /dev/null
@@ -1,204 +0,0 @@
-'''tzinfo timezone information for Africa/Windhoek.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Windhoek(DstTzInfo):
- '''Africa/Windhoek timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Africa/Windhoek'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1903,2,28,22,30,0),
-d(1942,9,20,0,0,0),
-d(1943,3,20,23,0,0),
-d(1990,3,20,22,0,0),
-d(1994,4,2,22,0,0),
-d(1994,9,4,1,0,0),
-d(1995,4,2,0,0,0),
-d(1995,9,3,1,0,0),
-d(1996,4,7,0,0,0),
-d(1996,9,1,1,0,0),
-d(1997,4,6,0,0,0),
-d(1997,9,7,1,0,0),
-d(1998,4,5,0,0,0),
-d(1998,9,6,1,0,0),
-d(1999,4,4,0,0,0),
-d(1999,9,5,1,0,0),
-d(2000,4,2,0,0,0),
-d(2000,9,3,1,0,0),
-d(2001,4,1,0,0,0),
-d(2001,9,2,1,0,0),
-d(2002,4,7,0,0,0),
-d(2002,9,1,1,0,0),
-d(2003,4,6,0,0,0),
-d(2003,9,7,1,0,0),
-d(2004,4,4,0,0,0),
-d(2004,9,5,1,0,0),
-d(2005,4,3,0,0,0),
-d(2005,9,4,1,0,0),
-d(2006,4,2,0,0,0),
-d(2006,9,3,1,0,0),
-d(2007,4,1,0,0,0),
-d(2007,9,2,1,0,0),
-d(2008,4,6,0,0,0),
-d(2008,9,7,1,0,0),
-d(2009,4,5,0,0,0),
-d(2009,9,6,1,0,0),
-d(2010,4,4,0,0,0),
-d(2010,9,5,1,0,0),
-d(2011,4,3,0,0,0),
-d(2011,9,4,1,0,0),
-d(2012,4,1,0,0,0),
-d(2012,9,2,1,0,0),
-d(2013,4,7,0,0,0),
-d(2013,9,1,1,0,0),
-d(2014,4,6,0,0,0),
-d(2014,9,7,1,0,0),
-d(2015,4,5,0,0,0),
-d(2015,9,6,1,0,0),
-d(2016,4,3,0,0,0),
-d(2016,9,4,1,0,0),
-d(2017,4,2,0,0,0),
-d(2017,9,3,1,0,0),
-d(2018,4,1,0,0,0),
-d(2018,9,2,1,0,0),
-d(2019,4,7,0,0,0),
-d(2019,9,1,1,0,0),
-d(2020,4,5,0,0,0),
-d(2020,9,6,1,0,0),
-d(2021,4,4,0,0,0),
-d(2021,9,5,1,0,0),
-d(2022,4,3,0,0,0),
-d(2022,9,4,1,0,0),
-d(2023,4,2,0,0,0),
-d(2023,9,3,1,0,0),
-d(2024,4,7,0,0,0),
-d(2024,9,1,1,0,0),
-d(2025,4,6,0,0,0),
-d(2025,9,7,1,0,0),
-d(2026,4,5,0,0,0),
-d(2026,9,6,1,0,0),
-d(2027,4,4,0,0,0),
-d(2027,9,5,1,0,0),
-d(2028,4,2,0,0,0),
-d(2028,9,3,1,0,0),
-d(2029,4,1,0,0,0),
-d(2029,9,2,1,0,0),
-d(2030,4,7,0,0,0),
-d(2030,9,1,1,0,0),
-d(2031,4,6,0,0,0),
-d(2031,9,7,1,0,0),
-d(2032,4,4,0,0,0),
-d(2032,9,5,1,0,0),
-d(2033,4,3,0,0,0),
-d(2033,9,4,1,0,0),
-d(2034,4,2,0,0,0),
-d(2034,9,3,1,0,0),
-d(2035,4,1,0,0,0),
-d(2035,9,2,1,0,0),
-d(2036,4,6,0,0,0),
-d(2036,9,7,1,0,0),
-d(2037,4,5,0,0,0),
-d(2037,9,6,1,0,0),
- ]
-
- _transition_info = [
-i(5400,0,'SWAT'),
-i(7200,0,'SAST'),
-i(10800,3600,'SAST'),
-i(7200,0,'SAST'),
-i(7200,0,'CAT'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
-i(3600,0,'WAT'),
-i(7200,3600,'WAST'),
- ]
-
-Windhoek = Windhoek()
-
diff --git a/vendor/pytz/zoneinfo/America/Adak.py b/vendor/pytz/zoneinfo/America/Adak.py
deleted file mode 100644
index 9748947b..00000000
--- a/vendor/pytz/zoneinfo/America/Adak.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for America/Adak.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Adak(DstTzInfo):
- '''America/Adak timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Adak'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,13,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,12,0,0),
-d(1967,4,1,11,0,0),
-d(1969,4,27,13,0,0),
-d(1969,10,26,12,0,0),
-d(1970,4,26,13,0,0),
-d(1970,10,25,12,0,0),
-d(1971,4,25,13,0,0),
-d(1971,10,31,12,0,0),
-d(1972,4,30,13,0,0),
-d(1972,10,29,12,0,0),
-d(1973,4,29,13,0,0),
-d(1973,10,28,12,0,0),
-d(1974,1,6,13,0,0),
-d(1974,10,27,12,0,0),
-d(1975,2,23,13,0,0),
-d(1975,10,26,12,0,0),
-d(1976,4,25,13,0,0),
-d(1976,10,31,12,0,0),
-d(1977,4,24,13,0,0),
-d(1977,10,30,12,0,0),
-d(1978,4,30,13,0,0),
-d(1978,10,29,12,0,0),
-d(1979,4,29,13,0,0),
-d(1979,10,28,12,0,0),
-d(1980,4,27,13,0,0),
-d(1980,10,26,12,0,0),
-d(1981,4,26,13,0,0),
-d(1981,10,25,12,0,0),
-d(1982,4,25,13,0,0),
-d(1982,10,31,12,0,0),
-d(1983,4,24,13,0,0),
-d(1983,10,30,12,0,0),
-d(1983,11,30,10,0,0),
-d(1984,4,29,12,0,0),
-d(1984,10,28,11,0,0),
-d(1985,4,28,12,0,0),
-d(1985,10,27,11,0,0),
-d(1986,4,27,12,0,0),
-d(1986,10,26,11,0,0),
-d(1987,4,5,12,0,0),
-d(1987,10,25,11,0,0),
-d(1988,4,3,12,0,0),
-d(1988,10,30,11,0,0),
-d(1989,4,2,12,0,0),
-d(1989,10,29,11,0,0),
-d(1990,4,1,12,0,0),
-d(1990,10,28,11,0,0),
-d(1991,4,7,12,0,0),
-d(1991,10,27,11,0,0),
-d(1992,4,5,12,0,0),
-d(1992,10,25,11,0,0),
-d(1993,4,4,12,0,0),
-d(1993,10,31,11,0,0),
-d(1994,4,3,12,0,0),
-d(1994,10,30,11,0,0),
-d(1995,4,2,12,0,0),
-d(1995,10,29,11,0,0),
-d(1996,4,7,12,0,0),
-d(1996,10,27,11,0,0),
-d(1997,4,6,12,0,0),
-d(1997,10,26,11,0,0),
-d(1998,4,5,12,0,0),
-d(1998,10,25,11,0,0),
-d(1999,4,4,12,0,0),
-d(1999,10,31,11,0,0),
-d(2000,4,2,12,0,0),
-d(2000,10,29,11,0,0),
-d(2001,4,1,12,0,0),
-d(2001,10,28,11,0,0),
-d(2002,4,7,12,0,0),
-d(2002,10,27,11,0,0),
-d(2003,4,6,12,0,0),
-d(2003,10,26,11,0,0),
-d(2004,4,4,12,0,0),
-d(2004,10,31,11,0,0),
-d(2005,4,3,12,0,0),
-d(2005,10,30,11,0,0),
-d(2006,4,2,12,0,0),
-d(2006,10,29,11,0,0),
-d(2007,3,11,12,0,0),
-d(2007,11,4,11,0,0),
-d(2008,3,9,12,0,0),
-d(2008,11,2,11,0,0),
-d(2009,3,8,12,0,0),
-d(2009,11,1,11,0,0),
-d(2010,3,14,12,0,0),
-d(2010,11,7,11,0,0),
-d(2011,3,13,12,0,0),
-d(2011,11,6,11,0,0),
-d(2012,3,11,12,0,0),
-d(2012,11,4,11,0,0),
-d(2013,3,10,12,0,0),
-d(2013,11,3,11,0,0),
-d(2014,3,9,12,0,0),
-d(2014,11,2,11,0,0),
-d(2015,3,8,12,0,0),
-d(2015,11,1,11,0,0),
-d(2016,3,13,12,0,0),
-d(2016,11,6,11,0,0),
-d(2017,3,12,12,0,0),
-d(2017,11,5,11,0,0),
-d(2018,3,11,12,0,0),
-d(2018,11,4,11,0,0),
-d(2019,3,10,12,0,0),
-d(2019,11,3,11,0,0),
-d(2020,3,8,12,0,0),
-d(2020,11,1,11,0,0),
-d(2021,3,14,12,0,0),
-d(2021,11,7,11,0,0),
-d(2022,3,13,12,0,0),
-d(2022,11,6,11,0,0),
-d(2023,3,12,12,0,0),
-d(2023,11,5,11,0,0),
-d(2024,3,10,12,0,0),
-d(2024,11,3,11,0,0),
-d(2025,3,9,12,0,0),
-d(2025,11,2,11,0,0),
-d(2026,3,8,12,0,0),
-d(2026,11,1,11,0,0),
-d(2027,3,14,12,0,0),
-d(2027,11,7,11,0,0),
-d(2028,3,12,12,0,0),
-d(2028,11,5,11,0,0),
-d(2029,3,11,12,0,0),
-d(2029,11,4,11,0,0),
-d(2030,3,10,12,0,0),
-d(2030,11,3,11,0,0),
-d(2031,3,9,12,0,0),
-d(2031,11,2,11,0,0),
-d(2032,3,14,12,0,0),
-d(2032,11,7,11,0,0),
-d(2033,3,13,12,0,0),
-d(2033,11,6,11,0,0),
-d(2034,3,12,12,0,0),
-d(2034,11,5,11,0,0),
-d(2035,3,11,12,0,0),
-d(2035,11,4,11,0,0),
-d(2036,3,9,12,0,0),
-d(2036,11,2,11,0,0),
-d(2037,3,8,12,0,0),
-d(2037,11,1,11,0,0),
- ]
-
- _transition_info = [
-i(-39600,0,'NST'),
-i(-36000,3600,'NWT'),
-i(-36000,3600,'NPT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-36000,0,'AHST'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
- ]
-
-Adak = Adak()
-
diff --git a/vendor/pytz/zoneinfo/America/Anchorage.py b/vendor/pytz/zoneinfo/America/Anchorage.py
deleted file mode 100644
index 869a8829..00000000
--- a/vendor/pytz/zoneinfo/America/Anchorage.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for America/Anchorage.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Anchorage(DstTzInfo):
- '''America/Anchorage timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Anchorage'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,12,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,11,0,0),
-d(1967,4,1,10,0,0),
-d(1969,4,27,12,0,0),
-d(1969,10,26,11,0,0),
-d(1970,4,26,12,0,0),
-d(1970,10,25,11,0,0),
-d(1971,4,25,12,0,0),
-d(1971,10,31,11,0,0),
-d(1972,4,30,12,0,0),
-d(1972,10,29,11,0,0),
-d(1973,4,29,12,0,0),
-d(1973,10,28,11,0,0),
-d(1974,1,6,12,0,0),
-d(1974,10,27,11,0,0),
-d(1975,2,23,12,0,0),
-d(1975,10,26,11,0,0),
-d(1976,4,25,12,0,0),
-d(1976,10,31,11,0,0),
-d(1977,4,24,12,0,0),
-d(1977,10,30,11,0,0),
-d(1978,4,30,12,0,0),
-d(1978,10,29,11,0,0),
-d(1979,4,29,12,0,0),
-d(1979,10,28,11,0,0),
-d(1980,4,27,12,0,0),
-d(1980,10,26,11,0,0),
-d(1981,4,26,12,0,0),
-d(1981,10,25,11,0,0),
-d(1982,4,25,12,0,0),
-d(1982,10,31,11,0,0),
-d(1983,4,24,12,0,0),
-d(1983,10,30,11,0,0),
-d(1983,11,30,9,0,0),
-d(1984,4,29,11,0,0),
-d(1984,10,28,10,0,0),
-d(1985,4,28,11,0,0),
-d(1985,10,27,10,0,0),
-d(1986,4,27,11,0,0),
-d(1986,10,26,10,0,0),
-d(1987,4,5,11,0,0),
-d(1987,10,25,10,0,0),
-d(1988,4,3,11,0,0),
-d(1988,10,30,10,0,0),
-d(1989,4,2,11,0,0),
-d(1989,10,29,10,0,0),
-d(1990,4,1,11,0,0),
-d(1990,10,28,10,0,0),
-d(1991,4,7,11,0,0),
-d(1991,10,27,10,0,0),
-d(1992,4,5,11,0,0),
-d(1992,10,25,10,0,0),
-d(1993,4,4,11,0,0),
-d(1993,10,31,10,0,0),
-d(1994,4,3,11,0,0),
-d(1994,10,30,10,0,0),
-d(1995,4,2,11,0,0),
-d(1995,10,29,10,0,0),
-d(1996,4,7,11,0,0),
-d(1996,10,27,10,0,0),
-d(1997,4,6,11,0,0),
-d(1997,10,26,10,0,0),
-d(1998,4,5,11,0,0),
-d(1998,10,25,10,0,0),
-d(1999,4,4,11,0,0),
-d(1999,10,31,10,0,0),
-d(2000,4,2,11,0,0),
-d(2000,10,29,10,0,0),
-d(2001,4,1,11,0,0),
-d(2001,10,28,10,0,0),
-d(2002,4,7,11,0,0),
-d(2002,10,27,10,0,0),
-d(2003,4,6,11,0,0),
-d(2003,10,26,10,0,0),
-d(2004,4,4,11,0,0),
-d(2004,10,31,10,0,0),
-d(2005,4,3,11,0,0),
-d(2005,10,30,10,0,0),
-d(2006,4,2,11,0,0),
-d(2006,10,29,10,0,0),
-d(2007,3,11,11,0,0),
-d(2007,11,4,10,0,0),
-d(2008,3,9,11,0,0),
-d(2008,11,2,10,0,0),
-d(2009,3,8,11,0,0),
-d(2009,11,1,10,0,0),
-d(2010,3,14,11,0,0),
-d(2010,11,7,10,0,0),
-d(2011,3,13,11,0,0),
-d(2011,11,6,10,0,0),
-d(2012,3,11,11,0,0),
-d(2012,11,4,10,0,0),
-d(2013,3,10,11,0,0),
-d(2013,11,3,10,0,0),
-d(2014,3,9,11,0,0),
-d(2014,11,2,10,0,0),
-d(2015,3,8,11,0,0),
-d(2015,11,1,10,0,0),
-d(2016,3,13,11,0,0),
-d(2016,11,6,10,0,0),
-d(2017,3,12,11,0,0),
-d(2017,11,5,10,0,0),
-d(2018,3,11,11,0,0),
-d(2018,11,4,10,0,0),
-d(2019,3,10,11,0,0),
-d(2019,11,3,10,0,0),
-d(2020,3,8,11,0,0),
-d(2020,11,1,10,0,0),
-d(2021,3,14,11,0,0),
-d(2021,11,7,10,0,0),
-d(2022,3,13,11,0,0),
-d(2022,11,6,10,0,0),
-d(2023,3,12,11,0,0),
-d(2023,11,5,10,0,0),
-d(2024,3,10,11,0,0),
-d(2024,11,3,10,0,0),
-d(2025,3,9,11,0,0),
-d(2025,11,2,10,0,0),
-d(2026,3,8,11,0,0),
-d(2026,11,1,10,0,0),
-d(2027,3,14,11,0,0),
-d(2027,11,7,10,0,0),
-d(2028,3,12,11,0,0),
-d(2028,11,5,10,0,0),
-d(2029,3,11,11,0,0),
-d(2029,11,4,10,0,0),
-d(2030,3,10,11,0,0),
-d(2030,11,3,10,0,0),
-d(2031,3,9,11,0,0),
-d(2031,11,2,10,0,0),
-d(2032,3,14,11,0,0),
-d(2032,11,7,10,0,0),
-d(2033,3,13,11,0,0),
-d(2033,11,6,10,0,0),
-d(2034,3,12,11,0,0),
-d(2034,11,5,10,0,0),
-d(2035,3,11,11,0,0),
-d(2035,11,4,10,0,0),
-d(2036,3,9,11,0,0),
-d(2036,11,2,10,0,0),
-d(2037,3,8,11,0,0),
-d(2037,11,1,10,0,0),
- ]
-
- _transition_info = [
-i(-36000,0,'CAT'),
-i(-32400,3600,'CAWT'),
-i(-32400,3600,'CAPT'),
-i(-36000,0,'CAT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-32400,0,'YST'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
- ]
-
-Anchorage = Anchorage()
-
diff --git a/vendor/pytz/zoneinfo/America/Anguilla.py b/vendor/pytz/zoneinfo/America/Anguilla.py
deleted file mode 100644
index e72c84f8..00000000
--- a/vendor/pytz/zoneinfo/America/Anguilla.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Anguilla.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Anguilla(DstTzInfo):
- '''America/Anguilla timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Anguilla'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,2,4,12,16),
- ]
-
- _transition_info = [
-i(-15120,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Anguilla = Anguilla()
-
diff --git a/vendor/pytz/zoneinfo/America/Antigua.py b/vendor/pytz/zoneinfo/America/Antigua.py
deleted file mode 100644
index 7515f841..00000000
--- a/vendor/pytz/zoneinfo/America/Antigua.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/Antigua.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Antigua(DstTzInfo):
- '''America/Antigua timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Antigua'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,2,4,7,12),
-d(1951,1,1,5,0,0),
- ]
-
- _transition_info = [
-i(-14820,0,'LMT'),
-i(-18000,0,'EST'),
-i(-14400,0,'AST'),
- ]
-
-Antigua = Antigua()
-
diff --git a/vendor/pytz/zoneinfo/America/Araguaina.py b/vendor/pytz/zoneinfo/America/Araguaina.py
deleted file mode 100644
index 60e69fa2..00000000
--- a/vendor/pytz/zoneinfo/America/Araguaina.py
+++ /dev/null
@@ -1,118 +0,0 @@
-'''tzinfo timezone information for America/Araguaina.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Araguaina(DstTzInfo):
- '''America/Araguaina timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Araguaina'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,12,48),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1995,10,15,3,0,0),
-d(1996,2,11,2,0,0),
-d(1996,10,6,3,0,0),
-d(1997,2,16,2,0,0),
-d(1997,10,6,3,0,0),
-d(1998,3,1,2,0,0),
-d(1998,10,11,3,0,0),
-d(1999,2,21,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2001,2,18,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
-d(2002,11,3,3,0,0),
-d(2003,2,16,2,0,0),
- ]
-
- _transition_info = [
-i(-11580,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Araguaina = Araguaina()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Buenos_Aires.py b/vendor/pytz/zoneinfo/America/Argentina/Buenos_Aires.py
deleted file mode 100644
index 0862e0f6..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Buenos_Aires.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Buenos_Aires.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Buenos_Aires(DstTzInfo):
- '''America/Argentina/Buenos_Aires timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Buenos_Aires'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Buenos_Aires = Buenos_Aires()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Catamarca.py b/vendor/pytz/zoneinfo/America/Argentina/Catamarca.py
deleted file mode 100644
index f12423a3..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Catamarca.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Catamarca.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Catamarca(DstTzInfo):
- '''America/Argentina/Catamarca timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Catamarca'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Catamarca = Catamarca()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/ComodRivadavia.py b/vendor/pytz/zoneinfo/America/Argentina/ComodRivadavia.py
deleted file mode 100644
index 12a1e871..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/ComodRivadavia.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/ComodRivadavia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class ComodRivadavia(DstTzInfo):
- '''America/Argentina/ComodRivadavia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/ComodRivadavia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-ComodRivadavia = ComodRivadavia()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Cordoba.py b/vendor/pytz/zoneinfo/America/Argentina/Cordoba.py
deleted file mode 100644
index c880297a..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Cordoba.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Cordoba.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cordoba(DstTzInfo):
- '''America/Argentina/Cordoba timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Cordoba'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Cordoba = Cordoba()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Jujuy.py b/vendor/pytz/zoneinfo/America/Argentina/Jujuy.py
deleted file mode 100644
index b6fe1dd3..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Jujuy.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Jujuy.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jujuy(DstTzInfo):
- '''America/Argentina/Jujuy timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Jujuy'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,28,4,0,0),
-d(1991,3,17,3,0,0),
-d(1991,10,6,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Jujuy = Jujuy()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/La_Rioja.py b/vendor/pytz/zoneinfo/America/Argentina/La_Rioja.py
deleted file mode 100644
index 548dd2f2..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/La_Rioja.py
+++ /dev/null
@@ -1,138 +0,0 @@
-'''tzinfo timezone information for America/Argentina/La_Rioja.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class La_Rioja(DstTzInfo):
- '''America/Argentina/La_Rioja timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/La_Rioja'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,1,2,0,0),
-d(1991,5,7,4,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-La_Rioja = La_Rioja()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Mendoza.py b/vendor/pytz/zoneinfo/America/Argentina/Mendoza.py
deleted file mode 100644
index e699aa9d..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Mendoza.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Mendoza.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mendoza(DstTzInfo):
- '''America/Argentina/Mendoza timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Mendoza'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,15,4,0,0),
-d(1991,3,1,3,0,0),
-d(1991,10,15,4,0,0),
-d(1992,3,1,3,0,0),
-d(1992,10,18,4,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,5,23,3,0,0),
-d(2004,9,26,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Mendoza = Mendoza()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Rio_Gallegos.py b/vendor/pytz/zoneinfo/America/Argentina/Rio_Gallegos.py
deleted file mode 100644
index 2c234469..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Rio_Gallegos.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Rio_Gallegos.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rio_Gallegos(DstTzInfo):
- '''America/Argentina/Rio_Gallegos timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Rio_Gallegos'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Rio_Gallegos = Rio_Gallegos()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/San_Juan.py b/vendor/pytz/zoneinfo/America/Argentina/San_Juan.py
deleted file mode 100644
index cce3e874..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/San_Juan.py
+++ /dev/null
@@ -1,138 +0,0 @@
-'''tzinfo timezone information for America/Argentina/San_Juan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class San_Juan(DstTzInfo):
- '''America/Argentina/San_Juan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/San_Juan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,1,2,0,0),
-d(1991,5,7,4,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,5,31,3,0,0),
-d(2004,7,25,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-San_Juan = San_Juan()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Tucuman.py b/vendor/pytz/zoneinfo/America/Argentina/Tucuman.py
deleted file mode 100644
index 093eeaa7..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Tucuman.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Tucuman.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tucuman(DstTzInfo):
- '''America/Argentina/Tucuman timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Tucuman'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,13,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Tucuman = Tucuman()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/Ushuaia.py b/vendor/pytz/zoneinfo/America/Argentina/Ushuaia.py
deleted file mode 100644
index 37e681c8..00000000
--- a/vendor/pytz/zoneinfo/America/Argentina/Ushuaia.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Argentina/Ushuaia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ushuaia(DstTzInfo):
- '''America/Argentina/Ushuaia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Argentina/Ushuaia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,5,30,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Ushuaia = Ushuaia()
-
diff --git a/vendor/pytz/zoneinfo/America/Argentina/__init__.py b/vendor/pytz/zoneinfo/America/Argentina/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/America/Aruba.py b/vendor/pytz/zoneinfo/America/Aruba.py
deleted file mode 100644
index 6f7afb01..00000000
--- a/vendor/pytz/zoneinfo/America/Aruba.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/Aruba.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Aruba(DstTzInfo):
- '''America/Aruba timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Aruba'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,12,4,40,24),
-d(1965,1,1,4,30,0),
- ]
-
- _transition_info = [
-i(-16800,0,'LMT'),
-i(-16200,0,'ANT'),
-i(-14400,0,'AST'),
- ]
-
-Aruba = Aruba()
-
diff --git a/vendor/pytz/zoneinfo/America/Asuncion.py b/vendor/pytz/zoneinfo/America/Asuncion.py
deleted file mode 100644
index 472182dd..00000000
--- a/vendor/pytz/zoneinfo/America/Asuncion.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for America/Asuncion.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Asuncion(DstTzInfo):
- '''America/Asuncion timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Asuncion'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1931,10,10,3,50,40),
-d(1972,10,1,4,0,0),
-d(1974,4,1,3,0,0),
-d(1975,10,1,4,0,0),
-d(1976,3,1,3,0,0),
-d(1976,10,1,4,0,0),
-d(1977,3,1,3,0,0),
-d(1977,10,1,4,0,0),
-d(1978,3,1,3,0,0),
-d(1978,10,1,4,0,0),
-d(1979,4,1,3,0,0),
-d(1979,10,1,4,0,0),
-d(1980,4,1,3,0,0),
-d(1980,10,1,4,0,0),
-d(1981,4,1,3,0,0),
-d(1981,10,1,4,0,0),
-d(1982,4,1,3,0,0),
-d(1982,10,1,4,0,0),
-d(1983,4,1,3,0,0),
-d(1983,10,1,4,0,0),
-d(1984,4,1,3,0,0),
-d(1984,10,1,4,0,0),
-d(1985,4,1,3,0,0),
-d(1985,10,1,4,0,0),
-d(1986,4,1,3,0,0),
-d(1986,10,1,4,0,0),
-d(1987,4,1,3,0,0),
-d(1987,10,1,4,0,0),
-d(1988,4,1,3,0,0),
-d(1988,10,1,4,0,0),
-d(1989,4,1,3,0,0),
-d(1989,10,22,4,0,0),
-d(1990,4,1,3,0,0),
-d(1990,10,1,4,0,0),
-d(1991,4,1,3,0,0),
-d(1991,10,6,4,0,0),
-d(1992,3,1,3,0,0),
-d(1992,10,5,4,0,0),
-d(1993,3,31,3,0,0),
-d(1993,10,1,4,0,0),
-d(1994,2,27,3,0,0),
-d(1994,10,1,4,0,0),
-d(1995,2,26,3,0,0),
-d(1995,10,1,4,0,0),
-d(1996,3,1,3,0,0),
-d(1996,10,6,4,0,0),
-d(1997,2,23,3,0,0),
-d(1997,10,5,4,0,0),
-d(1998,3,1,3,0,0),
-d(1998,10,4,4,0,0),
-d(1999,3,7,3,0,0),
-d(1999,10,3,4,0,0),
-d(2000,3,5,3,0,0),
-d(2000,10,1,4,0,0),
-d(2001,3,4,3,0,0),
-d(2001,10,7,4,0,0),
-d(2002,4,7,3,0,0),
-d(2002,9,1,4,0,0),
-d(2003,4,6,3,0,0),
-d(2003,9,7,4,0,0),
-d(2004,4,4,3,0,0),
-d(2004,10,17,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,16,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,21,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,19,4,0,0),
-d(2009,3,8,3,0,0),
-d(2009,10,18,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,17,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,16,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,21,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,20,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,19,4,0,0),
-d(2015,3,8,3,0,0),
-d(2015,10,18,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,16,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,21,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,20,4,0,0),
-d(2020,3,8,3,0,0),
-d(2020,10,18,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,17,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,16,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,20,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,19,4,0,0),
-d(2026,3,8,3,0,0),
-d(2026,10,18,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,17,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,21,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,20,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,19,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,17,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,16,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,21,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,19,4,0,0),
-d(2037,3,8,3,0,0),
-d(2037,10,18,4,0,0),
- ]
-
- _transition_info = [
-i(-13860,0,'AMT'),
-i(-14400,0,'PYT'),
-i(-10800,0,'PYT'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
-i(-14400,0,'PYT'),
-i(-10800,3600,'PYST'),
- ]
-
-Asuncion = Asuncion()
-
diff --git a/vendor/pytz/zoneinfo/America/Atikokan.py b/vendor/pytz/zoneinfo/America/Atikokan.py
deleted file mode 100644
index 07bc0a12..00000000
--- a/vendor/pytz/zoneinfo/America/Atikokan.py
+++ /dev/null
@@ -1,32 +0,0 @@
-'''tzinfo timezone information for America/Atikokan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Atikokan(DstTzInfo):
- '''America/Atikokan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Atikokan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,31,7,0,0),
-d(1940,9,29,6,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-18000,0,'EST'),
- ]
-
-Atikokan = Atikokan()
-
diff --git a/vendor/pytz/zoneinfo/America/Atka.py b/vendor/pytz/zoneinfo/America/Atka.py
deleted file mode 100644
index ab5d0dcb..00000000
--- a/vendor/pytz/zoneinfo/America/Atka.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for America/Atka.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Atka(DstTzInfo):
- '''America/Atka timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Atka'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,13,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,12,0,0),
-d(1967,4,1,11,0,0),
-d(1969,4,27,13,0,0),
-d(1969,10,26,12,0,0),
-d(1970,4,26,13,0,0),
-d(1970,10,25,12,0,0),
-d(1971,4,25,13,0,0),
-d(1971,10,31,12,0,0),
-d(1972,4,30,13,0,0),
-d(1972,10,29,12,0,0),
-d(1973,4,29,13,0,0),
-d(1973,10,28,12,0,0),
-d(1974,1,6,13,0,0),
-d(1974,10,27,12,0,0),
-d(1975,2,23,13,0,0),
-d(1975,10,26,12,0,0),
-d(1976,4,25,13,0,0),
-d(1976,10,31,12,0,0),
-d(1977,4,24,13,0,0),
-d(1977,10,30,12,0,0),
-d(1978,4,30,13,0,0),
-d(1978,10,29,12,0,0),
-d(1979,4,29,13,0,0),
-d(1979,10,28,12,0,0),
-d(1980,4,27,13,0,0),
-d(1980,10,26,12,0,0),
-d(1981,4,26,13,0,0),
-d(1981,10,25,12,0,0),
-d(1982,4,25,13,0,0),
-d(1982,10,31,12,0,0),
-d(1983,4,24,13,0,0),
-d(1983,10,30,12,0,0),
-d(1983,11,30,10,0,0),
-d(1984,4,29,12,0,0),
-d(1984,10,28,11,0,0),
-d(1985,4,28,12,0,0),
-d(1985,10,27,11,0,0),
-d(1986,4,27,12,0,0),
-d(1986,10,26,11,0,0),
-d(1987,4,5,12,0,0),
-d(1987,10,25,11,0,0),
-d(1988,4,3,12,0,0),
-d(1988,10,30,11,0,0),
-d(1989,4,2,12,0,0),
-d(1989,10,29,11,0,0),
-d(1990,4,1,12,0,0),
-d(1990,10,28,11,0,0),
-d(1991,4,7,12,0,0),
-d(1991,10,27,11,0,0),
-d(1992,4,5,12,0,0),
-d(1992,10,25,11,0,0),
-d(1993,4,4,12,0,0),
-d(1993,10,31,11,0,0),
-d(1994,4,3,12,0,0),
-d(1994,10,30,11,0,0),
-d(1995,4,2,12,0,0),
-d(1995,10,29,11,0,0),
-d(1996,4,7,12,0,0),
-d(1996,10,27,11,0,0),
-d(1997,4,6,12,0,0),
-d(1997,10,26,11,0,0),
-d(1998,4,5,12,0,0),
-d(1998,10,25,11,0,0),
-d(1999,4,4,12,0,0),
-d(1999,10,31,11,0,0),
-d(2000,4,2,12,0,0),
-d(2000,10,29,11,0,0),
-d(2001,4,1,12,0,0),
-d(2001,10,28,11,0,0),
-d(2002,4,7,12,0,0),
-d(2002,10,27,11,0,0),
-d(2003,4,6,12,0,0),
-d(2003,10,26,11,0,0),
-d(2004,4,4,12,0,0),
-d(2004,10,31,11,0,0),
-d(2005,4,3,12,0,0),
-d(2005,10,30,11,0,0),
-d(2006,4,2,12,0,0),
-d(2006,10,29,11,0,0),
-d(2007,3,11,12,0,0),
-d(2007,11,4,11,0,0),
-d(2008,3,9,12,0,0),
-d(2008,11,2,11,0,0),
-d(2009,3,8,12,0,0),
-d(2009,11,1,11,0,0),
-d(2010,3,14,12,0,0),
-d(2010,11,7,11,0,0),
-d(2011,3,13,12,0,0),
-d(2011,11,6,11,0,0),
-d(2012,3,11,12,0,0),
-d(2012,11,4,11,0,0),
-d(2013,3,10,12,0,0),
-d(2013,11,3,11,0,0),
-d(2014,3,9,12,0,0),
-d(2014,11,2,11,0,0),
-d(2015,3,8,12,0,0),
-d(2015,11,1,11,0,0),
-d(2016,3,13,12,0,0),
-d(2016,11,6,11,0,0),
-d(2017,3,12,12,0,0),
-d(2017,11,5,11,0,0),
-d(2018,3,11,12,0,0),
-d(2018,11,4,11,0,0),
-d(2019,3,10,12,0,0),
-d(2019,11,3,11,0,0),
-d(2020,3,8,12,0,0),
-d(2020,11,1,11,0,0),
-d(2021,3,14,12,0,0),
-d(2021,11,7,11,0,0),
-d(2022,3,13,12,0,0),
-d(2022,11,6,11,0,0),
-d(2023,3,12,12,0,0),
-d(2023,11,5,11,0,0),
-d(2024,3,10,12,0,0),
-d(2024,11,3,11,0,0),
-d(2025,3,9,12,0,0),
-d(2025,11,2,11,0,0),
-d(2026,3,8,12,0,0),
-d(2026,11,1,11,0,0),
-d(2027,3,14,12,0,0),
-d(2027,11,7,11,0,0),
-d(2028,3,12,12,0,0),
-d(2028,11,5,11,0,0),
-d(2029,3,11,12,0,0),
-d(2029,11,4,11,0,0),
-d(2030,3,10,12,0,0),
-d(2030,11,3,11,0,0),
-d(2031,3,9,12,0,0),
-d(2031,11,2,11,0,0),
-d(2032,3,14,12,0,0),
-d(2032,11,7,11,0,0),
-d(2033,3,13,12,0,0),
-d(2033,11,6,11,0,0),
-d(2034,3,12,12,0,0),
-d(2034,11,5,11,0,0),
-d(2035,3,11,12,0,0),
-d(2035,11,4,11,0,0),
-d(2036,3,9,12,0,0),
-d(2036,11,2,11,0,0),
-d(2037,3,8,12,0,0),
-d(2037,11,1,11,0,0),
- ]
-
- _transition_info = [
-i(-39600,0,'NST'),
-i(-36000,3600,'NWT'),
-i(-36000,3600,'NPT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-36000,0,'AHST'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
- ]
-
-Atka = Atka()
-
diff --git a/vendor/pytz/zoneinfo/America/Bahia.py b/vendor/pytz/zoneinfo/America/Bahia.py
deleted file mode 100644
index 5d4d5c5d..00000000
--- a/vendor/pytz/zoneinfo/America/Bahia.py
+++ /dev/null
@@ -1,138 +0,0 @@
-'''tzinfo timezone information for America/Bahia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bahia(DstTzInfo):
- '''America/Bahia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Bahia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,34,4),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,2,17,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,2,9,2,0,0),
-d(1992,10,25,3,0,0),
-d(1993,1,31,2,0,0),
-d(1993,10,17,3,0,0),
-d(1994,2,20,2,0,0),
-d(1994,10,16,3,0,0),
-d(1995,2,19,2,0,0),
-d(1995,10,15,3,0,0),
-d(1996,2,11,2,0,0),
-d(1996,10,6,3,0,0),
-d(1997,2,16,2,0,0),
-d(1997,10,6,3,0,0),
-d(1998,3,1,2,0,0),
-d(1998,10,11,3,0,0),
-d(1999,2,21,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2001,2,18,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
-d(2002,11,3,3,0,0),
-d(2003,2,16,2,0,0),
- ]
-
- _transition_info = [
-i(-9240,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Bahia = Bahia()
-
diff --git a/vendor/pytz/zoneinfo/America/Barbados.py b/vendor/pytz/zoneinfo/America/Barbados.py
deleted file mode 100644
index 97ba8c65..00000000
--- a/vendor/pytz/zoneinfo/America/Barbados.py
+++ /dev/null
@@ -1,40 +0,0 @@
-'''tzinfo timezone information for America/Barbados.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Barbados(DstTzInfo):
- '''America/Barbados timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Barbados'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,1,1,3,58,28),
-d(1932,1,1,3,58,28),
-d(1977,6,12,6,0,0),
-d(1977,10,2,5,0,0),
-d(1978,4,16,6,0,0),
-d(1978,10,1,5,0,0),
-d(1979,4,15,6,0,0),
-d(1979,9,30,5,0,0),
-d(1980,4,20,6,0,0),
-d(1980,9,25,5,0,0),
- ]
-
- _transition_info = [
-i(-14280,0,'LMT'),
-i(-14280,0,'BMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Barbados = Barbados()
-
diff --git a/vendor/pytz/zoneinfo/America/Belem.py b/vendor/pytz/zoneinfo/America/Belem.py
deleted file mode 100644
index f35f1999..00000000
--- a/vendor/pytz/zoneinfo/America/Belem.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for America/Belem.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Belem(DstTzInfo):
- '''America/Belem timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Belem'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,13,56),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
- ]
-
- _transition_info = [
-i(-11640,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Belem = Belem()
-
diff --git a/vendor/pytz/zoneinfo/America/Belize.py b/vendor/pytz/zoneinfo/America/Belize.py
deleted file mode 100644
index 8f599331..00000000
--- a/vendor/pytz/zoneinfo/America/Belize.py
+++ /dev/null
@@ -1,130 +0,0 @@
-'''tzinfo timezone information for America/Belize.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Belize(DstTzInfo):
- '''America/Belize timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Belize'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,4,1,5,52,48),
-d(1918,10,6,6,0,0),
-d(1919,2,9,5,30,0),
-d(1919,10,5,6,0,0),
-d(1920,2,15,5,30,0),
-d(1920,10,3,6,0,0),
-d(1921,2,13,5,30,0),
-d(1921,10,2,6,0,0),
-d(1922,2,12,5,30,0),
-d(1922,10,8,6,0,0),
-d(1923,2,11,5,30,0),
-d(1923,10,7,6,0,0),
-d(1924,2,10,5,30,0),
-d(1924,10,5,6,0,0),
-d(1925,2,15,5,30,0),
-d(1925,10,4,6,0,0),
-d(1926,2,14,5,30,0),
-d(1926,10,3,6,0,0),
-d(1927,2,13,5,30,0),
-d(1927,10,2,6,0,0),
-d(1928,2,12,5,30,0),
-d(1928,10,7,6,0,0),
-d(1929,2,10,5,30,0),
-d(1929,10,6,6,0,0),
-d(1930,2,9,5,30,0),
-d(1930,10,5,6,0,0),
-d(1931,2,15,5,30,0),
-d(1931,10,4,6,0,0),
-d(1932,2,14,5,30,0),
-d(1932,10,2,6,0,0),
-d(1933,2,12,5,30,0),
-d(1933,10,8,6,0,0),
-d(1934,2,11,5,30,0),
-d(1934,10,7,6,0,0),
-d(1935,2,10,5,30,0),
-d(1935,10,6,6,0,0),
-d(1936,2,9,5,30,0),
-d(1936,10,4,6,0,0),
-d(1937,2,14,5,30,0),
-d(1937,10,3,6,0,0),
-d(1938,2,13,5,30,0),
-d(1938,10,2,6,0,0),
-d(1939,2,12,5,30,0),
-d(1939,10,8,6,0,0),
-d(1940,2,11,5,30,0),
-d(1940,10,6,6,0,0),
-d(1941,2,9,5,30,0),
-d(1941,10,5,6,0,0),
-d(1942,2,15,5,30,0),
-d(1942,10,4,6,0,0),
-d(1943,2,14,5,30,0),
-d(1973,12,5,6,0,0),
-d(1974,2,9,5,0,0),
-d(1982,12,18,6,0,0),
-d(1983,2,12,5,0,0),
- ]
-
- _transition_info = [
-i(-21180,0,'LMT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-19800,1800,'CHDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Belize = Belize()
-
diff --git a/vendor/pytz/zoneinfo/America/Blanc_minus_Sablon.py b/vendor/pytz/zoneinfo/America/Blanc_minus_Sablon.py
deleted file mode 100644
index 87d819ef..00000000
--- a/vendor/pytz/zoneinfo/America/Blanc_minus_Sablon.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for America/Blanc_minus_Sablon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Blanc_minus_Sablon(DstTzInfo):
- '''America/Blanc_minus_Sablon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Blanc_minus_Sablon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,6,0,0),
-d(1918,10,31,5,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
- ]
-
-Blanc_minus_Sablon = Blanc_minus_Sablon()
-
diff --git a/vendor/pytz/zoneinfo/America/Boa_Vista.py b/vendor/pytz/zoneinfo/America/Boa_Vista.py
deleted file mode 100644
index f533ae97..00000000
--- a/vendor/pytz/zoneinfo/America/Boa_Vista.py
+++ /dev/null
@@ -1,86 +0,0 @@
-'''tzinfo timezone information for America/Boa_Vista.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Boa_Vista(DstTzInfo):
- '''America/Boa_Vista timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Boa_Vista'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,2,40),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
-d(1999,10,3,4,0,0),
-d(2000,2,27,3,0,0),
-d(2000,10,8,4,0,0),
-d(2000,10,15,3,0,0),
- ]
-
- _transition_info = [
-i(-14580,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
- ]
-
-Boa_Vista = Boa_Vista()
-
diff --git a/vendor/pytz/zoneinfo/America/Bogota.py b/vendor/pytz/zoneinfo/America/Bogota.py
deleted file mode 100644
index 5b295d93..00000000
--- a/vendor/pytz/zoneinfo/America/Bogota.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for America/Bogota.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bogota(DstTzInfo):
- '''America/Bogota timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Bogota'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,11,23,4,56,20),
-d(1992,5,3,5,0,0),
-d(1993,4,4,4,0,0),
- ]
-
- _transition_info = [
-i(-17760,0,'BMT'),
-i(-18000,0,'COT'),
-i(-14400,3600,'COST'),
-i(-18000,0,'COT'),
- ]
-
-Bogota = Bogota()
-
diff --git a/vendor/pytz/zoneinfo/America/Boise.py b/vendor/pytz/zoneinfo/America/Boise.py
deleted file mode 100644
index ed619370..00000000
--- a/vendor/pytz/zoneinfo/America/Boise.py
+++ /dev/null
@@ -1,320 +0,0 @@
-'''tzinfo timezone information for America/Boise.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Boise(DstTzInfo):
- '''America/Boise timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Boise'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,3,30,10,0,0),
-d(1919,10,26,9,0,0),
-d(1923,5,13,10,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,2,3,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Boise = Boise()
-
diff --git a/vendor/pytz/zoneinfo/America/Buenos_Aires.py b/vendor/pytz/zoneinfo/America/Buenos_Aires.py
deleted file mode 100644
index 2a457607..00000000
--- a/vendor/pytz/zoneinfo/America/Buenos_Aires.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Buenos_Aires.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Buenos_Aires(DstTzInfo):
- '''America/Buenos_Aires timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Buenos_Aires'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Buenos_Aires = Buenos_Aires()
-
diff --git a/vendor/pytz/zoneinfo/America/Cambridge_Bay.py b/vendor/pytz/zoneinfo/America/Cambridge_Bay.py
deleted file mode 100644
index ce1d6db0..00000000
--- a/vendor/pytz/zoneinfo/America/Cambridge_Bay.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for America/Cambridge_Bay.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cambridge_Bay(DstTzInfo):
- '''America/Cambridge_Bay timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cambridge_Bay'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,5,25,9,0,0),
-d(1919,11,1,6,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,7,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2000,11,5,5,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-18000,7200,'MDDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-21600,0,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Cambridge_Bay = Cambridge_Bay()
-
diff --git a/vendor/pytz/zoneinfo/America/Campo_Grande.py b/vendor/pytz/zoneinfo/America/Campo_Grande.py
deleted file mode 100644
index f01e39db..00000000
--- a/vendor/pytz/zoneinfo/America/Campo_Grande.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for America/Campo_Grande.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Campo_Grande(DstTzInfo):
- '''America/Campo_Grande timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Campo_Grande'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,38,28),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
-d(1988,10,16,4,0,0),
-d(1989,1,29,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,2,11,3,0,0),
-d(1990,10,21,4,0,0),
-d(1991,2,17,3,0,0),
-d(1991,10,20,4,0,0),
-d(1992,2,9,3,0,0),
-d(1992,10,25,4,0,0),
-d(1993,1,31,3,0,0),
-d(1993,10,17,4,0,0),
-d(1994,2,20,3,0,0),
-d(1994,10,16,4,0,0),
-d(1995,2,19,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,2,11,3,0,0),
-d(1996,10,6,4,0,0),
-d(1997,2,16,3,0,0),
-d(1997,10,6,4,0,0),
-d(1998,3,1,3,0,0),
-d(1998,10,11,4,0,0),
-d(1999,2,21,3,0,0),
-d(1999,10,3,4,0,0),
-d(2000,2,27,3,0,0),
-d(2000,10,8,4,0,0),
-d(2001,2,18,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,2,17,3,0,0),
-d(2002,11,3,4,0,0),
-d(2003,2,16,3,0,0),
-d(2003,10,19,4,0,0),
-d(2004,2,15,3,0,0),
-d(2004,11,2,4,0,0),
-d(2005,2,20,3,0,0),
-d(2005,10,16,4,0,0),
-d(2006,2,19,3,0,0),
-d(2006,11,5,4,0,0),
-d(2007,2,25,3,0,0),
-d(2007,11,4,4,0,0),
-d(2008,2,24,3,0,0),
-d(2008,11,2,4,0,0),
-d(2009,2,22,3,0,0),
-d(2009,11,1,4,0,0),
-d(2010,2,28,3,0,0),
-d(2010,11,7,4,0,0),
-d(2011,2,27,3,0,0),
-d(2011,11,6,4,0,0),
-d(2012,2,26,3,0,0),
-d(2012,11,4,4,0,0),
-d(2013,2,24,3,0,0),
-d(2013,11,3,4,0,0),
-d(2014,2,23,3,0,0),
-d(2014,11,2,4,0,0),
-d(2015,2,22,3,0,0),
-d(2015,11,1,4,0,0),
-d(2016,2,28,3,0,0),
-d(2016,11,6,4,0,0),
-d(2017,2,26,3,0,0),
-d(2017,11,5,4,0,0),
-d(2018,2,25,3,0,0),
-d(2018,11,4,4,0,0),
-d(2019,2,24,3,0,0),
-d(2019,11,3,4,0,0),
-d(2020,2,23,3,0,0),
-d(2020,11,1,4,0,0),
-d(2021,2,28,3,0,0),
-d(2021,11,7,4,0,0),
-d(2022,2,27,3,0,0),
-d(2022,11,6,4,0,0),
-d(2023,2,26,3,0,0),
-d(2023,11,5,4,0,0),
-d(2024,2,25,3,0,0),
-d(2024,11,3,4,0,0),
-d(2025,2,23,3,0,0),
-d(2025,11,2,4,0,0),
-d(2026,2,22,3,0,0),
-d(2026,11,1,4,0,0),
-d(2027,2,28,3,0,0),
-d(2027,11,7,4,0,0),
-d(2028,2,27,3,0,0),
-d(2028,11,5,4,0,0),
-d(2029,2,25,3,0,0),
-d(2029,11,4,4,0,0),
-d(2030,2,24,3,0,0),
-d(2030,11,3,4,0,0),
-d(2031,2,23,3,0,0),
-d(2031,11,2,4,0,0),
-d(2032,2,29,3,0,0),
-d(2032,11,7,4,0,0),
-d(2033,2,27,3,0,0),
-d(2033,11,6,4,0,0),
-d(2034,2,26,3,0,0),
-d(2034,11,5,4,0,0),
-d(2035,2,25,3,0,0),
-d(2035,11,4,4,0,0),
-d(2036,2,24,3,0,0),
-d(2036,11,2,4,0,0),
-d(2037,2,22,3,0,0),
-d(2037,11,1,4,0,0),
- ]
-
- _transition_info = [
-i(-13080,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
- ]
-
-Campo_Grande = Campo_Grande()
-
diff --git a/vendor/pytz/zoneinfo/America/Cancun.py b/vendor/pytz/zoneinfo/America/Cancun.py
deleted file mode 100644
index 75c04155..00000000
--- a/vendor/pytz/zoneinfo/America/Cancun.py
+++ /dev/null
@@ -1,194 +0,0 @@
-'''tzinfo timezone information for America/Cancun.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cancun(DstTzInfo):
- '''America/Cancun timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cancun'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,6,0,0),
-d(1981,12,23,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,8,2,6,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,5,6,8,0,0),
-d(2001,9,30,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,4,1,8,0,0),
-d(2007,10,28,7,0,0),
-d(2008,4,6,8,0,0),
-d(2008,10,26,7,0,0),
-d(2009,4,5,8,0,0),
-d(2009,10,25,7,0,0),
-d(2010,4,4,8,0,0),
-d(2010,10,31,7,0,0),
-d(2011,4,3,8,0,0),
-d(2011,10,30,7,0,0),
-d(2012,4,1,8,0,0),
-d(2012,10,28,7,0,0),
-d(2013,4,7,8,0,0),
-d(2013,10,27,7,0,0),
-d(2014,4,6,8,0,0),
-d(2014,10,26,7,0,0),
-d(2015,4,5,8,0,0),
-d(2015,10,25,7,0,0),
-d(2016,4,3,8,0,0),
-d(2016,10,30,7,0,0),
-d(2017,4,2,8,0,0),
-d(2017,10,29,7,0,0),
-d(2018,4,1,8,0,0),
-d(2018,10,28,7,0,0),
-d(2019,4,7,8,0,0),
-d(2019,10,27,7,0,0),
-d(2020,4,5,8,0,0),
-d(2020,10,25,7,0,0),
-d(2021,4,4,8,0,0),
-d(2021,10,31,7,0,0),
-d(2022,4,3,8,0,0),
-d(2022,10,30,7,0,0),
-d(2023,4,2,8,0,0),
-d(2023,10,29,7,0,0),
-d(2024,4,7,8,0,0),
-d(2024,10,27,7,0,0),
-d(2025,4,6,8,0,0),
-d(2025,10,26,7,0,0),
-d(2026,4,5,8,0,0),
-d(2026,10,25,7,0,0),
-d(2027,4,4,8,0,0),
-d(2027,10,31,7,0,0),
-d(2028,4,2,8,0,0),
-d(2028,10,29,7,0,0),
-d(2029,4,1,8,0,0),
-d(2029,10,28,7,0,0),
-d(2030,4,7,8,0,0),
-d(2030,10,27,7,0,0),
-d(2031,4,6,8,0,0),
-d(2031,10,26,7,0,0),
-d(2032,4,4,8,0,0),
-d(2032,10,31,7,0,0),
-d(2033,4,3,8,0,0),
-d(2033,10,30,7,0,0),
-d(2034,4,2,8,0,0),
-d(2034,10,29,7,0,0),
-d(2035,4,1,8,0,0),
-d(2035,10,28,7,0,0),
-d(2036,4,6,8,0,0),
-d(2036,10,26,7,0,0),
-d(2037,4,5,8,0,0),
-d(2037,10,25,7,0,0),
- ]
-
- _transition_info = [
-i(-20820,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Cancun = Cancun()
-
diff --git a/vendor/pytz/zoneinfo/America/Caracas.py b/vendor/pytz/zoneinfo/America/Caracas.py
deleted file mode 100644
index 7d6276c3..00000000
--- a/vendor/pytz/zoneinfo/America/Caracas.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/Caracas.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Caracas(DstTzInfo):
- '''America/Caracas timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Caracas'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,12,4,27,40),
-d(1965,1,1,4,30,0),
- ]
-
- _transition_info = [
-i(-16080,0,'CMT'),
-i(-16200,0,'VET'),
-i(-14400,0,'VET'),
- ]
-
-Caracas = Caracas()
-
diff --git a/vendor/pytz/zoneinfo/America/Catamarca.py b/vendor/pytz/zoneinfo/America/Catamarca.py
deleted file mode 100644
index 857a1870..00000000
--- a/vendor/pytz/zoneinfo/America/Catamarca.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Catamarca.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Catamarca(DstTzInfo):
- '''America/Catamarca timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Catamarca'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,6,1,3,0,0),
-d(2004,6,20,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Catamarca = Catamarca()
-
diff --git a/vendor/pytz/zoneinfo/America/Cayenne.py b/vendor/pytz/zoneinfo/America/Cayenne.py
deleted file mode 100644
index d20a6edd..00000000
--- a/vendor/pytz/zoneinfo/America/Cayenne.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/Cayenne.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cayenne(DstTzInfo):
- '''America/Cayenne timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cayenne'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,3,29,20),
-d(1967,10,1,4,0,0),
- ]
-
- _transition_info = [
-i(-12540,0,'LMT'),
-i(-14400,0,'GFT'),
-i(-10800,0,'GFT'),
- ]
-
-Cayenne = Cayenne()
-
diff --git a/vendor/pytz/zoneinfo/America/Cayman.py b/vendor/pytz/zoneinfo/America/Cayman.py
deleted file mode 100644
index 96c1ffea..00000000
--- a/vendor/pytz/zoneinfo/America/Cayman.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Cayman.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cayman(DstTzInfo):
- '''America/Cayman timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cayman'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,1,5,7,12),
- ]
-
- _transition_info = [
-i(-18420,0,'KMT'),
-i(-18000,0,'EST'),
- ]
-
-Cayman = Cayman()
-
diff --git a/vendor/pytz/zoneinfo/America/Chicago.py b/vendor/pytz/zoneinfo/America/Chicago.py
deleted file mode 100644
index d1043045..00000000
--- a/vendor/pytz/zoneinfo/America/Chicago.py
+++ /dev/null
@@ -1,490 +0,0 @@
-'''tzinfo timezone information for America/Chicago.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chicago(DstTzInfo):
- '''America/Chicago timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Chicago'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1920,6,13,8,0,0),
-d(1920,10,31,7,0,0),
-d(1921,3,27,8,0,0),
-d(1921,10,30,7,0,0),
-d(1922,4,30,8,0,0),
-d(1922,9,24,7,0,0),
-d(1923,4,29,8,0,0),
-d(1923,9,30,7,0,0),
-d(1924,4,27,8,0,0),
-d(1924,9,28,7,0,0),
-d(1925,4,26,8,0,0),
-d(1925,9,27,7,0,0),
-d(1926,4,25,8,0,0),
-d(1926,9,26,7,0,0),
-d(1927,4,24,8,0,0),
-d(1927,9,25,7,0,0),
-d(1928,4,29,8,0,0),
-d(1928,9,30,7,0,0),
-d(1929,4,28,8,0,0),
-d(1929,9,29,7,0,0),
-d(1930,4,27,8,0,0),
-d(1930,9,28,7,0,0),
-d(1931,4,26,8,0,0),
-d(1931,9,27,7,0,0),
-d(1932,4,24,8,0,0),
-d(1932,9,25,7,0,0),
-d(1933,4,30,8,0,0),
-d(1933,9,24,7,0,0),
-d(1934,4,29,8,0,0),
-d(1934,9,30,7,0,0),
-d(1935,4,28,8,0,0),
-d(1935,9,29,7,0,0),
-d(1936,3,1,8,0,0),
-d(1936,11,15,7,0,0),
-d(1937,4,25,8,0,0),
-d(1937,9,26,7,0,0),
-d(1938,4,24,8,0,0),
-d(1938,9,25,7,0,0),
-d(1939,4,30,8,0,0),
-d(1939,9,24,7,0,0),
-d(1940,4,28,8,0,0),
-d(1940,9,29,7,0,0),
-d(1941,4,27,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,10,30,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,10,27,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,10,26,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1962,10,28,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,10,27,7,0,0),
-d(1964,4,26,8,0,0),
-d(1964,10,25,7,0,0),
-d(1965,4,25,8,0,0),
-d(1965,10,31,7,0,0),
-d(1966,4,24,8,0,0),
-d(1966,10,30,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Chicago = Chicago()
-
diff --git a/vendor/pytz/zoneinfo/America/Chihuahua.py b/vendor/pytz/zoneinfo/America/Chihuahua.py
deleted file mode 100644
index b50fc998..00000000
--- a/vendor/pytz/zoneinfo/America/Chihuahua.py
+++ /dev/null
@@ -1,200 +0,0 @@
-'''tzinfo timezone information for America/Chihuahua.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chihuahua(DstTzInfo):
- '''America/Chihuahua timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Chihuahua'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,5,6,9,0,0),
-d(2001,9,30,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,4,1,9,0,0),
-d(2007,10,28,8,0,0),
-d(2008,4,6,9,0,0),
-d(2008,10,26,8,0,0),
-d(2009,4,5,9,0,0),
-d(2009,10,25,8,0,0),
-d(2010,4,4,9,0,0),
-d(2010,10,31,8,0,0),
-d(2011,4,3,9,0,0),
-d(2011,10,30,8,0,0),
-d(2012,4,1,9,0,0),
-d(2012,10,28,8,0,0),
-d(2013,4,7,9,0,0),
-d(2013,10,27,8,0,0),
-d(2014,4,6,9,0,0),
-d(2014,10,26,8,0,0),
-d(2015,4,5,9,0,0),
-d(2015,10,25,8,0,0),
-d(2016,4,3,9,0,0),
-d(2016,10,30,8,0,0),
-d(2017,4,2,9,0,0),
-d(2017,10,29,8,0,0),
-d(2018,4,1,9,0,0),
-d(2018,10,28,8,0,0),
-d(2019,4,7,9,0,0),
-d(2019,10,27,8,0,0),
-d(2020,4,5,9,0,0),
-d(2020,10,25,8,0,0),
-d(2021,4,4,9,0,0),
-d(2021,10,31,8,0,0),
-d(2022,4,3,9,0,0),
-d(2022,10,30,8,0,0),
-d(2023,4,2,9,0,0),
-d(2023,10,29,8,0,0),
-d(2024,4,7,9,0,0),
-d(2024,10,27,8,0,0),
-d(2025,4,6,9,0,0),
-d(2025,10,26,8,0,0),
-d(2026,4,5,9,0,0),
-d(2026,10,25,8,0,0),
-d(2027,4,4,9,0,0),
-d(2027,10,31,8,0,0),
-d(2028,4,2,9,0,0),
-d(2028,10,29,8,0,0),
-d(2029,4,1,9,0,0),
-d(2029,10,28,8,0,0),
-d(2030,4,7,9,0,0),
-d(2030,10,27,8,0,0),
-d(2031,4,6,9,0,0),
-d(2031,10,26,8,0,0),
-d(2032,4,4,9,0,0),
-d(2032,10,31,8,0,0),
-d(2033,4,3,9,0,0),
-d(2033,10,30,8,0,0),
-d(2034,4,2,9,0,0),
-d(2034,10,29,8,0,0),
-d(2035,4,1,9,0,0),
-d(2035,10,28,8,0,0),
-d(2036,4,6,9,0,0),
-d(2036,10,26,8,0,0),
-d(2037,4,5,9,0,0),
-d(2037,10,25,8,0,0),
- ]
-
- _transition_info = [
-i(-25440,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-21600,0,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Chihuahua = Chihuahua()
-
diff --git a/vendor/pytz/zoneinfo/America/Coral_Harbour.py b/vendor/pytz/zoneinfo/America/Coral_Harbour.py
deleted file mode 100644
index 01848d67..00000000
--- a/vendor/pytz/zoneinfo/America/Coral_Harbour.py
+++ /dev/null
@@ -1,32 +0,0 @@
-'''tzinfo timezone information for America/Coral_Harbour.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Coral_Harbour(DstTzInfo):
- '''America/Coral_Harbour timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Coral_Harbour'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,31,7,0,0),
-d(1940,9,29,6,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-18000,0,'EST'),
- ]
-
-Coral_Harbour = Coral_Harbour()
-
diff --git a/vendor/pytz/zoneinfo/America/Cordoba.py b/vendor/pytz/zoneinfo/America/Cordoba.py
deleted file mode 100644
index 0a8bd6c7..00000000
--- a/vendor/pytz/zoneinfo/America/Cordoba.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Cordoba.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cordoba(DstTzInfo):
- '''America/Cordoba timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cordoba'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Cordoba = Cordoba()
-
diff --git a/vendor/pytz/zoneinfo/America/Costa_Rica.py b/vendor/pytz/zoneinfo/America/Costa_Rica.py
deleted file mode 100644
index 62693b86..00000000
--- a/vendor/pytz/zoneinfo/America/Costa_Rica.py
+++ /dev/null
@@ -1,38 +0,0 @@
-'''tzinfo timezone information for America/Costa_Rica.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Costa_Rica(DstTzInfo):
- '''America/Costa_Rica timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Costa_Rica'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,1,15,5,36,20),
-d(1979,2,25,6,0,0),
-d(1979,6,3,5,0,0),
-d(1980,2,24,6,0,0),
-d(1980,6,1,5,0,0),
-d(1991,1,19,6,0,0),
-d(1991,7,1,5,0,0),
-d(1992,1,18,6,0,0),
-d(1992,3,15,5,0,0),
- ]
-
- _transition_info = [
-i(-20160,0,'SJMT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Costa_Rica = Costa_Rica()
-
diff --git a/vendor/pytz/zoneinfo/America/Cuiaba.py b/vendor/pytz/zoneinfo/America/Cuiaba.py
deleted file mode 100644
index 7efb7897..00000000
--- a/vendor/pytz/zoneinfo/America/Cuiaba.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for America/Cuiaba.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cuiaba(DstTzInfo):
- '''America/Cuiaba timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Cuiaba'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,44,20),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
-d(1988,10,16,4,0,0),
-d(1989,1,29,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,2,11,3,0,0),
-d(1990,10,21,4,0,0),
-d(1991,2,17,3,0,0),
-d(1991,10,20,4,0,0),
-d(1992,2,9,3,0,0),
-d(1992,10,25,4,0,0),
-d(1993,1,31,3,0,0),
-d(1993,10,17,4,0,0),
-d(1994,2,20,3,0,0),
-d(1994,10,16,4,0,0),
-d(1995,2,19,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,2,11,3,0,0),
-d(1996,10,6,4,0,0),
-d(1997,2,16,3,0,0),
-d(1997,10,6,4,0,0),
-d(1998,3,1,3,0,0),
-d(1998,10,11,4,0,0),
-d(1999,2,21,3,0,0),
-d(1999,10,3,4,0,0),
-d(2000,2,27,3,0,0),
-d(2000,10,8,4,0,0),
-d(2001,2,18,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,2,17,3,0,0),
-d(2002,11,3,4,0,0),
-d(2003,2,16,3,0,0),
-d(2004,11,2,4,0,0),
-d(2005,2,20,3,0,0),
-d(2005,10,16,4,0,0),
-d(2006,2,19,3,0,0),
-d(2006,11,5,4,0,0),
-d(2007,2,25,3,0,0),
-d(2007,11,4,4,0,0),
-d(2008,2,24,3,0,0),
-d(2008,11,2,4,0,0),
-d(2009,2,22,3,0,0),
-d(2009,11,1,4,0,0),
-d(2010,2,28,3,0,0),
-d(2010,11,7,4,0,0),
-d(2011,2,27,3,0,0),
-d(2011,11,6,4,0,0),
-d(2012,2,26,3,0,0),
-d(2012,11,4,4,0,0),
-d(2013,2,24,3,0,0),
-d(2013,11,3,4,0,0),
-d(2014,2,23,3,0,0),
-d(2014,11,2,4,0,0),
-d(2015,2,22,3,0,0),
-d(2015,11,1,4,0,0),
-d(2016,2,28,3,0,0),
-d(2016,11,6,4,0,0),
-d(2017,2,26,3,0,0),
-d(2017,11,5,4,0,0),
-d(2018,2,25,3,0,0),
-d(2018,11,4,4,0,0),
-d(2019,2,24,3,0,0),
-d(2019,11,3,4,0,0),
-d(2020,2,23,3,0,0),
-d(2020,11,1,4,0,0),
-d(2021,2,28,3,0,0),
-d(2021,11,7,4,0,0),
-d(2022,2,27,3,0,0),
-d(2022,11,6,4,0,0),
-d(2023,2,26,3,0,0),
-d(2023,11,5,4,0,0),
-d(2024,2,25,3,0,0),
-d(2024,11,3,4,0,0),
-d(2025,2,23,3,0,0),
-d(2025,11,2,4,0,0),
-d(2026,2,22,3,0,0),
-d(2026,11,1,4,0,0),
-d(2027,2,28,3,0,0),
-d(2027,11,7,4,0,0),
-d(2028,2,27,3,0,0),
-d(2028,11,5,4,0,0),
-d(2029,2,25,3,0,0),
-d(2029,11,4,4,0,0),
-d(2030,2,24,3,0,0),
-d(2030,11,3,4,0,0),
-d(2031,2,23,3,0,0),
-d(2031,11,2,4,0,0),
-d(2032,2,29,3,0,0),
-d(2032,11,7,4,0,0),
-d(2033,2,27,3,0,0),
-d(2033,11,6,4,0,0),
-d(2034,2,26,3,0,0),
-d(2034,11,5,4,0,0),
-d(2035,2,25,3,0,0),
-d(2035,11,4,4,0,0),
-d(2036,2,24,3,0,0),
-d(2036,11,2,4,0,0),
-d(2037,2,22,3,0,0),
-d(2037,11,1,4,0,0),
- ]
-
- _transition_info = [
-i(-13440,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
- ]
-
-Cuiaba = Cuiaba()
-
diff --git a/vendor/pytz/zoneinfo/America/Curacao.py b/vendor/pytz/zoneinfo/America/Curacao.py
deleted file mode 100644
index b96dd992..00000000
--- a/vendor/pytz/zoneinfo/America/Curacao.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/Curacao.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Curacao(DstTzInfo):
- '''America/Curacao timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Curacao'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,12,4,35,44),
-d(1965,1,1,4,30,0),
- ]
-
- _transition_info = [
-i(-16560,0,'LMT'),
-i(-16200,0,'ANT'),
-i(-14400,0,'AST'),
- ]
-
-Curacao = Curacao()
-
diff --git a/vendor/pytz/zoneinfo/America/Danmarkshavn.py b/vendor/pytz/zoneinfo/America/Danmarkshavn.py
deleted file mode 100644
index a476ad6a..00000000
--- a/vendor/pytz/zoneinfo/America/Danmarkshavn.py
+++ /dev/null
@@ -1,88 +0,0 @@
-'''tzinfo timezone information for America/Danmarkshavn.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Danmarkshavn(DstTzInfo):
- '''America/Danmarkshavn timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Danmarkshavn'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,28,1,14,40),
-d(1980,4,6,5,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,1,1,3,0,0),
- ]
-
- _transition_info = [
-i(-4500,0,'LMT'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(0,0,'GMT'),
- ]
-
-Danmarkshavn = Danmarkshavn()
-
diff --git a/vendor/pytz/zoneinfo/America/Dawson.py b/vendor/pytz/zoneinfo/America/Dawson.py
deleted file mode 100644
index d772e767..00000000
--- a/vendor/pytz/zoneinfo/America/Dawson.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for America/Dawson.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dawson(DstTzInfo):
- '''America/Dawson timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Dawson'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,11,0,0),
-d(1918,10,27,10,0,0),
-d(1919,5,25,11,0,0),
-d(1919,11,1,8,0,0),
-d(1942,2,9,11,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,10,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,9,0,0),
-d(1973,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YWT'),
-i(-28800,3600,'YPT'),
-i(-32400,0,'YST'),
-i(-25200,7200,'YDDT'),
-i(-32400,0,'YST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Dawson = Dawson()
-
diff --git a/vendor/pytz/zoneinfo/America/Dawson_Creek.py b/vendor/pytz/zoneinfo/America/Dawson_Creek.py
deleted file mode 100644
index cd815b0d..00000000
--- a/vendor/pytz/zoneinfo/America/Dawson_Creek.py
+++ /dev/null
@@ -1,134 +0,0 @@
-'''tzinfo timezone information for America/Dawson_Creek.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dawson_Creek(DstTzInfo):
- '''America/Dawson_Creek timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Dawson_Creek'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,10,0,0),
-d(1918,10,31,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1947,4,27,10,0,0),
-d(1947,9,28,9,0,0),
-d(1948,4,25,10,0,0),
-d(1948,9,26,9,0,0),
-d(1949,4,24,10,0,0),
-d(1949,9,25,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,8,30,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-25200,0,'MST'),
- ]
-
-Dawson_Creek = Dawson_Creek()
-
diff --git a/vendor/pytz/zoneinfo/America/Denver.py b/vendor/pytz/zoneinfo/America/Denver.py
deleted file mode 100644
index 205e6911..00000000
--- a/vendor/pytz/zoneinfo/America/Denver.py
+++ /dev/null
@@ -1,334 +0,0 @@
-'''tzinfo timezone information for America/Denver.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Denver(DstTzInfo):
- '''America/Denver timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Denver'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1920,3,28,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,3,27,9,0,0),
-d(1921,5,22,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,8,0,0),
-d(1966,4,24,9,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Denver = Denver()
-
diff --git a/vendor/pytz/zoneinfo/America/Detroit.py b/vendor/pytz/zoneinfo/America/Detroit.py
deleted file mode 100644
index 0c943ba6..00000000
--- a/vendor/pytz/zoneinfo/America/Detroit.py
+++ /dev/null
@@ -1,298 +0,0 @@
-'''tzinfo timezone information for America/Detroit.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Detroit(DstTzInfo):
- '''America/Detroit timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Detroit'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,1,1,5,32,11),
-d(1915,5,15,8,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1967,6,14,7,0,0),
-d(1967,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-19920,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Detroit = Detroit()
-
diff --git a/vendor/pytz/zoneinfo/America/Dominica.py b/vendor/pytz/zoneinfo/America/Dominica.py
deleted file mode 100644
index 6d2c1ecd..00000000
--- a/vendor/pytz/zoneinfo/America/Dominica.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Dominica.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dominica(DstTzInfo):
- '''America/Dominica timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Dominica'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,6,36),
- ]
-
- _transition_info = [
-i(-14760,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Dominica = Dominica()
-
diff --git a/vendor/pytz/zoneinfo/America/Edmonton.py b/vendor/pytz/zoneinfo/America/Edmonton.py
deleted file mode 100644
index b0f947b5..00000000
--- a/vendor/pytz/zoneinfo/America/Edmonton.py
+++ /dev/null
@@ -1,328 +0,0 @@
-'''tzinfo timezone information for America/Edmonton.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Edmonton(DstTzInfo):
- '''America/Edmonton timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Edmonton'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,9,1,7,33,52),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1919,4,13,9,0,0),
-d(1919,5,27,8,0,0),
-d(1920,4,25,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,4,24,9,0,0),
-d(1921,9,25,8,0,0),
-d(1922,4,30,9,0,0),
-d(1922,9,24,8,0,0),
-d(1923,4,29,9,0,0),
-d(1923,9,30,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,4,28,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,4,27,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-27240,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Edmonton = Edmonton()
-
diff --git a/vendor/pytz/zoneinfo/America/Eirunepe.py b/vendor/pytz/zoneinfo/America/Eirunepe.py
deleted file mode 100644
index 1c41bd95..00000000
--- a/vendor/pytz/zoneinfo/America/Eirunepe.py
+++ /dev/null
@@ -1,82 +0,0 @@
-'''tzinfo timezone information for America/Eirunepe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Eirunepe(DstTzInfo):
- '''America/Eirunepe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Eirunepe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,39,28),
-d(1931,10,3,16,0,0),
-d(1932,4,1,4,0,0),
-d(1932,10,3,5,0,0),
-d(1933,4,1,4,0,0),
-d(1949,12,1,5,0,0),
-d(1950,4,16,5,0,0),
-d(1950,12,1,5,0,0),
-d(1951,4,1,4,0,0),
-d(1951,12,1,5,0,0),
-d(1952,4,1,4,0,0),
-d(1952,12,1,5,0,0),
-d(1953,3,1,4,0,0),
-d(1963,12,9,5,0,0),
-d(1964,3,1,4,0,0),
-d(1965,1,31,5,0,0),
-d(1965,3,31,4,0,0),
-d(1965,12,1,5,0,0),
-d(1966,3,1,4,0,0),
-d(1966,11,1,5,0,0),
-d(1967,3,1,4,0,0),
-d(1967,11,1,5,0,0),
-d(1968,3,1,4,0,0),
-d(1985,11,2,5,0,0),
-d(1986,3,15,4,0,0),
-d(1986,10,25,5,0,0),
-d(1987,2,14,4,0,0),
-d(1987,10,25,5,0,0),
-d(1988,2,7,4,0,0),
-d(1993,10,17,5,0,0),
-d(1994,2,20,4,0,0),
- ]
-
- _transition_info = [
-i(-16740,0,'LMT'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
- ]
-
-Eirunepe = Eirunepe()
-
diff --git a/vendor/pytz/zoneinfo/America/El_Salvador.py b/vendor/pytz/zoneinfo/America/El_Salvador.py
deleted file mode 100644
index 4ed5d13a..00000000
--- a/vendor/pytz/zoneinfo/America/El_Salvador.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for America/El_Salvador.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class El_Salvador(DstTzInfo):
- '''America/El_Salvador timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/El_Salvador'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,1,1,5,56,48),
-d(1987,5,3,6,0,0),
-d(1987,9,27,5,0,0),
-d(1988,5,1,6,0,0),
-d(1988,9,25,5,0,0),
- ]
-
- _transition_info = [
-i(-21420,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-El_Salvador = El_Salvador()
-
diff --git a/vendor/pytz/zoneinfo/America/Ensenada.py b/vendor/pytz/zoneinfo/America/Ensenada.py
deleted file mode 100644
index 432d5641..00000000
--- a/vendor/pytz/zoneinfo/America/Ensenada.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for America/Ensenada.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ensenada(DstTzInfo):
- '''America/Ensenada timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Ensenada'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,8,0,0),
-d(1924,1,1,7,0,0),
-d(1927,6,11,7,0,0),
-d(1930,11,15,7,0,0),
-d(1931,4,1,8,0,0),
-d(1931,9,30,7,0,0),
-d(1942,4,24,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,11,12,7,0,0),
-d(1948,4,5,8,0,0),
-d(1949,1,14,7,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,4,1,10,0,0),
-d(2007,10,28,9,0,0),
-d(2008,4,6,10,0,0),
-d(2008,10,26,9,0,0),
-d(2009,4,5,10,0,0),
-d(2009,10,25,9,0,0),
-d(2010,4,4,10,0,0),
-d(2010,10,31,9,0,0),
-d(2011,4,3,10,0,0),
-d(2011,10,30,9,0,0),
-d(2012,4,1,10,0,0),
-d(2012,10,28,9,0,0),
-d(2013,4,7,10,0,0),
-d(2013,10,27,9,0,0),
-d(2014,4,6,10,0,0),
-d(2014,10,26,9,0,0),
-d(2015,4,5,10,0,0),
-d(2015,10,25,9,0,0),
-d(2016,4,3,10,0,0),
-d(2016,10,30,9,0,0),
-d(2017,4,2,10,0,0),
-d(2017,10,29,9,0,0),
-d(2018,4,1,10,0,0),
-d(2018,10,28,9,0,0),
-d(2019,4,7,10,0,0),
-d(2019,10,27,9,0,0),
-d(2020,4,5,10,0,0),
-d(2020,10,25,9,0,0),
-d(2021,4,4,10,0,0),
-d(2021,10,31,9,0,0),
-d(2022,4,3,10,0,0),
-d(2022,10,30,9,0,0),
-d(2023,4,2,10,0,0),
-d(2023,10,29,9,0,0),
-d(2024,4,7,10,0,0),
-d(2024,10,27,9,0,0),
-d(2025,4,6,10,0,0),
-d(2025,10,26,9,0,0),
-d(2026,4,5,10,0,0),
-d(2026,10,25,9,0,0),
-d(2027,4,4,10,0,0),
-d(2027,10,31,9,0,0),
-d(2028,4,2,10,0,0),
-d(2028,10,29,9,0,0),
-d(2029,4,1,10,0,0),
-d(2029,10,28,9,0,0),
-d(2030,4,7,10,0,0),
-d(2030,10,27,9,0,0),
-d(2031,4,6,10,0,0),
-d(2031,10,26,9,0,0),
-d(2032,4,4,10,0,0),
-d(2032,10,31,9,0,0),
-d(2033,4,3,10,0,0),
-d(2033,10,30,9,0,0),
-d(2034,4,2,10,0,0),
-d(2034,10,29,9,0,0),
-d(2035,4,1,10,0,0),
-d(2035,10,28,9,0,0),
-d(2036,4,6,10,0,0),
-d(2036,10,26,9,0,0),
-d(2037,4,5,10,0,0),
-d(2037,10,25,9,0,0),
- ]
-
- _transition_info = [
-i(-28080,0,'LMT'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Ensenada = Ensenada()
-
diff --git a/vendor/pytz/zoneinfo/America/Fort_Wayne.py b/vendor/pytz/zoneinfo/America/Fort_Wayne.py
deleted file mode 100644
index 4a1bd609..00000000
--- a/vendor/pytz/zoneinfo/America/Fort_Wayne.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for America/Fort_Wayne.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Fort_Wayne(DstTzInfo):
- '''America/Fort_Wayne timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Fort_Wayne'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1941,6,22,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Fort_Wayne = Fort_Wayne()
-
diff --git a/vendor/pytz/zoneinfo/America/Fortaleza.py b/vendor/pytz/zoneinfo/America/Fortaleza.py
deleted file mode 100644
index 44ca5ae1..00000000
--- a/vendor/pytz/zoneinfo/America/Fortaleza.py
+++ /dev/null
@@ -1,98 +0,0 @@
-'''tzinfo timezone information for America/Fortaleza.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Fortaleza(DstTzInfo):
- '''America/Fortaleza timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Fortaleza'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,34,0),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2000,10,22,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
- ]
-
- _transition_info = [
-i(-9240,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Fortaleza = Fortaleza()
-
diff --git a/vendor/pytz/zoneinfo/America/Glace_Bay.py b/vendor/pytz/zoneinfo/America/Glace_Bay.py
deleted file mode 100644
index cd5edff1..00000000
--- a/vendor/pytz/zoneinfo/America/Glace_Bay.py
+++ /dev/null
@@ -1,300 +0,0 @@
-'''tzinfo timezone information for America/Glace_Bay.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Glace_Bay(DstTzInfo):
- '''America/Glace_Bay timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Glace_Bay'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1902,6,15,3,59,48),
-d(1918,4,14,6,0,0),
-d(1918,10,31,5,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
-d(1953,4,26,6,0,0),
-d(1953,9,27,5,0,0),
-d(1972,4,30,6,0,0),
-d(1972,10,29,5,0,0),
-d(1973,4,29,6,0,0),
-d(1973,10,28,5,0,0),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,5,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,5,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,5,0,0),
-d(1998,4,5,6,0,0),
-d(1998,10,25,5,0,0),
-d(1999,4,4,6,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,6,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,6,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,6,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,6,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,6,0,0),
-d(2004,10,31,5,0,0),
-d(2005,4,3,6,0,0),
-d(2005,10,30,5,0,0),
-d(2006,4,2,6,0,0),
-d(2006,10,29,5,0,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Glace_Bay = Glace_Bay()
-
diff --git a/vendor/pytz/zoneinfo/America/Godthab.py b/vendor/pytz/zoneinfo/America/Godthab.py
deleted file mode 100644
index bce7b307..00000000
--- a/vendor/pytz/zoneinfo/America/Godthab.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for America/Godthab.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Godthab(DstTzInfo):
- '''America/Godthab timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Godthab'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,28,3,26,56),
-d(1980,4,6,5,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-12420,0,'LMT'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
-i(-7200,3600,'WGST'),
-i(-10800,0,'WGT'),
- ]
-
-Godthab = Godthab()
-
diff --git a/vendor/pytz/zoneinfo/America/Goose_Bay.py b/vendor/pytz/zoneinfo/America/Goose_Bay.py
deleted file mode 100644
index b2bc26cc..00000000
--- a/vendor/pytz/zoneinfo/America/Goose_Bay.py
+++ /dev/null
@@ -1,426 +0,0 @@
-'''tzinfo timezone information for America/Goose_Bay.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Goose_Bay(DstTzInfo):
- '''America/Goose_Bay timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Goose_Bay'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,5,30,52),
-d(1918,10,31,4,30,52),
-d(1935,3,30,3,30,52),
-d(1936,5,11,3,30,0),
-d(1936,10,5,2,30,0),
-d(1937,5,10,3,30,0),
-d(1937,10,4,2,30,0),
-d(1938,5,9,3,30,0),
-d(1938,10,3,2,30,0),
-d(1939,5,15,3,30,0),
-d(1939,10,2,2,30,0),
-d(1940,5,13,3,30,0),
-d(1940,10,7,2,30,0),
-d(1941,5,12,3,30,0),
-d(1941,10,6,2,30,0),
-d(1942,5,11,3,30,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,4,30,0),
-d(1946,5,12,5,30,0),
-d(1946,10,6,4,30,0),
-d(1947,5,11,5,30,0),
-d(1947,10,5,4,30,0),
-d(1948,5,9,5,30,0),
-d(1948,10,3,4,30,0),
-d(1949,5,8,5,30,0),
-d(1949,10,2,4,30,0),
-d(1950,5,14,5,30,0),
-d(1950,10,8,4,30,0),
-d(1951,4,29,5,30,0),
-d(1951,9,30,4,30,0),
-d(1952,4,27,5,30,0),
-d(1952,9,28,4,30,0),
-d(1953,4,26,5,30,0),
-d(1953,9,27,4,30,0),
-d(1954,4,25,5,30,0),
-d(1954,9,26,4,30,0),
-d(1955,4,24,5,30,0),
-d(1955,9,25,4,30,0),
-d(1956,4,29,5,30,0),
-d(1956,9,30,4,30,0),
-d(1957,4,28,5,30,0),
-d(1957,9,29,4,30,0),
-d(1958,4,27,5,30,0),
-d(1958,9,28,4,30,0),
-d(1959,4,26,5,30,0),
-d(1959,9,27,4,30,0),
-d(1960,4,24,5,30,0),
-d(1960,10,30,4,30,0),
-d(1961,4,30,5,30,0),
-d(1961,10,29,4,30,0),
-d(1962,4,29,5,30,0),
-d(1962,10,28,4,30,0),
-d(1963,4,28,5,30,0),
-d(1963,10,27,4,30,0),
-d(1964,4,26,5,30,0),
-d(1964,10,25,4,30,0),
-d(1965,4,25,5,30,0),
-d(1965,10,31,4,30,0),
-d(1966,3,15,5,30,0),
-d(1966,4,24,6,0,0),
-d(1966,10,30,5,0,0),
-d(1967,4,30,6,0,0),
-d(1967,10,29,5,0,0),
-d(1968,4,28,6,0,0),
-d(1968,10,27,5,0,0),
-d(1969,4,27,6,0,0),
-d(1969,10,26,5,0,0),
-d(1970,4,26,6,0,0),
-d(1970,10,25,5,0,0),
-d(1971,4,25,6,0,0),
-d(1971,10,31,5,0,0),
-d(1972,4,30,6,0,0),
-d(1972,10,29,5,0,0),
-d(1973,4,29,6,0,0),
-d(1973,10,28,5,0,0),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,4,1,0),
-d(1987,10,25,3,1,0),
-d(1988,4,3,4,1,0),
-d(1988,10,30,2,1,0),
-d(1989,4,2,4,1,0),
-d(1989,10,29,3,1,0),
-d(1990,4,1,4,1,0),
-d(1990,10,28,3,1,0),
-d(1991,4,7,4,1,0),
-d(1991,10,27,3,1,0),
-d(1992,4,5,4,1,0),
-d(1992,10,25,3,1,0),
-d(1993,4,4,4,1,0),
-d(1993,10,31,3,1,0),
-d(1994,4,3,4,1,0),
-d(1994,10,30,3,1,0),
-d(1995,4,2,4,1,0),
-d(1995,10,29,3,1,0),
-d(1996,4,7,4,1,0),
-d(1996,10,27,3,1,0),
-d(1997,4,6,4,1,0),
-d(1997,10,26,3,1,0),
-d(1998,4,5,4,1,0),
-d(1998,10,25,3,1,0),
-d(1999,4,4,4,1,0),
-d(1999,10,31,3,1,0),
-d(2000,4,2,4,1,0),
-d(2000,10,29,3,1,0),
-d(2001,4,1,4,1,0),
-d(2001,10,28,3,1,0),
-d(2002,4,7,4,1,0),
-d(2002,10,27,3,1,0),
-d(2003,4,6,4,1,0),
-d(2003,10,26,3,1,0),
-d(2004,4,4,4,1,0),
-d(2004,10,31,3,1,0),
-d(2005,4,3,4,1,0),
-d(2005,10,30,3,1,0),
-d(2006,4,2,4,1,0),
-d(2006,10,29,3,1,0),
-d(2007,3,11,4,1,0),
-d(2007,11,4,3,1,0),
-d(2008,3,9,4,1,0),
-d(2008,11,2,3,1,0),
-d(2009,3,8,4,1,0),
-d(2009,11,1,3,1,0),
-d(2010,3,14,4,1,0),
-d(2010,11,7,3,1,0),
-d(2011,3,13,4,1,0),
-d(2011,11,6,3,1,0),
-d(2012,3,11,4,1,0),
-d(2012,11,4,3,1,0),
-d(2013,3,10,4,1,0),
-d(2013,11,3,3,1,0),
-d(2014,3,9,4,1,0),
-d(2014,11,2,3,1,0),
-d(2015,3,8,4,1,0),
-d(2015,11,1,3,1,0),
-d(2016,3,13,4,1,0),
-d(2016,11,6,3,1,0),
-d(2017,3,12,4,1,0),
-d(2017,11,5,3,1,0),
-d(2018,3,11,4,1,0),
-d(2018,11,4,3,1,0),
-d(2019,3,10,4,1,0),
-d(2019,11,3,3,1,0),
-d(2020,3,8,4,1,0),
-d(2020,11,1,3,1,0),
-d(2021,3,14,4,1,0),
-d(2021,11,7,3,1,0),
-d(2022,3,13,4,1,0),
-d(2022,11,6,3,1,0),
-d(2023,3,12,4,1,0),
-d(2023,11,5,3,1,0),
-d(2024,3,10,4,1,0),
-d(2024,11,3,3,1,0),
-d(2025,3,9,4,1,0),
-d(2025,11,2,3,1,0),
-d(2026,3,8,4,1,0),
-d(2026,11,1,3,1,0),
-d(2027,3,14,4,1,0),
-d(2027,11,7,3,1,0),
-d(2028,3,12,4,1,0),
-d(2028,11,5,3,1,0),
-d(2029,3,11,4,1,0),
-d(2029,11,4,3,1,0),
-d(2030,3,10,4,1,0),
-d(2030,11,3,3,1,0),
-d(2031,3,9,4,1,0),
-d(2031,11,2,3,1,0),
-d(2032,3,14,4,1,0),
-d(2032,11,7,3,1,0),
-d(2033,3,13,4,1,0),
-d(2033,11,6,3,1,0),
-d(2034,3,12,4,1,0),
-d(2034,11,5,3,1,0),
-d(2035,3,11,4,1,0),
-d(2035,11,4,3,1,0),
-d(2036,3,9,4,1,0),
-d(2036,11,2,3,1,0),
-d(2037,3,8,4,1,0),
-d(2037,11,1,3,1,0),
- ]
-
- _transition_info = [
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NWT'),
-i(-9000,3600,'NPT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-7200,7200,'ADDT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Goose_Bay = Goose_Bay()
-
diff --git a/vendor/pytz/zoneinfo/America/Grand_Turk.py b/vendor/pytz/zoneinfo/America/Grand_Turk.py
deleted file mode 100644
index ba4cae50..00000000
--- a/vendor/pytz/zoneinfo/America/Grand_Turk.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for America/Grand_Turk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Grand_Turk(DstTzInfo):
- '''America/Grand_Turk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Grand_Turk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,1,5,7,12),
-d(1979,4,29,5,0,0),
-d(1979,10,28,4,0,0),
-d(1980,4,27,5,0,0),
-d(1980,10,26,4,0,0),
-d(1981,4,26,5,0,0),
-d(1981,10,25,4,0,0),
-d(1982,4,25,5,0,0),
-d(1982,10,31,4,0,0),
-d(1983,4,24,5,0,0),
-d(1983,10,30,4,0,0),
-d(1984,4,29,5,0,0),
-d(1984,10,28,4,0,0),
-d(1985,4,28,5,0,0),
-d(1985,10,27,4,0,0),
-d(1986,4,27,5,0,0),
-d(1986,10,26,4,0,0),
-d(1987,4,5,5,0,0),
-d(1987,10,25,4,0,0),
-d(1988,4,3,5,0,0),
-d(1988,10,30,4,0,0),
-d(1989,4,2,5,0,0),
-d(1989,10,29,4,0,0),
-d(1990,4,1,5,0,0),
-d(1990,10,28,4,0,0),
-d(1991,4,7,5,0,0),
-d(1991,10,27,4,0,0),
-d(1992,4,5,5,0,0),
-d(1992,10,25,4,0,0),
-d(1993,4,4,5,0,0),
-d(1993,10,31,4,0,0),
-d(1994,4,3,5,0,0),
-d(1994,10,30,4,0,0),
-d(1995,4,2,5,0,0),
-d(1995,10,29,4,0,0),
-d(1996,4,7,5,0,0),
-d(1996,10,27,4,0,0),
-d(1997,4,6,5,0,0),
-d(1997,10,26,4,0,0),
-d(1998,4,5,5,0,0),
-d(1998,10,25,4,0,0),
-d(1999,4,4,5,0,0),
-d(1999,10,31,4,0,0),
-d(2000,4,2,5,0,0),
-d(2000,10,29,4,0,0),
-d(2001,4,1,5,0,0),
-d(2001,10,28,4,0,0),
-d(2002,4,7,5,0,0),
-d(2002,10,27,4,0,0),
-d(2003,4,6,5,0,0),
-d(2003,10,26,4,0,0),
-d(2004,4,4,5,0,0),
-d(2004,10,31,4,0,0),
-d(2005,4,3,5,0,0),
-d(2005,10,30,4,0,0),
-d(2006,4,2,5,0,0),
-d(2006,10,29,4,0,0),
-d(2007,4,1,5,0,0),
-d(2007,10,28,4,0,0),
-d(2008,4,6,5,0,0),
-d(2008,10,26,4,0,0),
-d(2009,4,5,5,0,0),
-d(2009,10,25,4,0,0),
-d(2010,4,4,5,0,0),
-d(2010,10,31,4,0,0),
-d(2011,4,3,5,0,0),
-d(2011,10,30,4,0,0),
-d(2012,4,1,5,0,0),
-d(2012,10,28,4,0,0),
-d(2013,4,7,5,0,0),
-d(2013,10,27,4,0,0),
-d(2014,4,6,5,0,0),
-d(2014,10,26,4,0,0),
-d(2015,4,5,5,0,0),
-d(2015,10,25,4,0,0),
-d(2016,4,3,5,0,0),
-d(2016,10,30,4,0,0),
-d(2017,4,2,5,0,0),
-d(2017,10,29,4,0,0),
-d(2018,4,1,5,0,0),
-d(2018,10,28,4,0,0),
-d(2019,4,7,5,0,0),
-d(2019,10,27,4,0,0),
-d(2020,4,5,5,0,0),
-d(2020,10,25,4,0,0),
-d(2021,4,4,5,0,0),
-d(2021,10,31,4,0,0),
-d(2022,4,3,5,0,0),
-d(2022,10,30,4,0,0),
-d(2023,4,2,5,0,0),
-d(2023,10,29,4,0,0),
-d(2024,4,7,5,0,0),
-d(2024,10,27,4,0,0),
-d(2025,4,6,5,0,0),
-d(2025,10,26,4,0,0),
-d(2026,4,5,5,0,0),
-d(2026,10,25,4,0,0),
-d(2027,4,4,5,0,0),
-d(2027,10,31,4,0,0),
-d(2028,4,2,5,0,0),
-d(2028,10,29,4,0,0),
-d(2029,4,1,5,0,0),
-d(2029,10,28,4,0,0),
-d(2030,4,7,5,0,0),
-d(2030,10,27,4,0,0),
-d(2031,4,6,5,0,0),
-d(2031,10,26,4,0,0),
-d(2032,4,4,5,0,0),
-d(2032,10,31,4,0,0),
-d(2033,4,3,5,0,0),
-d(2033,10,30,4,0,0),
-d(2034,4,2,5,0,0),
-d(2034,10,29,4,0,0),
-d(2035,4,1,5,0,0),
-d(2035,10,28,4,0,0),
-d(2036,4,6,5,0,0),
-d(2036,10,26,4,0,0),
-d(2037,4,5,5,0,0),
-d(2037,10,25,4,0,0),
- ]
-
- _transition_info = [
-i(-18420,0,'KMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Grand_Turk = Grand_Turk()
-
diff --git a/vendor/pytz/zoneinfo/America/Grenada.py b/vendor/pytz/zoneinfo/America/Grenada.py
deleted file mode 100644
index 37d67e85..00000000
--- a/vendor/pytz/zoneinfo/America/Grenada.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Grenada.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Grenada(DstTzInfo):
- '''America/Grenada timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Grenada'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,7,0),
- ]
-
- _transition_info = [
-i(-14820,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Grenada = Grenada()
-
diff --git a/vendor/pytz/zoneinfo/America/Guadeloupe.py b/vendor/pytz/zoneinfo/America/Guadeloupe.py
deleted file mode 100644
index 19720756..00000000
--- a/vendor/pytz/zoneinfo/America/Guadeloupe.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Guadeloupe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guadeloupe(DstTzInfo):
- '''America/Guadeloupe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Guadeloupe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,6,8,4,6,8),
- ]
-
- _transition_info = [
-i(-14760,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Guadeloupe = Guadeloupe()
-
diff --git a/vendor/pytz/zoneinfo/America/Guatemala.py b/vendor/pytz/zoneinfo/America/Guatemala.py
deleted file mode 100644
index 6d4a29ca..00000000
--- a/vendor/pytz/zoneinfo/America/Guatemala.py
+++ /dev/null
@@ -1,38 +0,0 @@
-'''tzinfo timezone information for America/Guatemala.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guatemala(DstTzInfo):
- '''America/Guatemala timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Guatemala'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,10,5,6,2,4),
-d(1973,11,25,6,0,0),
-d(1974,2,24,5,0,0),
-d(1983,5,21,6,0,0),
-d(1983,9,22,5,0,0),
-d(1991,3,23,6,0,0),
-d(1991,9,7,5,0,0),
-d(2006,4,30,6,0,0),
-d(2006,10,1,5,0,0),
- ]
-
- _transition_info = [
-i(-21720,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Guatemala = Guatemala()
-
diff --git a/vendor/pytz/zoneinfo/America/Guayaquil.py b/vendor/pytz/zoneinfo/America/Guayaquil.py
deleted file mode 100644
index c44a5f14..00000000
--- a/vendor/pytz/zoneinfo/America/Guayaquil.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Guayaquil.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guayaquil(DstTzInfo):
- '''America/Guayaquil timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Guayaquil'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1931,1,1,5,14,0),
- ]
-
- _transition_info = [
-i(-18840,0,'QMT'),
-i(-18000,0,'ECT'),
- ]
-
-Guayaquil = Guayaquil()
-
diff --git a/vendor/pytz/zoneinfo/America/Guyana.py b/vendor/pytz/zoneinfo/America/Guyana.py
deleted file mode 100644
index 3397d5e5..00000000
--- a/vendor/pytz/zoneinfo/America/Guyana.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for America/Guyana.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guyana(DstTzInfo):
- '''America/Guyana timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Guyana'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,3,1,3,52,40),
-d(1966,5,26,3,45,0),
-d(1975,7,31,3,45,0),
-d(1991,1,1,3,0,0),
- ]
-
- _transition_info = [
-i(-13980,0,'LMT'),
-i(-13500,0,'GBGT'),
-i(-13500,0,'GYT'),
-i(-10800,0,'GYT'),
-i(-14400,0,'GYT'),
- ]
-
-Guyana = Guyana()
-
diff --git a/vendor/pytz/zoneinfo/America/Halifax.py b/vendor/pytz/zoneinfo/America/Halifax.py
deleted file mode 100644
index ae673915..00000000
--- a/vendor/pytz/zoneinfo/America/Halifax.py
+++ /dev/null
@@ -1,476 +0,0 @@
-'''tzinfo timezone information for America/Halifax.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Halifax(DstTzInfo):
- '''America/Halifax timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Halifax'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1902,6,15,4,14,24),
-d(1916,4,1,4,0,0),
-d(1916,10,1,3,0,0),
-d(1918,4,14,6,0,0),
-d(1918,10,31,5,0,0),
-d(1920,5,9,4,0,0),
-d(1920,8,29,3,0,0),
-d(1921,5,6,4,0,0),
-d(1921,9,5,3,0,0),
-d(1922,4,30,4,0,0),
-d(1922,9,5,3,0,0),
-d(1923,5,6,4,0,0),
-d(1923,9,4,3,0,0),
-d(1924,5,4,4,0,0),
-d(1924,9,15,3,0,0),
-d(1925,5,3,4,0,0),
-d(1925,9,28,3,0,0),
-d(1926,5,16,4,0,0),
-d(1926,9,13,3,0,0),
-d(1927,5,1,4,0,0),
-d(1927,9,26,3,0,0),
-d(1928,5,13,4,0,0),
-d(1928,9,9,3,0,0),
-d(1929,5,12,4,0,0),
-d(1929,9,3,3,0,0),
-d(1930,5,11,4,0,0),
-d(1930,9,15,3,0,0),
-d(1931,5,10,4,0,0),
-d(1931,9,28,3,0,0),
-d(1932,5,1,4,0,0),
-d(1932,9,26,3,0,0),
-d(1933,4,30,4,0,0),
-d(1933,10,2,3,0,0),
-d(1934,5,20,4,0,0),
-d(1934,9,16,3,0,0),
-d(1935,6,2,4,0,0),
-d(1935,9,30,3,0,0),
-d(1936,6,1,4,0,0),
-d(1936,9,14,3,0,0),
-d(1937,5,2,4,0,0),
-d(1937,9,27,3,0,0),
-d(1938,5,1,4,0,0),
-d(1938,9,26,3,0,0),
-d(1939,5,28,4,0,0),
-d(1939,9,25,3,0,0),
-d(1940,5,5,4,0,0),
-d(1940,9,30,3,0,0),
-d(1941,5,4,4,0,0),
-d(1941,9,29,3,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
-d(1946,4,28,6,0,0),
-d(1946,9,29,5,0,0),
-d(1947,4,27,6,0,0),
-d(1947,9,28,5,0,0),
-d(1948,4,25,6,0,0),
-d(1948,9,26,5,0,0),
-d(1949,4,24,6,0,0),
-d(1949,9,25,5,0,0),
-d(1951,4,29,6,0,0),
-d(1951,9,30,5,0,0),
-d(1952,4,27,6,0,0),
-d(1952,9,28,5,0,0),
-d(1953,4,26,6,0,0),
-d(1953,9,27,5,0,0),
-d(1954,4,25,6,0,0),
-d(1954,9,26,5,0,0),
-d(1956,4,29,6,0,0),
-d(1956,9,30,5,0,0),
-d(1957,4,28,6,0,0),
-d(1957,9,29,5,0,0),
-d(1958,4,27,6,0,0),
-d(1958,9,28,5,0,0),
-d(1959,4,26,6,0,0),
-d(1959,9,27,5,0,0),
-d(1962,4,29,6,0,0),
-d(1962,10,28,5,0,0),
-d(1963,4,28,6,0,0),
-d(1963,10,27,5,0,0),
-d(1964,4,26,6,0,0),
-d(1964,10,25,5,0,0),
-d(1965,4,25,6,0,0),
-d(1965,10,31,5,0,0),
-d(1966,4,24,6,0,0),
-d(1966,10,30,5,0,0),
-d(1967,4,30,6,0,0),
-d(1967,10,29,5,0,0),
-d(1968,4,28,6,0,0),
-d(1968,10,27,5,0,0),
-d(1969,4,27,6,0,0),
-d(1969,10,26,5,0,0),
-d(1970,4,26,6,0,0),
-d(1970,10,25,5,0,0),
-d(1971,4,25,6,0,0),
-d(1971,10,31,5,0,0),
-d(1972,4,30,6,0,0),
-d(1972,10,29,5,0,0),
-d(1973,4,29,6,0,0),
-d(1973,10,28,5,0,0),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,5,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,5,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,5,0,0),
-d(1998,4,5,6,0,0),
-d(1998,10,25,5,0,0),
-d(1999,4,4,6,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,6,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,6,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,6,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,6,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,6,0,0),
-d(2004,10,31,5,0,0),
-d(2005,4,3,6,0,0),
-d(2005,10,30,5,0,0),
-d(2006,4,2,6,0,0),
-d(2006,10,29,5,0,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-15240,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Halifax = Halifax()
-
diff --git a/vendor/pytz/zoneinfo/America/Havana.py b/vendor/pytz/zoneinfo/America/Havana.py
deleted file mode 100644
index 988a380b..00000000
--- a/vendor/pytz/zoneinfo/America/Havana.py
+++ /dev/null
@@ -1,330 +0,0 @@
-'''tzinfo timezone information for America/Havana.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Havana(DstTzInfo):
- '''America/Havana timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Havana'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1925,7,19,17,29,36),
-d(1928,6,10,5,0,0),
-d(1928,10,10,4,0,0),
-d(1940,6,2,5,0,0),
-d(1940,9,1,4,0,0),
-d(1941,6,1,5,0,0),
-d(1941,9,7,4,0,0),
-d(1942,6,7,5,0,0),
-d(1942,9,6,4,0,0),
-d(1945,6,3,5,0,0),
-d(1945,9,2,4,0,0),
-d(1946,6,2,5,0,0),
-d(1946,9,1,4,0,0),
-d(1965,6,1,5,0,0),
-d(1965,9,30,4,0,0),
-d(1966,5,29,5,0,0),
-d(1966,10,2,4,0,0),
-d(1967,4,8,5,0,0),
-d(1967,9,10,4,0,0),
-d(1968,4,14,5,0,0),
-d(1968,9,8,4,0,0),
-d(1969,4,27,5,0,0),
-d(1969,10,26,4,0,0),
-d(1970,4,26,5,0,0),
-d(1970,10,25,4,0,0),
-d(1971,4,25,5,0,0),
-d(1971,10,31,4,0,0),
-d(1972,4,30,5,0,0),
-d(1972,10,8,4,0,0),
-d(1973,4,29,5,0,0),
-d(1973,10,8,4,0,0),
-d(1974,4,28,5,0,0),
-d(1974,10,8,4,0,0),
-d(1975,4,27,5,0,0),
-d(1975,10,26,4,0,0),
-d(1976,4,25,5,0,0),
-d(1976,10,31,4,0,0),
-d(1977,4,24,5,0,0),
-d(1977,10,30,4,0,0),
-d(1978,5,7,5,0,0),
-d(1978,10,8,4,0,0),
-d(1979,3,18,5,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,16,5,0,0),
-d(1980,10,12,4,0,0),
-d(1981,5,10,5,0,0),
-d(1981,10,11,4,0,0),
-d(1982,5,9,5,0,0),
-d(1982,10,10,4,0,0),
-d(1983,5,8,5,0,0),
-d(1983,10,9,4,0,0),
-d(1984,5,6,5,0,0),
-d(1984,10,14,4,0,0),
-d(1985,5,5,5,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,16,5,0,0),
-d(1986,10,12,4,0,0),
-d(1987,3,15,5,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,20,5,0,0),
-d(1988,10,9,4,0,0),
-d(1989,3,19,5,0,0),
-d(1989,10,8,4,0,0),
-d(1990,4,1,5,0,0),
-d(1990,10,14,4,0,0),
-d(1991,4,7,5,0,0),
-d(1991,10,13,5,0,0),
-d(1992,4,5,5,0,0),
-d(1992,10,11,5,0,0),
-d(1993,4,4,5,0,0),
-d(1993,10,10,5,0,0),
-d(1994,4,3,5,0,0),
-d(1994,10,9,5,0,0),
-d(1995,4,2,5,0,0),
-d(1995,10,8,5,0,0),
-d(1996,4,7,5,0,0),
-d(1996,10,6,5,0,0),
-d(1997,4,6,5,0,0),
-d(1997,10,12,5,0,0),
-d(1998,3,29,5,0,0),
-d(1998,10,25,5,0,0),
-d(1999,3,28,5,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,5,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,5,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,5,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,5,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,5,0,0),
-d(2006,10,29,5,0,0),
-d(2007,4,1,5,0,0),
-d(2007,10,28,5,0,0),
-d(2008,4,6,5,0,0),
-d(2008,10,26,5,0,0),
-d(2009,4,5,5,0,0),
-d(2009,10,25,5,0,0),
-d(2010,4,4,5,0,0),
-d(2010,10,31,5,0,0),
-d(2011,4,3,5,0,0),
-d(2011,10,30,5,0,0),
-d(2012,4,1,5,0,0),
-d(2012,10,28,5,0,0),
-d(2013,4,7,5,0,0),
-d(2013,10,27,5,0,0),
-d(2014,4,6,5,0,0),
-d(2014,10,26,5,0,0),
-d(2015,4,5,5,0,0),
-d(2015,10,25,5,0,0),
-d(2016,4,3,5,0,0),
-d(2016,10,30,5,0,0),
-d(2017,4,2,5,0,0),
-d(2017,10,29,5,0,0),
-d(2018,4,1,5,0,0),
-d(2018,10,28,5,0,0),
-d(2019,4,7,5,0,0),
-d(2019,10,27,5,0,0),
-d(2020,4,5,5,0,0),
-d(2020,10,25,5,0,0),
-d(2021,4,4,5,0,0),
-d(2021,10,31,5,0,0),
-d(2022,4,3,5,0,0),
-d(2022,10,30,5,0,0),
-d(2023,4,2,5,0,0),
-d(2023,10,29,5,0,0),
-d(2024,4,7,5,0,0),
-d(2024,10,27,5,0,0),
-d(2025,4,6,5,0,0),
-d(2025,10,26,5,0,0),
-d(2026,4,5,5,0,0),
-d(2026,10,25,5,0,0),
-d(2027,4,4,5,0,0),
-d(2027,10,31,5,0,0),
-d(2028,4,2,5,0,0),
-d(2028,10,29,5,0,0),
-d(2029,4,1,5,0,0),
-d(2029,10,28,5,0,0),
-d(2030,4,7,5,0,0),
-d(2030,10,27,5,0,0),
-d(2031,4,6,5,0,0),
-d(2031,10,26,5,0,0),
-d(2032,4,4,5,0,0),
-d(2032,10,31,5,0,0),
-d(2033,4,3,5,0,0),
-d(2033,10,30,5,0,0),
-d(2034,4,2,5,0,0),
-d(2034,10,29,5,0,0),
-d(2035,4,1,5,0,0),
-d(2035,10,28,5,0,0),
-d(2036,4,6,5,0,0),
-d(2036,10,26,5,0,0),
-d(2037,4,5,5,0,0),
-d(2037,10,25,5,0,0),
- ]
-
- _transition_info = [
-i(-19800,0,'HMT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
- ]
-
-Havana = Havana()
-
diff --git a/vendor/pytz/zoneinfo/America/Hermosillo.py b/vendor/pytz/zoneinfo/America/Hermosillo.py
deleted file mode 100644
index 926ea817..00000000
--- a/vendor/pytz/zoneinfo/America/Hermosillo.py
+++ /dev/null
@@ -1,50 +0,0 @@
-'''tzinfo timezone information for America/Hermosillo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hermosillo(DstTzInfo):
- '''America/Hermosillo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Hermosillo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1942,4,24,6,0,0),
-d(1949,1,14,7,0,0),
-d(1970,1,1,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
- ]
-
- _transition_info = [
-i(-26640,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Hermosillo = Hermosillo()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Indianapolis.py b/vendor/pytz/zoneinfo/America/Indiana/Indianapolis.py
deleted file mode 100644
index 21369f1b..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Indianapolis.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Indianapolis.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Indianapolis(DstTzInfo):
- '''America/Indiana/Indianapolis timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Indianapolis'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1941,6,22,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Indianapolis = Indianapolis()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Knox.py b/vendor/pytz/zoneinfo/America/Indiana/Knox.py
deleted file mode 100644
index 4ee2f5d4..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Knox.py
+++ /dev/null
@@ -1,326 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Knox.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Knox(DstTzInfo):
- '''America/Indiana/Knox timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Knox'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,10,30,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1963,10,27,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Knox = Knox()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Marengo.py b/vendor/pytz/zoneinfo/America/Indiana/Marengo.py
deleted file mode 100644
index 3eca6df0..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Marengo.py
+++ /dev/null
@@ -1,224 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Marengo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Marengo(DstTzInfo):
- '''America/Indiana/Marengo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Marengo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,9,30,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,9,27,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,9,25,7,0,0),
-d(1961,4,30,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Marengo = Marengo()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Petersburg.py b/vendor/pytz/zoneinfo/America/Indiana/Petersburg.py
deleted file mode 100644
index 71b842d1..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Petersburg.py
+++ /dev/null
@@ -1,250 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Petersburg.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Petersburg(DstTzInfo):
- '''America/Indiana/Petersburg timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Petersburg'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1955,5,1,6,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,9,30,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,9,27,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,9,25,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1962,10,28,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,10,27,7,0,0),
-d(1964,4,26,8,0,0),
-d(1964,10,25,7,0,0),
-d(1965,4,25,8,0,0),
-d(1966,10,30,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Petersburg = Petersburg()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Vevay.py b/vendor/pytz/zoneinfo/America/Indiana/Vevay.py
deleted file mode 100644
index 614e1de4..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Vevay.py
+++ /dev/null
@@ -1,180 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Vevay.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vevay(DstTzInfo):
- '''America/Indiana/Vevay timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Vevay'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1954,4,25,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Vevay = Vevay()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/Vincennes.py b/vendor/pytz/zoneinfo/America/Indiana/Vincennes.py
deleted file mode 100644
index 8365daeb..00000000
--- a/vendor/pytz/zoneinfo/America/Indiana/Vincennes.py
+++ /dev/null
@@ -1,220 +0,0 @@
-'''tzinfo timezone information for America/Indiana/Vincennes.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vincennes(DstTzInfo):
- '''America/Indiana/Vincennes timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indiana/Vincennes'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,5,1,6,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,9,30,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,9,27,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,9,24,7,0,0),
-d(1962,4,29,8,0,0),
-d(1962,10,28,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,10,27,7,0,0),
-d(1964,4,26,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Vincennes = Vincennes()
-
diff --git a/vendor/pytz/zoneinfo/America/Indiana/__init__.py b/vendor/pytz/zoneinfo/America/Indiana/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/America/Indianapolis.py b/vendor/pytz/zoneinfo/America/Indianapolis.py
deleted file mode 100644
index 5cd52ede..00000000
--- a/vendor/pytz/zoneinfo/America/Indianapolis.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for America/Indianapolis.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Indianapolis(DstTzInfo):
- '''America/Indianapolis timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Indianapolis'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1941,6,22,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Indianapolis = Indianapolis()
-
diff --git a/vendor/pytz/zoneinfo/America/Inuvik.py b/vendor/pytz/zoneinfo/America/Inuvik.py
deleted file mode 100644
index 235d774d..00000000
--- a/vendor/pytz/zoneinfo/America/Inuvik.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for America/Inuvik.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Inuvik(DstTzInfo):
- '''America/Inuvik timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Inuvik'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,5,25,10,0,0),
-d(1919,11,1,7,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1965,4,25,8,0,0),
-d(1965,10,31,8,0,0),
-d(1979,4,29,10,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-21600,7200,'PDDT'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Inuvik = Inuvik()
-
diff --git a/vendor/pytz/zoneinfo/America/Iqaluit.py b/vendor/pytz/zoneinfo/America/Iqaluit.py
deleted file mode 100644
index 69597a4e..00000000
--- a/vendor/pytz/zoneinfo/America/Iqaluit.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for America/Iqaluit.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Iqaluit(DstTzInfo):
- '''America/Iqaluit timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Iqaluit'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,7,0,0),
-d(1918,10,27,6,0,0),
-d(1919,5,25,7,0,0),
-d(1919,11,1,4,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1965,4,25,5,0,0),
-d(1965,10,31,5,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-10800,7200,'EDDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Iqaluit = Iqaluit()
-
diff --git a/vendor/pytz/zoneinfo/America/Jamaica.py b/vendor/pytz/zoneinfo/America/Jamaica.py
deleted file mode 100644
index e9a82f58..00000000
--- a/vendor/pytz/zoneinfo/America/Jamaica.py
+++ /dev/null
@@ -1,62 +0,0 @@
-'''tzinfo timezone information for America/Jamaica.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jamaica(DstTzInfo):
- '''America/Jamaica timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Jamaica'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,1,5,7,12),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
- ]
-
- _transition_info = [
-i(-18420,0,'KMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Jamaica = Jamaica()
-
diff --git a/vendor/pytz/zoneinfo/America/Jujuy.py b/vendor/pytz/zoneinfo/America/Jujuy.py
deleted file mode 100644
index 3a1025b7..00000000
--- a/vendor/pytz/zoneinfo/America/Jujuy.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Jujuy.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jujuy(DstTzInfo):
- '''America/Jujuy timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Jujuy'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,28,4,0,0),
-d(1991,3,17,3,0,0),
-d(1991,10,6,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Jujuy = Jujuy()
-
diff --git a/vendor/pytz/zoneinfo/America/Juneau.py b/vendor/pytz/zoneinfo/America/Juneau.py
deleted file mode 100644
index def09cc7..00000000
--- a/vendor/pytz/zoneinfo/America/Juneau.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for America/Juneau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Juneau(DstTzInfo):
- '''America/Juneau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Juneau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,1,6,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,2,23,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1983,11,30,9,0,0),
-d(1984,4,29,11,0,0),
-d(1984,10,28,10,0,0),
-d(1985,4,28,11,0,0),
-d(1985,10,27,10,0,0),
-d(1986,4,27,11,0,0),
-d(1986,10,26,10,0,0),
-d(1987,4,5,11,0,0),
-d(1987,10,25,10,0,0),
-d(1988,4,3,11,0,0),
-d(1988,10,30,10,0,0),
-d(1989,4,2,11,0,0),
-d(1989,10,29,10,0,0),
-d(1990,4,1,11,0,0),
-d(1990,10,28,10,0,0),
-d(1991,4,7,11,0,0),
-d(1991,10,27,10,0,0),
-d(1992,4,5,11,0,0),
-d(1992,10,25,10,0,0),
-d(1993,4,4,11,0,0),
-d(1993,10,31,10,0,0),
-d(1994,4,3,11,0,0),
-d(1994,10,30,10,0,0),
-d(1995,4,2,11,0,0),
-d(1995,10,29,10,0,0),
-d(1996,4,7,11,0,0),
-d(1996,10,27,10,0,0),
-d(1997,4,6,11,0,0),
-d(1997,10,26,10,0,0),
-d(1998,4,5,11,0,0),
-d(1998,10,25,10,0,0),
-d(1999,4,4,11,0,0),
-d(1999,10,31,10,0,0),
-d(2000,4,2,11,0,0),
-d(2000,10,29,10,0,0),
-d(2001,4,1,11,0,0),
-d(2001,10,28,10,0,0),
-d(2002,4,7,11,0,0),
-d(2002,10,27,10,0,0),
-d(2003,4,6,11,0,0),
-d(2003,10,26,10,0,0),
-d(2004,4,4,11,0,0),
-d(2004,10,31,10,0,0),
-d(2005,4,3,11,0,0),
-d(2005,10,30,10,0,0),
-d(2006,4,2,11,0,0),
-d(2006,10,29,10,0,0),
-d(2007,3,11,11,0,0),
-d(2007,11,4,10,0,0),
-d(2008,3,9,11,0,0),
-d(2008,11,2,10,0,0),
-d(2009,3,8,11,0,0),
-d(2009,11,1,10,0,0),
-d(2010,3,14,11,0,0),
-d(2010,11,7,10,0,0),
-d(2011,3,13,11,0,0),
-d(2011,11,6,10,0,0),
-d(2012,3,11,11,0,0),
-d(2012,11,4,10,0,0),
-d(2013,3,10,11,0,0),
-d(2013,11,3,10,0,0),
-d(2014,3,9,11,0,0),
-d(2014,11,2,10,0,0),
-d(2015,3,8,11,0,0),
-d(2015,11,1,10,0,0),
-d(2016,3,13,11,0,0),
-d(2016,11,6,10,0,0),
-d(2017,3,12,11,0,0),
-d(2017,11,5,10,0,0),
-d(2018,3,11,11,0,0),
-d(2018,11,4,10,0,0),
-d(2019,3,10,11,0,0),
-d(2019,11,3,10,0,0),
-d(2020,3,8,11,0,0),
-d(2020,11,1,10,0,0),
-d(2021,3,14,11,0,0),
-d(2021,11,7,10,0,0),
-d(2022,3,13,11,0,0),
-d(2022,11,6,10,0,0),
-d(2023,3,12,11,0,0),
-d(2023,11,5,10,0,0),
-d(2024,3,10,11,0,0),
-d(2024,11,3,10,0,0),
-d(2025,3,9,11,0,0),
-d(2025,11,2,10,0,0),
-d(2026,3,8,11,0,0),
-d(2026,11,1,10,0,0),
-d(2027,3,14,11,0,0),
-d(2027,11,7,10,0,0),
-d(2028,3,12,11,0,0),
-d(2028,11,5,10,0,0),
-d(2029,3,11,11,0,0),
-d(2029,11,4,10,0,0),
-d(2030,3,10,11,0,0),
-d(2030,11,3,10,0,0),
-d(2031,3,9,11,0,0),
-d(2031,11,2,10,0,0),
-d(2032,3,14,11,0,0),
-d(2032,11,7,10,0,0),
-d(2033,3,13,11,0,0),
-d(2033,11,6,10,0,0),
-d(2034,3,12,11,0,0),
-d(2034,11,5,10,0,0),
-d(2035,3,11,11,0,0),
-d(2035,11,4,10,0,0),
-d(2036,3,9,11,0,0),
-d(2036,11,2,10,0,0),
-d(2037,3,8,11,0,0),
-d(2037,11,1,10,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-32400,0,'YST'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
- ]
-
-Juneau = Juneau()
-
diff --git a/vendor/pytz/zoneinfo/America/Kentucky/Louisville.py b/vendor/pytz/zoneinfo/America/Kentucky/Louisville.py
deleted file mode 100644
index 501f4566..00000000
--- a/vendor/pytz/zoneinfo/America/Kentucky/Louisville.py
+++ /dev/null
@@ -1,374 +0,0 @@
-'''tzinfo timezone information for America/Kentucky/Louisville.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Louisville(DstTzInfo):
- '''America/Kentucky/Louisville timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Kentucky/Louisville'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1921,5,1,8,0,0),
-d(1921,9,1,7,0,0),
-d(1941,4,27,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,1,1,6,0,0),
-d(1946,6,2,7,0,0),
-d(1947,4,27,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,10,27,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,10,26,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,7,23,7,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Louisville = Louisville()
-
diff --git a/vendor/pytz/zoneinfo/America/Kentucky/Monticello.py b/vendor/pytz/zoneinfo/America/Kentucky/Monticello.py
deleted file mode 100644
index a74d82b9..00000000
--- a/vendor/pytz/zoneinfo/America/Kentucky/Monticello.py
+++ /dev/null
@@ -1,314 +0,0 @@
-'''tzinfo timezone information for America/Kentucky/Monticello.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Monticello(DstTzInfo):
- '''America/Kentucky/Monticello timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Kentucky/Monticello'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Monticello = Monticello()
-
diff --git a/vendor/pytz/zoneinfo/America/Kentucky/__init__.py b/vendor/pytz/zoneinfo/America/Kentucky/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/America/Knox_IN.py b/vendor/pytz/zoneinfo/America/Knox_IN.py
deleted file mode 100644
index b0f3b85a..00000000
--- a/vendor/pytz/zoneinfo/America/Knox_IN.py
+++ /dev/null
@@ -1,326 +0,0 @@
-'''tzinfo timezone information for America/Knox_IN.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Knox_IN(DstTzInfo):
- '''America/Knox_IN timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Knox_IN'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,10,30,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1963,10,27,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Knox_IN = Knox_IN()
-
diff --git a/vendor/pytz/zoneinfo/America/La_Paz.py b/vendor/pytz/zoneinfo/America/La_Paz.py
deleted file mode 100644
index bca04b08..00000000
--- a/vendor/pytz/zoneinfo/America/La_Paz.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for America/La_Paz.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class La_Paz(DstTzInfo):
- '''America/La_Paz timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/La_Paz'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1931,10,15,4,32,36),
-d(1932,3,21,3,32,36),
- ]
-
- _transition_info = [
-i(-16380,0,'CMT'),
-i(-12780,3600,'BOST'),
-i(-14400,0,'BOT'),
- ]
-
-La_Paz = La_Paz()
-
diff --git a/vendor/pytz/zoneinfo/America/Lima.py b/vendor/pytz/zoneinfo/America/Lima.py
deleted file mode 100644
index 657d87a5..00000000
--- a/vendor/pytz/zoneinfo/America/Lima.py
+++ /dev/null
@@ -1,50 +0,0 @@
-'''tzinfo timezone information for America/Lima.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lima(DstTzInfo):
- '''America/Lima timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Lima'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,7,28,5,8,36),
-d(1938,1,1,5,0,0),
-d(1938,4,1,4,0,0),
-d(1938,9,25,5,0,0),
-d(1939,3,26,4,0,0),
-d(1939,9,24,5,0,0),
-d(1940,3,24,4,0,0),
-d(1986,1,1,5,0,0),
-d(1986,4,1,4,0,0),
-d(1987,1,1,5,0,0),
-d(1987,4,1,4,0,0),
-d(1990,1,1,5,0,0),
-d(1990,4,1,4,0,0),
-d(1994,1,1,5,0,0),
-d(1994,4,1,4,0,0),
- ]
-
- _transition_info = [
-i(-18540,0,'LMT'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
-i(-14400,3600,'PEST'),
-i(-18000,0,'PET'),
- ]
-
-Lima = Lima()
-
diff --git a/vendor/pytz/zoneinfo/America/Los_Angeles.py b/vendor/pytz/zoneinfo/America/Los_Angeles.py
deleted file mode 100644
index 5add3d1a..00000000
--- a/vendor/pytz/zoneinfo/America/Los_Angeles.py
+++ /dev/null
@@ -1,390 +0,0 @@
-'''tzinfo timezone information for America/Los_Angeles.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Los_Angeles(DstTzInfo):
- '''America/Los_Angeles timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Los_Angeles'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,3,30,10,0,0),
-d(1919,10,26,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1948,3,14,10,0,0),
-d(1949,1,1,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,1,6,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,2,23,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Los_Angeles = Los_Angeles()
-
diff --git a/vendor/pytz/zoneinfo/America/Louisville.py b/vendor/pytz/zoneinfo/America/Louisville.py
deleted file mode 100644
index 1c0e3ccf..00000000
--- a/vendor/pytz/zoneinfo/America/Louisville.py
+++ /dev/null
@@ -1,374 +0,0 @@
-'''tzinfo timezone information for America/Louisville.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Louisville(DstTzInfo):
- '''America/Louisville timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Louisville'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1921,5,1,8,0,0),
-d(1921,9,1,7,0,0),
-d(1941,4,27,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,1,1,6,0,0),
-d(1946,6,2,7,0,0),
-d(1947,4,27,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,10,27,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,10,26,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,7,23,7,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Louisville = Louisville()
-
diff --git a/vendor/pytz/zoneinfo/America/Maceio.py b/vendor/pytz/zoneinfo/America/Maceio.py
deleted file mode 100644
index d4ac830c..00000000
--- a/vendor/pytz/zoneinfo/America/Maceio.py
+++ /dev/null
@@ -1,102 +0,0 @@
-'''tzinfo timezone information for America/Maceio.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Maceio(DstTzInfo):
- '''America/Maceio timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Maceio'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,22,52),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1995,10,15,3,0,0),
-d(1996,2,11,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2000,10,22,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
- ]
-
- _transition_info = [
-i(-8580,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Maceio = Maceio()
-
diff --git a/vendor/pytz/zoneinfo/America/Managua.py b/vendor/pytz/zoneinfo/America/Managua.py
deleted file mode 100644
index bf8a6beb..00000000
--- a/vendor/pytz/zoneinfo/America/Managua.py
+++ /dev/null
@@ -1,50 +0,0 @@
-'''tzinfo timezone information for America/Managua.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Managua(DstTzInfo):
- '''America/Managua timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Managua'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1934,6,23,5,45,12),
-d(1973,5,1,6,0,0),
-d(1975,2,16,5,0,0),
-d(1979,3,18,6,0,0),
-d(1979,6,25,5,0,0),
-d(1980,3,16,6,0,0),
-d(1980,6,23,5,0,0),
-d(1992,1,1,10,0,0),
-d(1992,9,24,5,0,0),
-d(1993,1,1,6,0,0),
-d(1997,1,1,5,0,0),
-d(2005,4,10,6,0,0),
-d(2005,10,2,5,0,0),
-d(2006,4,30,8,0,0),
-d(2006,10,1,6,0,0),
- ]
-
- _transition_info = [
-i(-20700,0,'MMT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Managua = Managua()
-
diff --git a/vendor/pytz/zoneinfo/America/Manaus.py b/vendor/pytz/zoneinfo/America/Manaus.py
deleted file mode 100644
index b190af1b..00000000
--- a/vendor/pytz/zoneinfo/America/Manaus.py
+++ /dev/null
@@ -1,82 +0,0 @@
-'''tzinfo timezone information for America/Manaus.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Manaus(DstTzInfo):
- '''America/Manaus timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Manaus'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,0,4),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
-d(1993,10,17,4,0,0),
-d(1994,2,20,3,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
- ]
-
-Manaus = Manaus()
-
diff --git a/vendor/pytz/zoneinfo/America/Martinique.py b/vendor/pytz/zoneinfo/America/Martinique.py
deleted file mode 100644
index 7154b4f2..00000000
--- a/vendor/pytz/zoneinfo/America/Martinique.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for America/Martinique.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Martinique(DstTzInfo):
- '''America/Martinique timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Martinique'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,1,4,4,20),
-d(1980,4,6,4,0,0),
-d(1980,9,28,3,0,0),
- ]
-
- _transition_info = [
-i(-14640,0,'FFMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Martinique = Martinique()
-
diff --git a/vendor/pytz/zoneinfo/America/Mazatlan.py b/vendor/pytz/zoneinfo/America/Mazatlan.py
deleted file mode 100644
index 30490aa4..00000000
--- a/vendor/pytz/zoneinfo/America/Mazatlan.py
+++ /dev/null
@@ -1,206 +0,0 @@
-'''tzinfo timezone information for America/Mazatlan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mazatlan(DstTzInfo):
- '''America/Mazatlan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Mazatlan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1942,4,24,6,0,0),
-d(1949,1,14,7,0,0),
-d(1970,1,1,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,5,6,9,0,0),
-d(2001,9,30,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,4,1,9,0,0),
-d(2007,10,28,8,0,0),
-d(2008,4,6,9,0,0),
-d(2008,10,26,8,0,0),
-d(2009,4,5,9,0,0),
-d(2009,10,25,8,0,0),
-d(2010,4,4,9,0,0),
-d(2010,10,31,8,0,0),
-d(2011,4,3,9,0,0),
-d(2011,10,30,8,0,0),
-d(2012,4,1,9,0,0),
-d(2012,10,28,8,0,0),
-d(2013,4,7,9,0,0),
-d(2013,10,27,8,0,0),
-d(2014,4,6,9,0,0),
-d(2014,10,26,8,0,0),
-d(2015,4,5,9,0,0),
-d(2015,10,25,8,0,0),
-d(2016,4,3,9,0,0),
-d(2016,10,30,8,0,0),
-d(2017,4,2,9,0,0),
-d(2017,10,29,8,0,0),
-d(2018,4,1,9,0,0),
-d(2018,10,28,8,0,0),
-d(2019,4,7,9,0,0),
-d(2019,10,27,8,0,0),
-d(2020,4,5,9,0,0),
-d(2020,10,25,8,0,0),
-d(2021,4,4,9,0,0),
-d(2021,10,31,8,0,0),
-d(2022,4,3,9,0,0),
-d(2022,10,30,8,0,0),
-d(2023,4,2,9,0,0),
-d(2023,10,29,8,0,0),
-d(2024,4,7,9,0,0),
-d(2024,10,27,8,0,0),
-d(2025,4,6,9,0,0),
-d(2025,10,26,8,0,0),
-d(2026,4,5,9,0,0),
-d(2026,10,25,8,0,0),
-d(2027,4,4,9,0,0),
-d(2027,10,31,8,0,0),
-d(2028,4,2,9,0,0),
-d(2028,10,29,8,0,0),
-d(2029,4,1,9,0,0),
-d(2029,10,28,8,0,0),
-d(2030,4,7,9,0,0),
-d(2030,10,27,8,0,0),
-d(2031,4,6,9,0,0),
-d(2031,10,26,8,0,0),
-d(2032,4,4,9,0,0),
-d(2032,10,31,8,0,0),
-d(2033,4,3,9,0,0),
-d(2033,10,30,8,0,0),
-d(2034,4,2,9,0,0),
-d(2034,10,29,8,0,0),
-d(2035,4,1,9,0,0),
-d(2035,10,28,8,0,0),
-d(2036,4,6,9,0,0),
-d(2036,10,26,8,0,0),
-d(2037,4,5,9,0,0),
-d(2037,10,25,8,0,0),
- ]
-
- _transition_info = [
-i(-25560,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Mazatlan = Mazatlan()
-
diff --git a/vendor/pytz/zoneinfo/America/Mendoza.py b/vendor/pytz/zoneinfo/America/Mendoza.py
deleted file mode 100644
index 2c00395a..00000000
--- a/vendor/pytz/zoneinfo/America/Mendoza.py
+++ /dev/null
@@ -1,136 +0,0 @@
-'''tzinfo timezone information for America/Mendoza.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mendoza(DstTzInfo):
- '''America/Mendoza timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Mendoza'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,15,4,0,0),
-d(1991,3,1,3,0,0),
-d(1991,10,15,4,0,0),
-d(1992,3,1,3,0,0),
-d(1992,10,18,4,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
-d(2004,5,23,3,0,0),
-d(2004,9,26,4,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-10800,3600,'WARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'WART'),
-i(-10800,0,'ART'),
- ]
-
-Mendoza = Mendoza()
-
diff --git a/vendor/pytz/zoneinfo/America/Menominee.py b/vendor/pytz/zoneinfo/America/Menominee.py
deleted file mode 100644
index 63a65310..00000000
--- a/vendor/pytz/zoneinfo/America/Menominee.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for America/Menominee.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Menominee(DstTzInfo):
- '''America/Menominee timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Menominee'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1966,4,24,8,0,0),
-d(1966,10,30,7,0,0),
-d(1969,4,27,8,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Menominee = Menominee()
-
diff --git a/vendor/pytz/zoneinfo/America/Merida.py b/vendor/pytz/zoneinfo/America/Merida.py
deleted file mode 100644
index e50f96ea..00000000
--- a/vendor/pytz/zoneinfo/America/Merida.py
+++ /dev/null
@@ -1,194 +0,0 @@
-'''tzinfo timezone information for America/Merida.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Merida(DstTzInfo):
- '''America/Merida timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Merida'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,6,0,0),
-d(1981,12,23,6,0,0),
-d(1982,12,2,5,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,5,6,8,0,0),
-d(2001,9,30,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,4,1,8,0,0),
-d(2007,10,28,7,0,0),
-d(2008,4,6,8,0,0),
-d(2008,10,26,7,0,0),
-d(2009,4,5,8,0,0),
-d(2009,10,25,7,0,0),
-d(2010,4,4,8,0,0),
-d(2010,10,31,7,0,0),
-d(2011,4,3,8,0,0),
-d(2011,10,30,7,0,0),
-d(2012,4,1,8,0,0),
-d(2012,10,28,7,0,0),
-d(2013,4,7,8,0,0),
-d(2013,10,27,7,0,0),
-d(2014,4,6,8,0,0),
-d(2014,10,26,7,0,0),
-d(2015,4,5,8,0,0),
-d(2015,10,25,7,0,0),
-d(2016,4,3,8,0,0),
-d(2016,10,30,7,0,0),
-d(2017,4,2,8,0,0),
-d(2017,10,29,7,0,0),
-d(2018,4,1,8,0,0),
-d(2018,10,28,7,0,0),
-d(2019,4,7,8,0,0),
-d(2019,10,27,7,0,0),
-d(2020,4,5,8,0,0),
-d(2020,10,25,7,0,0),
-d(2021,4,4,8,0,0),
-d(2021,10,31,7,0,0),
-d(2022,4,3,8,0,0),
-d(2022,10,30,7,0,0),
-d(2023,4,2,8,0,0),
-d(2023,10,29,7,0,0),
-d(2024,4,7,8,0,0),
-d(2024,10,27,7,0,0),
-d(2025,4,6,8,0,0),
-d(2025,10,26,7,0,0),
-d(2026,4,5,8,0,0),
-d(2026,10,25,7,0,0),
-d(2027,4,4,8,0,0),
-d(2027,10,31,7,0,0),
-d(2028,4,2,8,0,0),
-d(2028,10,29,7,0,0),
-d(2029,4,1,8,0,0),
-d(2029,10,28,7,0,0),
-d(2030,4,7,8,0,0),
-d(2030,10,27,7,0,0),
-d(2031,4,6,8,0,0),
-d(2031,10,26,7,0,0),
-d(2032,4,4,8,0,0),
-d(2032,10,31,7,0,0),
-d(2033,4,3,8,0,0),
-d(2033,10,30,7,0,0),
-d(2034,4,2,8,0,0),
-d(2034,10,29,7,0,0),
-d(2035,4,1,8,0,0),
-d(2035,10,28,7,0,0),
-d(2036,4,6,8,0,0),
-d(2036,10,26,7,0,0),
-d(2037,4,5,8,0,0),
-d(2037,10,25,7,0,0),
- ]
-
- _transition_info = [
-i(-21480,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Merida = Merida()
-
diff --git a/vendor/pytz/zoneinfo/America/Mexico_City.py b/vendor/pytz/zoneinfo/America/Mexico_City.py
deleted file mode 100644
index e9b6ed0b..00000000
--- a/vendor/pytz/zoneinfo/America/Mexico_City.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for America/Mexico_City.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mexico_City(DstTzInfo):
- '''America/Mexico_City timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Mexico_City'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1939,2,5,6,0,0),
-d(1939,6,25,5,0,0),
-d(1940,12,9,6,0,0),
-d(1941,4,1,5,0,0),
-d(1943,12,16,6,0,0),
-d(1944,5,1,5,0,0),
-d(1950,2,12,6,0,0),
-d(1950,7,30,5,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,5,6,8,0,0),
-d(2001,9,30,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,4,1,8,0,0),
-d(2007,10,28,7,0,0),
-d(2008,4,6,8,0,0),
-d(2008,10,26,7,0,0),
-d(2009,4,5,8,0,0),
-d(2009,10,25,7,0,0),
-d(2010,4,4,8,0,0),
-d(2010,10,31,7,0,0),
-d(2011,4,3,8,0,0),
-d(2011,10,30,7,0,0),
-d(2012,4,1,8,0,0),
-d(2012,10,28,7,0,0),
-d(2013,4,7,8,0,0),
-d(2013,10,27,7,0,0),
-d(2014,4,6,8,0,0),
-d(2014,10,26,7,0,0),
-d(2015,4,5,8,0,0),
-d(2015,10,25,7,0,0),
-d(2016,4,3,8,0,0),
-d(2016,10,30,7,0,0),
-d(2017,4,2,8,0,0),
-d(2017,10,29,7,0,0),
-d(2018,4,1,8,0,0),
-d(2018,10,28,7,0,0),
-d(2019,4,7,8,0,0),
-d(2019,10,27,7,0,0),
-d(2020,4,5,8,0,0),
-d(2020,10,25,7,0,0),
-d(2021,4,4,8,0,0),
-d(2021,10,31,7,0,0),
-d(2022,4,3,8,0,0),
-d(2022,10,30,7,0,0),
-d(2023,4,2,8,0,0),
-d(2023,10,29,7,0,0),
-d(2024,4,7,8,0,0),
-d(2024,10,27,7,0,0),
-d(2025,4,6,8,0,0),
-d(2025,10,26,7,0,0),
-d(2026,4,5,8,0,0),
-d(2026,10,25,7,0,0),
-d(2027,4,4,8,0,0),
-d(2027,10,31,7,0,0),
-d(2028,4,2,8,0,0),
-d(2028,10,29,7,0,0),
-d(2029,4,1,8,0,0),
-d(2029,10,28,7,0,0),
-d(2030,4,7,8,0,0),
-d(2030,10,27,7,0,0),
-d(2031,4,6,8,0,0),
-d(2031,10,26,7,0,0),
-d(2032,4,4,8,0,0),
-d(2032,10,31,7,0,0),
-d(2033,4,3,8,0,0),
-d(2033,10,30,7,0,0),
-d(2034,4,2,8,0,0),
-d(2034,10,29,7,0,0),
-d(2035,4,1,8,0,0),
-d(2035,10,28,7,0,0),
-d(2036,4,6,8,0,0),
-d(2036,10,26,7,0,0),
-d(2037,4,5,8,0,0),
-d(2037,10,25,7,0,0),
- ]
-
- _transition_info = [
-i(-23820,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Mexico_City = Mexico_City()
-
diff --git a/vendor/pytz/zoneinfo/America/Miquelon.py b/vendor/pytz/zoneinfo/America/Miquelon.py
deleted file mode 100644
index f4dedbfc..00000000
--- a/vendor/pytz/zoneinfo/America/Miquelon.py
+++ /dev/null
@@ -1,228 +0,0 @@
-'''tzinfo timezone information for America/Miquelon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Miquelon(DstTzInfo):
- '''America/Miquelon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Miquelon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,15,3,44,40),
-d(1980,5,1,4,0,0),
-d(1987,4,5,5,0,0),
-d(1987,10,25,4,0,0),
-d(1988,4,3,5,0,0),
-d(1988,10,30,4,0,0),
-d(1989,4,2,5,0,0),
-d(1989,10,29,4,0,0),
-d(1990,4,1,5,0,0),
-d(1990,10,28,4,0,0),
-d(1991,4,7,5,0,0),
-d(1991,10,27,4,0,0),
-d(1992,4,5,5,0,0),
-d(1992,10,25,4,0,0),
-d(1993,4,4,5,0,0),
-d(1993,10,31,4,0,0),
-d(1994,4,3,5,0,0),
-d(1994,10,30,4,0,0),
-d(1995,4,2,5,0,0),
-d(1995,10,29,4,0,0),
-d(1996,4,7,5,0,0),
-d(1996,10,27,4,0,0),
-d(1997,4,6,5,0,0),
-d(1997,10,26,4,0,0),
-d(1998,4,5,5,0,0),
-d(1998,10,25,4,0,0),
-d(1999,4,4,5,0,0),
-d(1999,10,31,4,0,0),
-d(2000,4,2,5,0,0),
-d(2000,10,29,4,0,0),
-d(2001,4,1,5,0,0),
-d(2001,10,28,4,0,0),
-d(2002,4,7,5,0,0),
-d(2002,10,27,4,0,0),
-d(2003,4,6,5,0,0),
-d(2003,10,26,4,0,0),
-d(2004,4,4,5,0,0),
-d(2004,10,31,4,0,0),
-d(2005,4,3,5,0,0),
-d(2005,10,30,4,0,0),
-d(2006,4,2,5,0,0),
-d(2006,10,29,4,0,0),
-d(2007,3,11,5,0,0),
-d(2007,11,4,4,0,0),
-d(2008,3,9,5,0,0),
-d(2008,11,2,4,0,0),
-d(2009,3,8,5,0,0),
-d(2009,11,1,4,0,0),
-d(2010,3,14,5,0,0),
-d(2010,11,7,4,0,0),
-d(2011,3,13,5,0,0),
-d(2011,11,6,4,0,0),
-d(2012,3,11,5,0,0),
-d(2012,11,4,4,0,0),
-d(2013,3,10,5,0,0),
-d(2013,11,3,4,0,0),
-d(2014,3,9,5,0,0),
-d(2014,11,2,4,0,0),
-d(2015,3,8,5,0,0),
-d(2015,11,1,4,0,0),
-d(2016,3,13,5,0,0),
-d(2016,11,6,4,0,0),
-d(2017,3,12,5,0,0),
-d(2017,11,5,4,0,0),
-d(2018,3,11,5,0,0),
-d(2018,11,4,4,0,0),
-d(2019,3,10,5,0,0),
-d(2019,11,3,4,0,0),
-d(2020,3,8,5,0,0),
-d(2020,11,1,4,0,0),
-d(2021,3,14,5,0,0),
-d(2021,11,7,4,0,0),
-d(2022,3,13,5,0,0),
-d(2022,11,6,4,0,0),
-d(2023,3,12,5,0,0),
-d(2023,11,5,4,0,0),
-d(2024,3,10,5,0,0),
-d(2024,11,3,4,0,0),
-d(2025,3,9,5,0,0),
-d(2025,11,2,4,0,0),
-d(2026,3,8,5,0,0),
-d(2026,11,1,4,0,0),
-d(2027,3,14,5,0,0),
-d(2027,11,7,4,0,0),
-d(2028,3,12,5,0,0),
-d(2028,11,5,4,0,0),
-d(2029,3,11,5,0,0),
-d(2029,11,4,4,0,0),
-d(2030,3,10,5,0,0),
-d(2030,11,3,4,0,0),
-d(2031,3,9,5,0,0),
-d(2031,11,2,4,0,0),
-d(2032,3,14,5,0,0),
-d(2032,11,7,4,0,0),
-d(2033,3,13,5,0,0),
-d(2033,11,6,4,0,0),
-d(2034,3,12,5,0,0),
-d(2034,11,5,4,0,0),
-d(2035,3,11,5,0,0),
-d(2035,11,4,4,0,0),
-d(2036,3,9,5,0,0),
-d(2036,11,2,4,0,0),
-d(2037,3,8,5,0,0),
-d(2037,11,1,4,0,0),
- ]
-
- _transition_info = [
-i(-13500,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
-i(-7200,3600,'PMDT'),
-i(-10800,0,'PMST'),
- ]
-
-Miquelon = Miquelon()
-
diff --git a/vendor/pytz/zoneinfo/America/Moncton.py b/vendor/pytz/zoneinfo/America/Moncton.py
deleted file mode 100644
index f72c5e0a..00000000
--- a/vendor/pytz/zoneinfo/America/Moncton.py
+++ /dev/null
@@ -1,432 +0,0 @@
-'''tzinfo timezone information for America/Moncton.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Moncton(DstTzInfo):
- '''America/Moncton timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Moncton'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1902,6,15,5,0,0),
-d(1918,4,14,6,0,0),
-d(1918,10,31,5,0,0),
-d(1933,6,11,5,0,0),
-d(1933,9,10,4,0,0),
-d(1934,6,10,5,0,0),
-d(1934,9,9,4,0,0),
-d(1935,6,9,5,0,0),
-d(1935,9,8,4,0,0),
-d(1936,6,7,5,0,0),
-d(1936,9,6,4,0,0),
-d(1937,6,6,5,0,0),
-d(1937,9,5,4,0,0),
-d(1938,6,5,5,0,0),
-d(1938,9,4,4,0,0),
-d(1939,5,27,5,0,0),
-d(1939,9,23,4,0,0),
-d(1940,5,19,5,0,0),
-d(1940,9,21,4,0,0),
-d(1941,5,4,5,0,0),
-d(1941,9,27,4,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
-d(1946,4,28,6,0,0),
-d(1946,9,29,5,0,0),
-d(1947,4,27,6,0,0),
-d(1947,9,28,5,0,0),
-d(1948,4,25,6,0,0),
-d(1948,9,26,5,0,0),
-d(1949,4,24,6,0,0),
-d(1949,9,25,5,0,0),
-d(1950,4,30,6,0,0),
-d(1950,9,24,5,0,0),
-d(1951,4,29,6,0,0),
-d(1951,9,30,5,0,0),
-d(1952,4,27,6,0,0),
-d(1952,9,28,5,0,0),
-d(1953,4,26,6,0,0),
-d(1953,9,27,5,0,0),
-d(1954,4,25,6,0,0),
-d(1954,9,26,5,0,0),
-d(1955,4,24,6,0,0),
-d(1955,9,25,5,0,0),
-d(1956,4,29,6,0,0),
-d(1956,9,30,5,0,0),
-d(1957,4,28,6,0,0),
-d(1957,10,27,5,0,0),
-d(1958,4,27,6,0,0),
-d(1958,10,26,5,0,0),
-d(1959,4,26,6,0,0),
-d(1959,10,25,5,0,0),
-d(1960,4,24,6,0,0),
-d(1960,10,30,5,0,0),
-d(1961,4,30,6,0,0),
-d(1961,10,29,5,0,0),
-d(1962,4,29,6,0,0),
-d(1962,10,28,5,0,0),
-d(1963,4,28,6,0,0),
-d(1963,10,27,5,0,0),
-d(1964,4,26,6,0,0),
-d(1964,10,25,5,0,0),
-d(1965,4,25,6,0,0),
-d(1965,10,31,5,0,0),
-d(1966,4,24,6,0,0),
-d(1966,10,30,5,0,0),
-d(1967,4,30,6,0,0),
-d(1967,10,29,5,0,0),
-d(1968,4,28,6,0,0),
-d(1968,10,27,5,0,0),
-d(1969,4,27,6,0,0),
-d(1969,10,26,5,0,0),
-d(1970,4,26,6,0,0),
-d(1970,10,25,5,0,0),
-d(1971,4,25,6,0,0),
-d(1971,10,31,5,0,0),
-d(1972,4,30,6,0,0),
-d(1972,10,29,5,0,0),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,4,1,0),
-d(1993,10,31,3,1,0),
-d(1994,4,3,4,1,0),
-d(1994,10,30,3,1,0),
-d(1995,4,2,4,1,0),
-d(1995,10,29,3,1,0),
-d(1996,4,7,4,1,0),
-d(1996,10,27,3,1,0),
-d(1997,4,6,4,1,0),
-d(1997,10,26,3,1,0),
-d(1998,4,5,4,1,0),
-d(1998,10,25,3,1,0),
-d(1999,4,4,4,1,0),
-d(1999,10,31,3,1,0),
-d(2000,4,2,4,1,0),
-d(2000,10,29,3,1,0),
-d(2001,4,1,4,1,0),
-d(2001,10,28,3,1,0),
-d(2002,4,7,4,1,0),
-d(2002,10,27,3,1,0),
-d(2003,4,6,4,1,0),
-d(2003,10,26,3,1,0),
-d(2004,4,4,4,1,0),
-d(2004,10,31,3,1,0),
-d(2005,4,3,4,1,0),
-d(2005,10,30,3,1,0),
-d(2006,4,2,4,1,0),
-d(2006,10,29,3,1,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Moncton = Moncton()
-
diff --git a/vendor/pytz/zoneinfo/America/Monterrey.py b/vendor/pytz/zoneinfo/America/Monterrey.py
deleted file mode 100644
index 32b924a7..00000000
--- a/vendor/pytz/zoneinfo/America/Monterrey.py
+++ /dev/null
@@ -1,194 +0,0 @@
-'''tzinfo timezone information for America/Monterrey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Monterrey(DstTzInfo):
- '''America/Monterrey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Monterrey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,6,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,5,6,8,0,0),
-d(2001,9,30,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,4,1,8,0,0),
-d(2007,10,28,7,0,0),
-d(2008,4,6,8,0,0),
-d(2008,10,26,7,0,0),
-d(2009,4,5,8,0,0),
-d(2009,10,25,7,0,0),
-d(2010,4,4,8,0,0),
-d(2010,10,31,7,0,0),
-d(2011,4,3,8,0,0),
-d(2011,10,30,7,0,0),
-d(2012,4,1,8,0,0),
-d(2012,10,28,7,0,0),
-d(2013,4,7,8,0,0),
-d(2013,10,27,7,0,0),
-d(2014,4,6,8,0,0),
-d(2014,10,26,7,0,0),
-d(2015,4,5,8,0,0),
-d(2015,10,25,7,0,0),
-d(2016,4,3,8,0,0),
-d(2016,10,30,7,0,0),
-d(2017,4,2,8,0,0),
-d(2017,10,29,7,0,0),
-d(2018,4,1,8,0,0),
-d(2018,10,28,7,0,0),
-d(2019,4,7,8,0,0),
-d(2019,10,27,7,0,0),
-d(2020,4,5,8,0,0),
-d(2020,10,25,7,0,0),
-d(2021,4,4,8,0,0),
-d(2021,10,31,7,0,0),
-d(2022,4,3,8,0,0),
-d(2022,10,30,7,0,0),
-d(2023,4,2,8,0,0),
-d(2023,10,29,7,0,0),
-d(2024,4,7,8,0,0),
-d(2024,10,27,7,0,0),
-d(2025,4,6,8,0,0),
-d(2025,10,26,7,0,0),
-d(2026,4,5,8,0,0),
-d(2026,10,25,7,0,0),
-d(2027,4,4,8,0,0),
-d(2027,10,31,7,0,0),
-d(2028,4,2,8,0,0),
-d(2028,10,29,7,0,0),
-d(2029,4,1,8,0,0),
-d(2029,10,28,7,0,0),
-d(2030,4,7,8,0,0),
-d(2030,10,27,7,0,0),
-d(2031,4,6,8,0,0),
-d(2031,10,26,7,0,0),
-d(2032,4,4,8,0,0),
-d(2032,10,31,7,0,0),
-d(2033,4,3,8,0,0),
-d(2033,10,30,7,0,0),
-d(2034,4,2,8,0,0),
-d(2034,10,29,7,0,0),
-d(2035,4,1,8,0,0),
-d(2035,10,28,7,0,0),
-d(2036,4,6,8,0,0),
-d(2036,10,26,7,0,0),
-d(2037,4,5,8,0,0),
-d(2037,10,25,7,0,0),
- ]
-
- _transition_info = [
-i(-24060,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Monterrey = Monterrey()
-
diff --git a/vendor/pytz/zoneinfo/America/Montevideo.py b/vendor/pytz/zoneinfo/America/Montevideo.py
deleted file mode 100644
index 1ca0a9ae..00000000
--- a/vendor/pytz/zoneinfo/America/Montevideo.py
+++ /dev/null
@@ -1,282 +0,0 @@
-'''tzinfo timezone information for America/Montevideo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Montevideo(DstTzInfo):
- '''America/Montevideo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Montevideo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,3,44,44),
-d(1923,10,2,3,30,0),
-d(1924,4,1,3,0,0),
-d(1924,10,1,3,30,0),
-d(1925,4,1,3,0,0),
-d(1925,10,1,3,30,0),
-d(1926,4,1,3,0,0),
-d(1933,10,29,3,30,0),
-d(1934,4,1,3,0,0),
-d(1934,10,28,3,30,0),
-d(1935,3,31,3,0,0),
-d(1935,10,27,3,30,0),
-d(1936,3,29,3,0,0),
-d(1936,11,1,3,30,0),
-d(1937,3,28,3,0,0),
-d(1937,10,31,3,30,0),
-d(1938,3,27,3,0,0),
-d(1938,10,30,3,30,0),
-d(1939,3,26,3,0,0),
-d(1939,10,29,3,30,0),
-d(1940,3,31,3,0,0),
-d(1940,10,27,3,30,0),
-d(1941,3,30,3,0,0),
-d(1941,8,1,3,30,0),
-d(1942,1,1,3,0,0),
-d(1942,12,14,3,30,0),
-d(1943,3,14,2,0,0),
-d(1959,5,24,3,0,0),
-d(1959,11,15,2,0,0),
-d(1960,1,17,3,0,0),
-d(1960,3,6,2,0,0),
-d(1965,4,4,3,0,0),
-d(1965,9,26,2,0,0),
-d(1966,4,3,3,0,0),
-d(1966,10,31,2,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,31,2,0,0),
-d(1968,5,27,3,0,0),
-d(1968,12,2,2,30,0),
-d(1969,5,27,3,0,0),
-d(1969,12,2,2,30,0),
-d(1970,5,27,3,0,0),
-d(1970,12,2,2,30,0),
-d(1972,4,24,3,0,0),
-d(1972,8,15,2,0,0),
-d(1974,3,10,3,0,0),
-d(1974,12,22,2,30,0),
-d(1976,10,1,2,0,0),
-d(1977,12,4,3,0,0),
-d(1978,4,1,2,0,0),
-d(1979,10,1,3,0,0),
-d(1980,5,1,2,0,0),
-d(1987,12,14,3,0,0),
-d(1988,3,14,2,0,0),
-d(1988,12,11,3,0,0),
-d(1989,3,12,2,0,0),
-d(1989,10,29,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,27,3,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,2,28,2,0,0),
-d(2004,9,19,3,0,0),
-d(2005,3,27,4,0,0),
-d(2005,10,9,5,0,0),
-d(2006,3,12,4,0,0),
-d(2006,10,1,5,0,0),
-d(2007,3,11,4,0,0),
-d(2007,10,7,5,0,0),
-d(2008,3,9,4,0,0),
-d(2008,10,5,5,0,0),
-d(2009,3,8,4,0,0),
-d(2009,10,4,5,0,0),
-d(2010,3,14,4,0,0),
-d(2010,10,3,5,0,0),
-d(2011,3,13,4,0,0),
-d(2011,10,2,5,0,0),
-d(2012,3,11,4,0,0),
-d(2012,10,7,5,0,0),
-d(2013,3,10,4,0,0),
-d(2013,10,6,5,0,0),
-d(2014,3,9,4,0,0),
-d(2014,10,5,5,0,0),
-d(2015,3,8,4,0,0),
-d(2015,10,4,5,0,0),
-d(2016,3,13,4,0,0),
-d(2016,10,2,5,0,0),
-d(2017,3,12,4,0,0),
-d(2017,10,1,5,0,0),
-d(2018,3,11,4,0,0),
-d(2018,10,7,5,0,0),
-d(2019,3,10,4,0,0),
-d(2019,10,6,5,0,0),
-d(2020,3,8,4,0,0),
-d(2020,10,4,5,0,0),
-d(2021,3,14,4,0,0),
-d(2021,10,3,5,0,0),
-d(2022,3,13,4,0,0),
-d(2022,10,2,5,0,0),
-d(2023,3,12,4,0,0),
-d(2023,10,1,5,0,0),
-d(2024,3,10,4,0,0),
-d(2024,10,6,5,0,0),
-d(2025,3,9,4,0,0),
-d(2025,10,5,5,0,0),
-d(2026,3,8,4,0,0),
-d(2026,10,4,5,0,0),
-d(2027,3,14,4,0,0),
-d(2027,10,3,5,0,0),
-d(2028,3,12,4,0,0),
-d(2028,10,1,5,0,0),
-d(2029,3,11,4,0,0),
-d(2029,10,7,5,0,0),
-d(2030,3,10,4,0,0),
-d(2030,10,6,5,0,0),
-d(2031,3,9,4,0,0),
-d(2031,10,5,5,0,0),
-d(2032,3,14,4,0,0),
-d(2032,10,3,5,0,0),
-d(2033,3,13,4,0,0),
-d(2033,10,2,5,0,0),
-d(2034,3,12,4,0,0),
-d(2034,10,1,5,0,0),
-d(2035,3,11,4,0,0),
-d(2035,10,7,5,0,0),
-d(2036,3,9,4,0,0),
-d(2036,10,5,5,0,0),
-d(2037,3,8,4,0,0),
-d(2037,10,4,5,0,0),
- ]
-
- _transition_info = [
-i(-13500,0,'MMT'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-10800,1800,'UYHST'),
-i(-12600,0,'UYT'),
-i(-7200,5400,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-9000,1800,'UYHST'),
-i(-10800,0,'UYT'),
-i(-9000,1800,'UYHST'),
-i(-10800,0,'UYT'),
-i(-9000,1800,'UYHST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-9000,1800,'UYHST'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
-i(-10800,0,'UYT'),
-i(-7200,3600,'UYST'),
- ]
-
-Montevideo = Montevideo()
-
diff --git a/vendor/pytz/zoneinfo/America/Montreal.py b/vendor/pytz/zoneinfo/America/Montreal.py
deleted file mode 100644
index f780e39f..00000000
--- a/vendor/pytz/zoneinfo/America/Montreal.py
+++ /dev/null
@@ -1,484 +0,0 @@
-'''tzinfo timezone information for America/Montreal.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Montreal(DstTzInfo):
- '''America/Montreal timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Montreal'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,3,25,7,0,0),
-d(1917,4,24,4,0,0),
-d(1918,4,14,7,0,0),
-d(1918,10,31,6,0,0),
-d(1919,3,31,7,30,0),
-d(1919,10,25,6,30,0),
-d(1920,5,2,7,30,0),
-d(1920,10,3,6,30,0),
-d(1921,5,1,7,0,0),
-d(1921,10,2,6,30,0),
-d(1922,4,30,7,0,0),
-d(1922,10,1,6,30,0),
-d(1924,5,17,7,0,0),
-d(1924,9,28,6,30,0),
-d(1925,5,3,7,0,0),
-d(1925,9,27,6,30,0),
-d(1926,5,2,7,0,0),
-d(1926,9,26,6,30,0),
-d(1927,5,1,5,0,0),
-d(1927,9,25,4,0,0),
-d(1928,4,29,5,0,0),
-d(1928,9,30,4,0,0),
-d(1929,4,28,5,0,0),
-d(1929,9,29,4,0,0),
-d(1930,4,27,5,0,0),
-d(1930,9,28,4,0,0),
-d(1931,4,26,5,0,0),
-d(1931,9,27,4,0,0),
-d(1932,5,1,5,0,0),
-d(1932,9,25,4,0,0),
-d(1933,4,30,5,0,0),
-d(1933,10,1,4,0,0),
-d(1934,4,29,5,0,0),
-d(1934,9,30,4,0,0),
-d(1935,4,28,5,0,0),
-d(1935,9,29,4,0,0),
-d(1936,4,26,5,0,0),
-d(1936,9,27,4,0,0),
-d(1937,4,25,5,0,0),
-d(1937,9,26,4,0,0),
-d(1938,4,24,5,0,0),
-d(1938,9,25,4,0,0),
-d(1939,4,30,5,0,0),
-d(1939,9,24,4,0,0),
-d(1940,4,28,5,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,7,0,0),
-d(1947,9,28,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1949,4,24,7,0,0),
-d(1949,10,30,6,0,0),
-d(1950,4,30,7,0,0),
-d(1950,10,29,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,9,25,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,9,30,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Montreal = Montreal()
-
diff --git a/vendor/pytz/zoneinfo/America/Montserrat.py b/vendor/pytz/zoneinfo/America/Montserrat.py
deleted file mode 100644
index 65ba519e..00000000
--- a/vendor/pytz/zoneinfo/America/Montserrat.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Montserrat.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Montserrat(DstTzInfo):
- '''America/Montserrat timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Montserrat'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,9,52),
- ]
-
- _transition_info = [
-i(-14940,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Montserrat = Montserrat()
-
diff --git a/vendor/pytz/zoneinfo/America/Nassau.py b/vendor/pytz/zoneinfo/America/Nassau.py
deleted file mode 100644
index d4bcdada..00000000
--- a/vendor/pytz/zoneinfo/America/Nassau.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for America/Nassau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nassau(DstTzInfo):
- '''America/Nassau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Nassau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,2,5,9,24),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,4,1,7,0,0),
-d(2007,10,28,6,0,0),
-d(2008,4,6,7,0,0),
-d(2008,10,26,6,0,0),
-d(2009,4,5,7,0,0),
-d(2009,10,25,6,0,0),
-d(2010,4,4,7,0,0),
-d(2010,10,31,6,0,0),
-d(2011,4,3,7,0,0),
-d(2011,10,30,6,0,0),
-d(2012,4,1,7,0,0),
-d(2012,10,28,6,0,0),
-d(2013,4,7,7,0,0),
-d(2013,10,27,6,0,0),
-d(2014,4,6,7,0,0),
-d(2014,10,26,6,0,0),
-d(2015,4,5,7,0,0),
-d(2015,10,25,6,0,0),
-d(2016,4,3,7,0,0),
-d(2016,10,30,6,0,0),
-d(2017,4,2,7,0,0),
-d(2017,10,29,6,0,0),
-d(2018,4,1,7,0,0),
-d(2018,10,28,6,0,0),
-d(2019,4,7,7,0,0),
-d(2019,10,27,6,0,0),
-d(2020,4,5,7,0,0),
-d(2020,10,25,6,0,0),
-d(2021,4,4,7,0,0),
-d(2021,10,31,6,0,0),
-d(2022,4,3,7,0,0),
-d(2022,10,30,6,0,0),
-d(2023,4,2,7,0,0),
-d(2023,10,29,6,0,0),
-d(2024,4,7,7,0,0),
-d(2024,10,27,6,0,0),
-d(2025,4,6,7,0,0),
-d(2025,10,26,6,0,0),
-d(2026,4,5,7,0,0),
-d(2026,10,25,6,0,0),
-d(2027,4,4,7,0,0),
-d(2027,10,31,6,0,0),
-d(2028,4,2,7,0,0),
-d(2028,10,29,6,0,0),
-d(2029,4,1,7,0,0),
-d(2029,10,28,6,0,0),
-d(2030,4,7,7,0,0),
-d(2030,10,27,6,0,0),
-d(2031,4,6,7,0,0),
-d(2031,10,26,6,0,0),
-d(2032,4,4,7,0,0),
-d(2032,10,31,6,0,0),
-d(2033,4,3,7,0,0),
-d(2033,10,30,6,0,0),
-d(2034,4,2,7,0,0),
-d(2034,10,29,6,0,0),
-d(2035,4,1,7,0,0),
-d(2035,10,28,6,0,0),
-d(2036,4,6,7,0,0),
-d(2036,10,26,6,0,0),
-d(2037,4,5,7,0,0),
-d(2037,10,25,6,0,0),
- ]
-
- _transition_info = [
-i(-18540,0,'LMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Nassau = Nassau()
-
diff --git a/vendor/pytz/zoneinfo/America/New_York.py b/vendor/pytz/zoneinfo/America/New_York.py
deleted file mode 100644
index 9acebd98..00000000
--- a/vendor/pytz/zoneinfo/America/New_York.py
+++ /dev/null
@@ -1,490 +0,0 @@
-'''tzinfo timezone information for America/New_York.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class New_York(DstTzInfo):
- '''America/New_York timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/New_York'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,7,0,0),
-d(1918,10,27,6,0,0),
-d(1919,3,30,7,0,0),
-d(1919,10,26,6,0,0),
-d(1920,3,28,7,0,0),
-d(1920,10,31,6,0,0),
-d(1921,4,24,7,0,0),
-d(1921,9,25,6,0,0),
-d(1922,4,30,7,0,0),
-d(1922,9,24,6,0,0),
-d(1923,4,29,7,0,0),
-d(1923,9,30,6,0,0),
-d(1924,4,27,7,0,0),
-d(1924,9,28,6,0,0),
-d(1925,4,26,7,0,0),
-d(1925,9,27,6,0,0),
-d(1926,4,25,7,0,0),
-d(1926,9,26,6,0,0),
-d(1927,4,24,7,0,0),
-d(1927,9,25,6,0,0),
-d(1928,4,29,7,0,0),
-d(1928,9,30,6,0,0),
-d(1929,4,28,7,0,0),
-d(1929,9,29,6,0,0),
-d(1930,4,27,7,0,0),
-d(1930,9,28,6,0,0),
-d(1931,4,26,7,0,0),
-d(1931,9,27,6,0,0),
-d(1932,4,24,7,0,0),
-d(1932,9,25,6,0,0),
-d(1933,4,30,7,0,0),
-d(1933,9,24,6,0,0),
-d(1934,4,29,7,0,0),
-d(1934,9,30,6,0,0),
-d(1935,4,28,7,0,0),
-d(1935,9,29,6,0,0),
-d(1936,4,26,7,0,0),
-d(1936,9,27,6,0,0),
-d(1937,4,25,7,0,0),
-d(1937,9,26,6,0,0),
-d(1938,4,24,7,0,0),
-d(1938,9,25,6,0,0),
-d(1939,4,30,7,0,0),
-d(1939,9,24,6,0,0),
-d(1940,4,28,7,0,0),
-d(1940,9,29,6,0,0),
-d(1941,4,27,7,0,0),
-d(1941,9,28,6,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,7,0,0),
-d(1947,9,28,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1949,4,24,7,0,0),
-d(1949,9,25,6,0,0),
-d(1950,4,30,7,0,0),
-d(1950,9,24,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,10,30,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,10,28,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-New_York = New_York()
-
diff --git a/vendor/pytz/zoneinfo/America/Nipigon.py b/vendor/pytz/zoneinfo/America/Nipigon.py
deleted file mode 100644
index 29b1397c..00000000
--- a/vendor/pytz/zoneinfo/America/Nipigon.py
+++ /dev/null
@@ -1,288 +0,0 @@
-'''tzinfo timezone information for America/Nipigon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nipigon(DstTzInfo):
- '''America/Nipigon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Nipigon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,7,0,0),
-d(1918,10,31,6,0,0),
-d(1940,9,29,5,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Nipigon = Nipigon()
-
diff --git a/vendor/pytz/zoneinfo/America/Nome.py b/vendor/pytz/zoneinfo/America/Nome.py
deleted file mode 100644
index 5889ab26..00000000
--- a/vendor/pytz/zoneinfo/America/Nome.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for America/Nome.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nome(DstTzInfo):
- '''America/Nome timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Nome'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,13,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,12,0,0),
-d(1967,4,1,11,0,0),
-d(1969,4,27,13,0,0),
-d(1969,10,26,12,0,0),
-d(1970,4,26,13,0,0),
-d(1970,10,25,12,0,0),
-d(1971,4,25,13,0,0),
-d(1971,10,31,12,0,0),
-d(1972,4,30,13,0,0),
-d(1972,10,29,12,0,0),
-d(1973,4,29,13,0,0),
-d(1973,10,28,12,0,0),
-d(1974,1,6,13,0,0),
-d(1974,10,27,12,0,0),
-d(1975,2,23,13,0,0),
-d(1975,10,26,12,0,0),
-d(1976,4,25,13,0,0),
-d(1976,10,31,12,0,0),
-d(1977,4,24,13,0,0),
-d(1977,10,30,12,0,0),
-d(1978,4,30,13,0,0),
-d(1978,10,29,12,0,0),
-d(1979,4,29,13,0,0),
-d(1979,10,28,12,0,0),
-d(1980,4,27,13,0,0),
-d(1980,10,26,12,0,0),
-d(1981,4,26,13,0,0),
-d(1981,10,25,12,0,0),
-d(1982,4,25,13,0,0),
-d(1982,10,31,12,0,0),
-d(1983,4,24,13,0,0),
-d(1983,10,30,12,0,0),
-d(1983,11,30,9,0,0),
-d(1984,4,29,11,0,0),
-d(1984,10,28,10,0,0),
-d(1985,4,28,11,0,0),
-d(1985,10,27,10,0,0),
-d(1986,4,27,11,0,0),
-d(1986,10,26,10,0,0),
-d(1987,4,5,11,0,0),
-d(1987,10,25,10,0,0),
-d(1988,4,3,11,0,0),
-d(1988,10,30,10,0,0),
-d(1989,4,2,11,0,0),
-d(1989,10,29,10,0,0),
-d(1990,4,1,11,0,0),
-d(1990,10,28,10,0,0),
-d(1991,4,7,11,0,0),
-d(1991,10,27,10,0,0),
-d(1992,4,5,11,0,0),
-d(1992,10,25,10,0,0),
-d(1993,4,4,11,0,0),
-d(1993,10,31,10,0,0),
-d(1994,4,3,11,0,0),
-d(1994,10,30,10,0,0),
-d(1995,4,2,11,0,0),
-d(1995,10,29,10,0,0),
-d(1996,4,7,11,0,0),
-d(1996,10,27,10,0,0),
-d(1997,4,6,11,0,0),
-d(1997,10,26,10,0,0),
-d(1998,4,5,11,0,0),
-d(1998,10,25,10,0,0),
-d(1999,4,4,11,0,0),
-d(1999,10,31,10,0,0),
-d(2000,4,2,11,0,0),
-d(2000,10,29,10,0,0),
-d(2001,4,1,11,0,0),
-d(2001,10,28,10,0,0),
-d(2002,4,7,11,0,0),
-d(2002,10,27,10,0,0),
-d(2003,4,6,11,0,0),
-d(2003,10,26,10,0,0),
-d(2004,4,4,11,0,0),
-d(2004,10,31,10,0,0),
-d(2005,4,3,11,0,0),
-d(2005,10,30,10,0,0),
-d(2006,4,2,11,0,0),
-d(2006,10,29,10,0,0),
-d(2007,3,11,11,0,0),
-d(2007,11,4,10,0,0),
-d(2008,3,9,11,0,0),
-d(2008,11,2,10,0,0),
-d(2009,3,8,11,0,0),
-d(2009,11,1,10,0,0),
-d(2010,3,14,11,0,0),
-d(2010,11,7,10,0,0),
-d(2011,3,13,11,0,0),
-d(2011,11,6,10,0,0),
-d(2012,3,11,11,0,0),
-d(2012,11,4,10,0,0),
-d(2013,3,10,11,0,0),
-d(2013,11,3,10,0,0),
-d(2014,3,9,11,0,0),
-d(2014,11,2,10,0,0),
-d(2015,3,8,11,0,0),
-d(2015,11,1,10,0,0),
-d(2016,3,13,11,0,0),
-d(2016,11,6,10,0,0),
-d(2017,3,12,11,0,0),
-d(2017,11,5,10,0,0),
-d(2018,3,11,11,0,0),
-d(2018,11,4,10,0,0),
-d(2019,3,10,11,0,0),
-d(2019,11,3,10,0,0),
-d(2020,3,8,11,0,0),
-d(2020,11,1,10,0,0),
-d(2021,3,14,11,0,0),
-d(2021,11,7,10,0,0),
-d(2022,3,13,11,0,0),
-d(2022,11,6,10,0,0),
-d(2023,3,12,11,0,0),
-d(2023,11,5,10,0,0),
-d(2024,3,10,11,0,0),
-d(2024,11,3,10,0,0),
-d(2025,3,9,11,0,0),
-d(2025,11,2,10,0,0),
-d(2026,3,8,11,0,0),
-d(2026,11,1,10,0,0),
-d(2027,3,14,11,0,0),
-d(2027,11,7,10,0,0),
-d(2028,3,12,11,0,0),
-d(2028,11,5,10,0,0),
-d(2029,3,11,11,0,0),
-d(2029,11,4,10,0,0),
-d(2030,3,10,11,0,0),
-d(2030,11,3,10,0,0),
-d(2031,3,9,11,0,0),
-d(2031,11,2,10,0,0),
-d(2032,3,14,11,0,0),
-d(2032,11,7,10,0,0),
-d(2033,3,13,11,0,0),
-d(2033,11,6,10,0,0),
-d(2034,3,12,11,0,0),
-d(2034,11,5,10,0,0),
-d(2035,3,11,11,0,0),
-d(2035,11,4,10,0,0),
-d(2036,3,9,11,0,0),
-d(2036,11,2,10,0,0),
-d(2037,3,8,11,0,0),
-d(2037,11,1,10,0,0),
- ]
-
- _transition_info = [
-i(-39600,0,'NST'),
-i(-36000,3600,'NWT'),
-i(-36000,3600,'NPT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-32400,0,'YST'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
- ]
-
-Nome = Nome()
-
diff --git a/vendor/pytz/zoneinfo/America/Noronha.py b/vendor/pytz/zoneinfo/America/Noronha.py
deleted file mode 100644
index 915773c9..00000000
--- a/vendor/pytz/zoneinfo/America/Noronha.py
+++ /dev/null
@@ -1,98 +0,0 @@
-'''tzinfo timezone information for America/Noronha.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Noronha(DstTzInfo):
- '''America/Noronha timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Noronha'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,9,40),
-d(1931,10,3,13,0,0),
-d(1932,4,1,1,0,0),
-d(1932,10,3,2,0,0),
-d(1933,4,1,1,0,0),
-d(1949,12,1,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,12,1,2,0,0),
-d(1951,4,1,1,0,0),
-d(1951,12,1,2,0,0),
-d(1952,4,1,1,0,0),
-d(1952,12,1,2,0,0),
-d(1953,3,1,1,0,0),
-d(1963,12,9,2,0,0),
-d(1964,3,1,1,0,0),
-d(1965,1,31,2,0,0),
-d(1965,3,31,1,0,0),
-d(1965,12,1,2,0,0),
-d(1966,3,1,1,0,0),
-d(1966,11,1,2,0,0),
-d(1967,3,1,1,0,0),
-d(1967,11,1,2,0,0),
-d(1968,3,1,1,0,0),
-d(1985,11,2,2,0,0),
-d(1986,3,15,1,0,0),
-d(1986,10,25,2,0,0),
-d(1987,2,14,1,0,0),
-d(1987,10,25,2,0,0),
-d(1988,2,7,1,0,0),
-d(1988,10,16,2,0,0),
-d(1989,1,29,1,0,0),
-d(1989,10,15,2,0,0),
-d(1990,2,11,1,0,0),
-d(1999,10,3,2,0,0),
-d(2000,2,27,1,0,0),
-d(2000,10,8,2,0,0),
-d(2000,10,15,1,0,0),
-d(2001,10,14,2,0,0),
-d(2002,2,17,1,0,0),
- ]
-
- _transition_info = [
-i(-7800,0,'LMT'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
- ]
-
-Noronha = Noronha()
-
diff --git a/vendor/pytz/zoneinfo/America/North_Dakota/Center.py b/vendor/pytz/zoneinfo/America/North_Dakota/Center.py
deleted file mode 100644
index e9460b69..00000000
--- a/vendor/pytz/zoneinfo/America/North_Dakota/Center.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for America/North_Dakota/Center.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Center(DstTzInfo):
- '''America/North_Dakota/Center timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/North_Dakota/Center'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Center = Center()
-
diff --git a/vendor/pytz/zoneinfo/America/North_Dakota/New_Salem.py b/vendor/pytz/zoneinfo/America/North_Dakota/New_Salem.py
deleted file mode 100644
index 126b5c67..00000000
--- a/vendor/pytz/zoneinfo/America/North_Dakota/New_Salem.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for America/North_Dakota/New_Salem.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class New_Salem(DstTzInfo):
- '''America/North_Dakota/New_Salem timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/North_Dakota/New_Salem'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-New_Salem = New_Salem()
-
diff --git a/vendor/pytz/zoneinfo/America/North_Dakota/__init__.py b/vendor/pytz/zoneinfo/America/North_Dakota/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/America/Panama.py b/vendor/pytz/zoneinfo/America/Panama.py
deleted file mode 100644
index d0f9fa76..00000000
--- a/vendor/pytz/zoneinfo/America/Panama.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Panama.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Panama(DstTzInfo):
- '''America/Panama timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Panama'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,4,22,5,19,36),
- ]
-
- _transition_info = [
-i(-19200,0,'CMT'),
-i(-18000,0,'EST'),
- ]
-
-Panama = Panama()
-
diff --git a/vendor/pytz/zoneinfo/America/Pangnirtung.py b/vendor/pytz/zoneinfo/America/Pangnirtung.py
deleted file mode 100644
index 79dfa10c..00000000
--- a/vendor/pytz/zoneinfo/America/Pangnirtung.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for America/Pangnirtung.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pangnirtung(DstTzInfo):
- '''America/Pangnirtung timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Pangnirtung'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,6,0,0),
-d(1918,10,27,5,0,0),
-d(1919,5,25,6,0,0),
-d(1919,11,1,3,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
-d(1965,4,25,4,0,0),
-d(1965,10,31,4,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
-i(-7200,7200,'ADDT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-14400,0,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Pangnirtung = Pangnirtung()
-
diff --git a/vendor/pytz/zoneinfo/America/Paramaribo.py b/vendor/pytz/zoneinfo/America/Paramaribo.py
deleted file mode 100644
index 5238f9d5..00000000
--- a/vendor/pytz/zoneinfo/America/Paramaribo.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for America/Paramaribo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Paramaribo(DstTzInfo):
- '''America/Paramaribo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Paramaribo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,1,1,3,40,40),
-d(1935,1,1,3,40,52),
-d(1945,10,1,3,40,36),
-d(1975,11,20,3,30,0),
-d(1984,10,1,3,30,0),
- ]
-
- _transition_info = [
-i(-13260,0,'LMT'),
-i(-13260,0,'PMT'),
-i(-13260,0,'PMT'),
-i(-12600,0,'NEGT'),
-i(-12600,0,'SRT'),
-i(-10800,0,'SRT'),
- ]
-
-Paramaribo = Paramaribo()
-
diff --git a/vendor/pytz/zoneinfo/America/Phoenix.py b/vendor/pytz/zoneinfo/America/Phoenix.py
deleted file mode 100644
index 1cc351ee..00000000
--- a/vendor/pytz/zoneinfo/America/Phoenix.py
+++ /dev/null
@@ -1,40 +0,0 @@
-'''tzinfo timezone information for America/Phoenix.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Phoenix(DstTzInfo):
- '''America/Phoenix timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Phoenix'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1942,2,9,9,0,0),
-d(1944,1,1,6,1,0),
-d(1944,4,1,7,1,0),
-d(1944,10,1,6,1,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Phoenix = Phoenix()
-
diff --git a/vendor/pytz/zoneinfo/America/Port_minus_au_minus_Prince.py b/vendor/pytz/zoneinfo/America/Port_minus_au_minus_Prince.py
deleted file mode 100644
index 248a9817..00000000
--- a/vendor/pytz/zoneinfo/America/Port_minus_au_minus_Prince.py
+++ /dev/null
@@ -1,214 +0,0 @@
-'''tzinfo timezone information for America/Port_minus_au_minus_Prince.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Port_minus_au_minus_Prince(DstTzInfo):
- '''America/Port_minus_au_minus_Prince timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Port_minus_au_minus_Prince'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,1,24,16,49,0),
-d(1983,5,8,5,0,0),
-d(1983,10,30,4,0,0),
-d(1984,4,29,5,0,0),
-d(1984,10,28,4,0,0),
-d(1985,4,28,5,0,0),
-d(1985,10,27,4,0,0),
-d(1986,4,27,5,0,0),
-d(1986,10,26,4,0,0),
-d(1987,4,26,5,0,0),
-d(1987,10,25,4,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,6,0,0),
-d(2005,4,3,5,0,0),
-d(2005,10,30,4,0,0),
-d(2006,4,2,5,0,0),
-d(2006,10,29,4,0,0),
-d(2007,4,1,5,0,0),
-d(2007,10,28,4,0,0),
-d(2008,4,6,5,0,0),
-d(2008,10,26,4,0,0),
-d(2009,4,5,5,0,0),
-d(2009,10,25,4,0,0),
-d(2010,4,4,5,0,0),
-d(2010,10,31,4,0,0),
-d(2011,4,3,5,0,0),
-d(2011,10,30,4,0,0),
-d(2012,4,1,5,0,0),
-d(2012,10,28,4,0,0),
-d(2013,4,7,5,0,0),
-d(2013,10,27,4,0,0),
-d(2014,4,6,5,0,0),
-d(2014,10,26,4,0,0),
-d(2015,4,5,5,0,0),
-d(2015,10,25,4,0,0),
-d(2016,4,3,5,0,0),
-d(2016,10,30,4,0,0),
-d(2017,4,2,5,0,0),
-d(2017,10,29,4,0,0),
-d(2018,4,1,5,0,0),
-d(2018,10,28,4,0,0),
-d(2019,4,7,5,0,0),
-d(2019,10,27,4,0,0),
-d(2020,4,5,5,0,0),
-d(2020,10,25,4,0,0),
-d(2021,4,4,5,0,0),
-d(2021,10,31,4,0,0),
-d(2022,4,3,5,0,0),
-d(2022,10,30,4,0,0),
-d(2023,4,2,5,0,0),
-d(2023,10,29,4,0,0),
-d(2024,4,7,5,0,0),
-d(2024,10,27,4,0,0),
-d(2025,4,6,5,0,0),
-d(2025,10,26,4,0,0),
-d(2026,4,5,5,0,0),
-d(2026,10,25,4,0,0),
-d(2027,4,4,5,0,0),
-d(2027,10,31,4,0,0),
-d(2028,4,2,5,0,0),
-d(2028,10,29,4,0,0),
-d(2029,4,1,5,0,0),
-d(2029,10,28,4,0,0),
-d(2030,4,7,5,0,0),
-d(2030,10,27,4,0,0),
-d(2031,4,6,5,0,0),
-d(2031,10,26,4,0,0),
-d(2032,4,4,5,0,0),
-d(2032,10,31,4,0,0),
-d(2033,4,3,5,0,0),
-d(2033,10,30,4,0,0),
-d(2034,4,2,5,0,0),
-d(2034,10,29,4,0,0),
-d(2035,4,1,5,0,0),
-d(2035,10,28,4,0,0),
-d(2036,4,6,5,0,0),
-d(2036,10,26,4,0,0),
-d(2037,4,5,5,0,0),
-d(2037,10,25,4,0,0),
- ]
-
- _transition_info = [
-i(-17340,0,'PPMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Port_minus_au_minus_Prince = Port_minus_au_minus_Prince()
-
diff --git a/vendor/pytz/zoneinfo/America/Port_of_Spain.py b/vendor/pytz/zoneinfo/America/Port_of_Spain.py
deleted file mode 100644
index f1a37eb6..00000000
--- a/vendor/pytz/zoneinfo/America/Port_of_Spain.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Port_of_Spain.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Port_of_Spain(DstTzInfo):
- '''America/Port_of_Spain timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Port_of_Spain'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,2,4,6,4),
- ]
-
- _transition_info = [
-i(-14760,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Port_of_Spain = Port_of_Spain()
-
diff --git a/vendor/pytz/zoneinfo/America/Porto_Acre.py b/vendor/pytz/zoneinfo/America/Porto_Acre.py
deleted file mode 100644
index 34dce668..00000000
--- a/vendor/pytz/zoneinfo/America/Porto_Acre.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for America/Porto_Acre.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Porto_Acre(DstTzInfo):
- '''America/Porto_Acre timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Porto_Acre'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,31,12),
-d(1931,10,3,16,0,0),
-d(1932,4,1,4,0,0),
-d(1932,10,3,5,0,0),
-d(1933,4,1,4,0,0),
-d(1949,12,1,5,0,0),
-d(1950,4,16,5,0,0),
-d(1950,12,1,5,0,0),
-d(1951,4,1,4,0,0),
-d(1951,12,1,5,0,0),
-d(1952,4,1,4,0,0),
-d(1952,12,1,5,0,0),
-d(1953,3,1,4,0,0),
-d(1963,12,9,5,0,0),
-d(1964,3,1,4,0,0),
-d(1965,1,31,5,0,0),
-d(1965,3,31,4,0,0),
-d(1965,12,1,5,0,0),
-d(1966,3,1,4,0,0),
-d(1966,11,1,5,0,0),
-d(1967,3,1,4,0,0),
-d(1967,11,1,5,0,0),
-d(1968,3,1,4,0,0),
-d(1985,11,2,5,0,0),
-d(1986,3,15,4,0,0),
-d(1986,10,25,5,0,0),
-d(1987,2,14,4,0,0),
-d(1987,10,25,5,0,0),
-d(1988,2,7,4,0,0),
- ]
-
- _transition_info = [
-i(-16260,0,'LMT'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
- ]
-
-Porto_Acre = Porto_Acre()
-
diff --git a/vendor/pytz/zoneinfo/America/Porto_Velho.py b/vendor/pytz/zoneinfo/America/Porto_Velho.py
deleted file mode 100644
index 85620897..00000000
--- a/vendor/pytz/zoneinfo/America/Porto_Velho.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for America/Porto_Velho.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Porto_Velho(DstTzInfo):
- '''America/Porto_Velho timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Porto_Velho'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,15,36),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
- ]
-
- _transition_info = [
-i(-15360,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
- ]
-
-Porto_Velho = Porto_Velho()
-
diff --git a/vendor/pytz/zoneinfo/America/Puerto_Rico.py b/vendor/pytz/zoneinfo/America/Puerto_Rico.py
deleted file mode 100644
index ea00f20b..00000000
--- a/vendor/pytz/zoneinfo/America/Puerto_Rico.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for America/Puerto_Rico.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Puerto_Rico(DstTzInfo):
- '''America/Puerto_Rico timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Puerto_Rico'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,5,3,4,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
- ]
-
-Puerto_Rico = Puerto_Rico()
-
diff --git a/vendor/pytz/zoneinfo/America/Rainy_River.py b/vendor/pytz/zoneinfo/America/Rainy_River.py
deleted file mode 100644
index 9863d587..00000000
--- a/vendor/pytz/zoneinfo/America/Rainy_River.py
+++ /dev/null
@@ -1,288 +0,0 @@
-'''tzinfo timezone information for America/Rainy_River.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rainy_River(DstTzInfo):
- '''America/Rainy_River timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Rainy_River'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,31,7,0,0),
-d(1940,9,29,6,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1974,4,28,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,4,27,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Rainy_River = Rainy_River()
-
diff --git a/vendor/pytz/zoneinfo/America/Rankin_Inlet.py b/vendor/pytz/zoneinfo/America/Rankin_Inlet.py
deleted file mode 100644
index 033c8bb3..00000000
--- a/vendor/pytz/zoneinfo/America/Rankin_Inlet.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for America/Rankin_Inlet.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rankin_Inlet(DstTzInfo):
- '''America/Rankin_Inlet timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Rankin_Inlet'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,5,25,8,0,0),
-d(1919,11,1,5,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1965,4,25,6,0,0),
-d(1965,10,31,6,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-14400,7200,'CDDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Rankin_Inlet = Rankin_Inlet()
-
diff --git a/vendor/pytz/zoneinfo/America/Recife.py b/vendor/pytz/zoneinfo/America/Recife.py
deleted file mode 100644
index a30a40df..00000000
--- a/vendor/pytz/zoneinfo/America/Recife.py
+++ /dev/null
@@ -1,98 +0,0 @@
-'''tzinfo timezone information for America/Recife.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Recife(DstTzInfo):
- '''America/Recife timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Recife'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,19,36),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,12,9,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2000,10,15,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
- ]
-
- _transition_info = [
-i(-8400,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
- ]
-
-Recife = Recife()
-
diff --git a/vendor/pytz/zoneinfo/America/Regina.py b/vendor/pytz/zoneinfo/America/Regina.py
deleted file mode 100644
index 08b11abf..00000000
--- a/vendor/pytz/zoneinfo/America/Regina.py
+++ /dev/null
@@ -1,126 +0,0 @@
-'''tzinfo timezone information for America/Regina.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Regina(DstTzInfo):
- '''America/Regina timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Regina'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,9,1,6,58,36),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1930,5,4,7,0,0),
-d(1930,10,5,6,0,0),
-d(1931,5,3,7,0,0),
-d(1931,10,4,6,0,0),
-d(1932,5,1,7,0,0),
-d(1932,10,2,6,0,0),
-d(1933,5,7,7,0,0),
-d(1933,10,1,6,0,0),
-d(1934,5,6,7,0,0),
-d(1934,10,7,6,0,0),
-d(1937,4,11,7,0,0),
-d(1937,10,10,6,0,0),
-d(1938,4,10,7,0,0),
-d(1938,10,2,6,0,0),
-d(1939,4,9,7,0,0),
-d(1939,10,8,6,0,0),
-d(1940,4,14,7,0,0),
-d(1940,10,13,6,0,0),
-d(1941,4,13,7,0,0),
-d(1941,10,12,6,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1946,4,14,9,0,0),
-d(1946,10,13,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1948,4,25,9,0,0),
-d(1948,9,26,8,0,0),
-d(1949,4,24,9,0,0),
-d(1949,9,25,8,0,0),
-d(1950,4,30,9,0,0),
-d(1950,9,24,8,0,0),
-d(1951,4,29,9,0,0),
-d(1951,9,30,8,0,0),
-d(1952,4,27,9,0,0),
-d(1952,9,28,8,0,0),
-d(1953,4,26,9,0,0),
-d(1953,9,27,8,0,0),
-d(1954,4,25,9,0,0),
-d(1954,9,26,8,0,0),
-d(1955,4,24,9,0,0),
-d(1955,9,25,8,0,0),
-d(1956,4,29,9,0,0),
-d(1956,9,30,8,0,0),
-d(1957,4,28,9,0,0),
-d(1957,9,29,8,0,0),
-d(1959,4,26,9,0,0),
-d(1959,10,25,8,0,0),
-d(1960,4,24,9,0,0),
- ]
-
- _transition_info = [
-i(-25140,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
- ]
-
-Regina = Regina()
-
diff --git a/vendor/pytz/zoneinfo/America/Rio_Branco.py b/vendor/pytz/zoneinfo/America/Rio_Branco.py
deleted file mode 100644
index 14b71ddb..00000000
--- a/vendor/pytz/zoneinfo/America/Rio_Branco.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for America/Rio_Branco.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rio_Branco(DstTzInfo):
- '''America/Rio_Branco timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Rio_Branco'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,31,12),
-d(1931,10,3,16,0,0),
-d(1932,4,1,4,0,0),
-d(1932,10,3,5,0,0),
-d(1933,4,1,4,0,0),
-d(1949,12,1,5,0,0),
-d(1950,4,16,5,0,0),
-d(1950,12,1,5,0,0),
-d(1951,4,1,4,0,0),
-d(1951,12,1,5,0,0),
-d(1952,4,1,4,0,0),
-d(1952,12,1,5,0,0),
-d(1953,3,1,4,0,0),
-d(1963,12,9,5,0,0),
-d(1964,3,1,4,0,0),
-d(1965,1,31,5,0,0),
-d(1965,3,31,4,0,0),
-d(1965,12,1,5,0,0),
-d(1966,3,1,4,0,0),
-d(1966,11,1,5,0,0),
-d(1967,3,1,4,0,0),
-d(1967,11,1,5,0,0),
-d(1968,3,1,4,0,0),
-d(1985,11,2,5,0,0),
-d(1986,3,15,4,0,0),
-d(1986,10,25,5,0,0),
-d(1987,2,14,4,0,0),
-d(1987,10,25,5,0,0),
-d(1988,2,7,4,0,0),
- ]
-
- _transition_info = [
-i(-16260,0,'LMT'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
- ]
-
-Rio_Branco = Rio_Branco()
-
diff --git a/vendor/pytz/zoneinfo/America/Rosario.py b/vendor/pytz/zoneinfo/America/Rosario.py
deleted file mode 100644
index a0aaa92d..00000000
--- a/vendor/pytz/zoneinfo/America/Rosario.py
+++ /dev/null
@@ -1,132 +0,0 @@
-'''tzinfo timezone information for America/Rosario.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rosario(DstTzInfo):
- '''America/Rosario timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Rosario'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,5,1,4,16,48),
-d(1930,12,1,4,0,0),
-d(1931,4,1,3,0,0),
-d(1931,10,15,4,0,0),
-d(1932,3,1,3,0,0),
-d(1932,11,1,4,0,0),
-d(1933,3,1,3,0,0),
-d(1933,11,1,4,0,0),
-d(1934,3,1,3,0,0),
-d(1934,11,1,4,0,0),
-d(1935,3,1,3,0,0),
-d(1935,11,1,4,0,0),
-d(1936,3,1,3,0,0),
-d(1936,11,1,4,0,0),
-d(1937,3,1,3,0,0),
-d(1937,11,1,4,0,0),
-d(1938,3,1,3,0,0),
-d(1938,11,1,4,0,0),
-d(1939,3,1,3,0,0),
-d(1939,11,1,4,0,0),
-d(1940,3,1,3,0,0),
-d(1940,7,1,4,0,0),
-d(1941,6,15,3,0,0),
-d(1941,10,15,4,0,0),
-d(1943,8,1,3,0,0),
-d(1943,10,15,4,0,0),
-d(1946,3,1,3,0,0),
-d(1946,10,1,4,0,0),
-d(1963,10,1,3,0,0),
-d(1963,12,15,4,0,0),
-d(1964,3,1,3,0,0),
-d(1964,10,15,4,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1988,12,1,3,0,0),
-d(1989,3,5,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,3,4,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,3,3,2,0,0),
-d(1991,10,20,4,0,0),
-d(1992,3,1,2,0,0),
-d(1992,10,18,3,0,0),
-d(1993,3,7,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,3,3,3,0,0),
- ]
-
- _transition_info = [
-i(-15420,0,'CMT'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-14400,0,'WART'),
-i(-7200,7200,'ARST'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-10800,0,'ARST'),
-i(-10800,0,'ART'),
- ]
-
-Rosario = Rosario()
-
diff --git a/vendor/pytz/zoneinfo/America/Santiago.py b/vendor/pytz/zoneinfo/America/Santiago.py
deleted file mode 100644
index 120190d5..00000000
--- a/vendor/pytz/zoneinfo/America/Santiago.py
+++ /dev/null
@@ -1,336 +0,0 @@
-'''tzinfo timezone information for America/Santiago.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Santiago(DstTzInfo):
- '''America/Santiago timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Santiago'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,1,1,4,42,46),
-d(1916,7,1,5,0,0),
-d(1918,9,1,4,42,46),
-d(1919,7,1,4,0,0),
-d(1927,9,1,4,42,46),
-d(1928,4,1,4,0,0),
-d(1928,9,1,5,0,0),
-d(1929,4,1,4,0,0),
-d(1929,9,1,5,0,0),
-d(1930,4,1,4,0,0),
-d(1930,9,1,5,0,0),
-d(1931,4,1,4,0,0),
-d(1931,9,1,5,0,0),
-d(1932,4,1,4,0,0),
-d(1932,9,1,5,0,0),
-d(1942,6,1,4,0,0),
-d(1942,8,1,5,0,0),
-d(1946,9,1,3,0,0),
-d(1947,5,22,5,0,0),
-d(1968,11,3,4,0,0),
-d(1969,3,30,3,0,0),
-d(1969,11,23,4,0,0),
-d(1970,3,29,3,0,0),
-d(1970,10,11,4,0,0),
-d(1971,3,14,3,0,0),
-d(1971,10,10,4,0,0),
-d(1972,3,12,3,0,0),
-d(1972,10,15,4,0,0),
-d(1973,3,11,3,0,0),
-d(1973,9,30,4,0,0),
-d(1974,3,10,3,0,0),
-d(1974,10,13,4,0,0),
-d(1975,3,9,3,0,0),
-d(1975,10,12,4,0,0),
-d(1976,3,14,3,0,0),
-d(1976,10,10,4,0,0),
-d(1977,3,13,3,0,0),
-d(1977,10,9,4,0,0),
-d(1978,3,12,3,0,0),
-d(1978,10,15,4,0,0),
-d(1979,3,11,3,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,9,3,0,0),
-d(1980,10,12,4,0,0),
-d(1981,3,15,3,0,0),
-d(1981,10,11,4,0,0),
-d(1982,3,14,3,0,0),
-d(1982,10,10,4,0,0),
-d(1983,3,13,3,0,0),
-d(1983,10,9,4,0,0),
-d(1984,3,11,3,0,0),
-d(1984,10,14,4,0,0),
-d(1985,3,10,3,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,9,3,0,0),
-d(1986,10,12,4,0,0),
-d(1987,4,12,3,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,13,3,0,0),
-d(1988,10,2,4,0,0),
-d(1989,3,12,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,3,18,3,0,0),
-d(1990,9,16,4,0,0),
-d(1991,3,10,3,0,0),
-d(1991,10,13,4,0,0),
-d(1992,3,15,3,0,0),
-d(1992,10,11,4,0,0),
-d(1993,3,14,3,0,0),
-d(1993,10,10,4,0,0),
-d(1994,3,13,3,0,0),
-d(1994,10,9,4,0,0),
-d(1995,3,12,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,3,10,3,0,0),
-d(1996,10,13,4,0,0),
-d(1997,3,30,3,0,0),
-d(1997,10,12,4,0,0),
-d(1998,3,15,3,0,0),
-d(1998,9,27,4,0,0),
-d(1999,4,4,3,0,0),
-d(1999,10,10,4,0,0),
-d(2000,3,12,3,0,0),
-d(2000,10,15,4,0,0),
-d(2001,3,11,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,3,10,3,0,0),
-d(2002,10,13,4,0,0),
-d(2003,3,9,3,0,0),
-d(2003,10,12,4,0,0),
-d(2004,3,14,3,0,0),
-d(2004,10,10,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,9,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,14,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,12,4,0,0),
-d(2009,3,15,3,0,0),
-d(2009,10,11,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,10,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,9,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,14,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,13,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,12,4,0,0),
-d(2015,3,15,3,0,0),
-d(2015,10,11,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,9,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,14,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,13,4,0,0),
-d(2020,3,15,3,0,0),
-d(2020,10,11,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,10,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,9,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,13,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,12,4,0,0),
-d(2026,3,15,3,0,0),
-d(2026,10,11,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,10,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,14,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,13,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,12,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,10,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,9,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,14,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,12,4,0,0),
-d(2037,3,15,3,0,0),
-d(2037,10,11,4,0,0),
- ]
-
- _transition_info = [
-i(-16980,0,'SMT'),
-i(-18000,0,'CLT'),
-i(-16980,0,'SMT'),
-i(-14400,0,'CLT'),
-i(-16980,0,'SMT'),
-i(-14400,2580,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
- ]
-
-Santiago = Santiago()
-
diff --git a/vendor/pytz/zoneinfo/America/Santo_Domingo.py b/vendor/pytz/zoneinfo/America/Santo_Domingo.py
deleted file mode 100644
index 63963732..00000000
--- a/vendor/pytz/zoneinfo/America/Santo_Domingo.py
+++ /dev/null
@@ -1,52 +0,0 @@
-'''tzinfo timezone information for America/Santo_Domingo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Santo_Domingo(DstTzInfo):
- '''America/Santo_Domingo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Santo_Domingo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1933,4,1,16,40,0),
-d(1966,10,30,5,0,0),
-d(1967,2,28,4,0,0),
-d(1969,10,26,5,0,0),
-d(1970,2,21,4,30,0),
-d(1970,10,25,5,0,0),
-d(1971,1,20,4,30,0),
-d(1971,10,31,5,0,0),
-d(1972,1,21,4,30,0),
-d(1972,10,29,5,0,0),
-d(1973,1,21,4,30,0),
-d(1973,10,28,5,0,0),
-d(1974,1,21,4,30,0),
-d(1974,10,27,5,0,0),
-d(2000,10,29,6,0,0),
-d(2000,12,3,6,0,0),
- ]
-
- _transition_info = [
-i(-16800,0,'SDMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-16200,1800,'EHDT'),
-i(-18000,0,'EST'),
-i(-16200,1800,'EHDT'),
-i(-18000,0,'EST'),
-i(-16200,1800,'EHDT'),
-i(-18000,0,'EST'),
-i(-16200,1800,'EHDT'),
-i(-18000,0,'EST'),
-i(-16200,1800,'EHDT'),
-i(-18000,0,'EST'),
-i(-14400,0,'AST'),
-i(-18000,0,'EST'),
-i(-14400,0,'AST'),
- ]
-
-Santo_Domingo = Santo_Domingo()
-
diff --git a/vendor/pytz/zoneinfo/America/Sao_Paulo.py b/vendor/pytz/zoneinfo/America/Sao_Paulo.py
deleted file mode 100644
index d1e8c192..00000000
--- a/vendor/pytz/zoneinfo/America/Sao_Paulo.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for America/Sao_Paulo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sao_Paulo(DstTzInfo):
- '''America/Sao_Paulo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Sao_Paulo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,6,28),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,10,23,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,2,17,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,2,9,2,0,0),
-d(1992,10,25,3,0,0),
-d(1993,1,31,2,0,0),
-d(1993,10,17,3,0,0),
-d(1994,2,20,2,0,0),
-d(1994,10,16,3,0,0),
-d(1995,2,19,2,0,0),
-d(1995,10,15,3,0,0),
-d(1996,2,11,2,0,0),
-d(1996,10,6,3,0,0),
-d(1997,2,16,2,0,0),
-d(1997,10,6,3,0,0),
-d(1998,3,1,2,0,0),
-d(1998,10,11,3,0,0),
-d(1999,2,21,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2001,2,18,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
-d(2002,11,3,3,0,0),
-d(2003,2,16,2,0,0),
-d(2003,10,19,3,0,0),
-d(2004,2,15,2,0,0),
-d(2004,11,2,3,0,0),
-d(2005,2,20,2,0,0),
-d(2005,10,16,3,0,0),
-d(2006,2,19,2,0,0),
-d(2006,11,5,3,0,0),
-d(2007,2,25,2,0,0),
-d(2007,11,4,3,0,0),
-d(2008,2,24,2,0,0),
-d(2008,11,2,3,0,0),
-d(2009,2,22,2,0,0),
-d(2009,11,1,3,0,0),
-d(2010,2,28,2,0,0),
-d(2010,11,7,3,0,0),
-d(2011,2,27,2,0,0),
-d(2011,11,6,3,0,0),
-d(2012,2,26,2,0,0),
-d(2012,11,4,3,0,0),
-d(2013,2,24,2,0,0),
-d(2013,11,3,3,0,0),
-d(2014,2,23,2,0,0),
-d(2014,11,2,3,0,0),
-d(2015,2,22,2,0,0),
-d(2015,11,1,3,0,0),
-d(2016,2,28,2,0,0),
-d(2016,11,6,3,0,0),
-d(2017,2,26,2,0,0),
-d(2017,11,5,3,0,0),
-d(2018,2,25,2,0,0),
-d(2018,11,4,3,0,0),
-d(2019,2,24,2,0,0),
-d(2019,11,3,3,0,0),
-d(2020,2,23,2,0,0),
-d(2020,11,1,3,0,0),
-d(2021,2,28,2,0,0),
-d(2021,11,7,3,0,0),
-d(2022,2,27,2,0,0),
-d(2022,11,6,3,0,0),
-d(2023,2,26,2,0,0),
-d(2023,11,5,3,0,0),
-d(2024,2,25,2,0,0),
-d(2024,11,3,3,0,0),
-d(2025,2,23,2,0,0),
-d(2025,11,2,3,0,0),
-d(2026,2,22,2,0,0),
-d(2026,11,1,3,0,0),
-d(2027,2,28,2,0,0),
-d(2027,11,7,3,0,0),
-d(2028,2,27,2,0,0),
-d(2028,11,5,3,0,0),
-d(2029,2,25,2,0,0),
-d(2029,11,4,3,0,0),
-d(2030,2,24,2,0,0),
-d(2030,11,3,3,0,0),
-d(2031,2,23,2,0,0),
-d(2031,11,2,3,0,0),
-d(2032,2,29,2,0,0),
-d(2032,11,7,3,0,0),
-d(2033,2,27,2,0,0),
-d(2033,11,6,3,0,0),
-d(2034,2,26,2,0,0),
-d(2034,11,5,3,0,0),
-d(2035,2,25,2,0,0),
-d(2035,11,4,3,0,0),
-d(2036,2,24,2,0,0),
-d(2036,11,2,3,0,0),
-d(2037,2,22,2,0,0),
-d(2037,11,1,3,0,0),
- ]
-
- _transition_info = [
-i(-11160,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
- ]
-
-Sao_Paulo = Sao_Paulo()
-
diff --git a/vendor/pytz/zoneinfo/America/Scoresbysund.py b/vendor/pytz/zoneinfo/America/Scoresbysund.py
deleted file mode 100644
index 4beb56c3..00000000
--- a/vendor/pytz/zoneinfo/America/Scoresbysund.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for America/Scoresbysund.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Scoresbysund(DstTzInfo):
- '''America/Scoresbysund timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Scoresbysund'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,28,1,27,52),
-d(1980,4,6,4,0,0),
-d(1980,9,28,4,0,0),
-d(1981,3,29,2,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-5280,0,'LMT'),
-i(-7200,0,'CGT'),
-i(-3600,3600,'CGST'),
-i(-7200,0,'CGT'),
-i(0,7200,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
-i(0,3600,'EGST'),
-i(-3600,0,'EGT'),
- ]
-
-Scoresbysund = Scoresbysund()
-
diff --git a/vendor/pytz/zoneinfo/America/Shiprock.py b/vendor/pytz/zoneinfo/America/Shiprock.py
deleted file mode 100644
index 2a3e4d09..00000000
--- a/vendor/pytz/zoneinfo/America/Shiprock.py
+++ /dev/null
@@ -1,334 +0,0 @@
-'''tzinfo timezone information for America/Shiprock.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Shiprock(DstTzInfo):
- '''America/Shiprock timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Shiprock'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1920,3,28,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,3,27,9,0,0),
-d(1921,5,22,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,8,0,0),
-d(1966,4,24,9,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Shiprock = Shiprock()
-
diff --git a/vendor/pytz/zoneinfo/America/St_Johns.py b/vendor/pytz/zoneinfo/America/St_Johns.py
deleted file mode 100644
index 48fd33dd..00000000
--- a/vendor/pytz/zoneinfo/America/St_Johns.py
+++ /dev/null
@@ -1,496 +0,0 @@
-'''tzinfo timezone information for America/St_Johns.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Johns(DstTzInfo):
- '''America/St_Johns timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/St_Johns'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,4,8,5,30,52),
-d(1917,9,17,4,30,52),
-d(1918,4,14,5,30,52),
-d(1918,10,31,4,30,52),
-d(1919,5,6,2,30,52),
-d(1919,8,13,1,30,52),
-d(1920,5,3,2,30,52),
-d(1920,11,1,1,30,52),
-d(1921,5,2,2,30,52),
-d(1921,10,31,1,30,52),
-d(1922,5,8,2,30,52),
-d(1922,10,30,1,30,52),
-d(1923,5,7,2,30,52),
-d(1923,10,29,1,30,52),
-d(1924,5,5,2,30,52),
-d(1924,10,27,1,30,52),
-d(1925,5,4,2,30,52),
-d(1925,10,26,1,30,52),
-d(1926,5,3,2,30,52),
-d(1926,11,1,1,30,52),
-d(1927,5,2,2,30,52),
-d(1927,10,31,1,30,52),
-d(1928,5,7,2,30,52),
-d(1928,10,29,1,30,52),
-d(1929,5,6,2,30,52),
-d(1929,10,28,1,30,52),
-d(1930,5,5,2,30,52),
-d(1930,10,27,1,30,52),
-d(1931,5,4,2,30,52),
-d(1931,10,26,1,30,52),
-d(1932,5,2,2,30,52),
-d(1932,10,31,1,30,52),
-d(1933,5,8,2,30,52),
-d(1933,10,30,1,30,52),
-d(1934,5,7,2,30,52),
-d(1934,10,29,1,30,52),
-d(1935,3,30,3,30,52),
-d(1935,5,6,2,30,0),
-d(1935,10,28,1,30,0),
-d(1936,5,11,3,30,0),
-d(1936,10,5,2,30,0),
-d(1937,5,10,3,30,0),
-d(1937,10,4,2,30,0),
-d(1938,5,9,3,30,0),
-d(1938,10,3,2,30,0),
-d(1939,5,15,3,30,0),
-d(1939,10,2,2,30,0),
-d(1940,5,13,3,30,0),
-d(1940,10,7,2,30,0),
-d(1941,5,12,3,30,0),
-d(1941,10,6,2,30,0),
-d(1942,5,11,3,30,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,4,30,0),
-d(1946,5,12,5,30,0),
-d(1946,10,6,4,30,0),
-d(1947,5,11,5,30,0),
-d(1947,10,5,4,30,0),
-d(1948,5,9,5,30,0),
-d(1948,10,3,4,30,0),
-d(1949,5,8,5,30,0),
-d(1949,10,2,4,30,0),
-d(1950,5,14,5,30,0),
-d(1950,10,8,4,30,0),
-d(1951,4,29,5,30,0),
-d(1951,9,30,4,30,0),
-d(1952,4,27,5,30,0),
-d(1952,9,28,4,30,0),
-d(1953,4,26,5,30,0),
-d(1953,9,27,4,30,0),
-d(1954,4,25,5,30,0),
-d(1954,9,26,4,30,0),
-d(1955,4,24,5,30,0),
-d(1955,9,25,4,30,0),
-d(1956,4,29,5,30,0),
-d(1956,9,30,4,30,0),
-d(1957,4,28,5,30,0),
-d(1957,9,29,4,30,0),
-d(1958,4,27,5,30,0),
-d(1958,9,28,4,30,0),
-d(1959,4,26,5,30,0),
-d(1959,9,27,4,30,0),
-d(1960,4,24,5,30,0),
-d(1960,10,30,4,30,0),
-d(1961,4,30,5,30,0),
-d(1961,10,29,4,30,0),
-d(1962,4,29,5,30,0),
-d(1962,10,28,4,30,0),
-d(1963,4,28,5,30,0),
-d(1963,10,27,4,30,0),
-d(1964,4,26,5,30,0),
-d(1964,10,25,4,30,0),
-d(1965,4,25,5,30,0),
-d(1965,10,31,4,30,0),
-d(1966,4,24,5,30,0),
-d(1966,10,30,4,30,0),
-d(1967,4,30,5,30,0),
-d(1967,10,29,4,30,0),
-d(1968,4,28,5,30,0),
-d(1968,10,27,4,30,0),
-d(1969,4,27,5,30,0),
-d(1969,10,26,4,30,0),
-d(1970,4,26,5,30,0),
-d(1970,10,25,4,30,0),
-d(1971,4,25,5,30,0),
-d(1971,10,31,4,30,0),
-d(1972,4,30,5,30,0),
-d(1972,10,29,4,30,0),
-d(1973,4,29,5,30,0),
-d(1973,10,28,4,30,0),
-d(1974,4,28,5,30,0),
-d(1974,10,27,4,30,0),
-d(1975,4,27,5,30,0),
-d(1975,10,26,4,30,0),
-d(1976,4,25,5,30,0),
-d(1976,10,31,4,30,0),
-d(1977,4,24,5,30,0),
-d(1977,10,30,4,30,0),
-d(1978,4,30,5,30,0),
-d(1978,10,29,4,30,0),
-d(1979,4,29,5,30,0),
-d(1979,10,28,4,30,0),
-d(1980,4,27,5,30,0),
-d(1980,10,26,4,30,0),
-d(1981,4,26,5,30,0),
-d(1981,10,25,4,30,0),
-d(1982,4,25,5,30,0),
-d(1982,10,31,4,30,0),
-d(1983,4,24,5,30,0),
-d(1983,10,30,4,30,0),
-d(1984,4,29,5,30,0),
-d(1984,10,28,4,30,0),
-d(1985,4,28,5,30,0),
-d(1985,10,27,4,30,0),
-d(1986,4,27,5,30,0),
-d(1986,10,26,4,30,0),
-d(1987,4,5,3,31,0),
-d(1987,10,25,2,31,0),
-d(1988,4,3,3,31,0),
-d(1988,10,30,1,31,0),
-d(1989,4,2,3,31,0),
-d(1989,10,29,2,31,0),
-d(1990,4,1,3,31,0),
-d(1990,10,28,2,31,0),
-d(1991,4,7,3,31,0),
-d(1991,10,27,2,31,0),
-d(1992,4,5,3,31,0),
-d(1992,10,25,2,31,0),
-d(1993,4,4,3,31,0),
-d(1993,10,31,2,31,0),
-d(1994,4,3,3,31,0),
-d(1994,10,30,2,31,0),
-d(1995,4,2,3,31,0),
-d(1995,10,29,2,31,0),
-d(1996,4,7,3,31,0),
-d(1996,10,27,2,31,0),
-d(1997,4,6,3,31,0),
-d(1997,10,26,2,31,0),
-d(1998,4,5,3,31,0),
-d(1998,10,25,2,31,0),
-d(1999,4,4,3,31,0),
-d(1999,10,31,2,31,0),
-d(2000,4,2,3,31,0),
-d(2000,10,29,2,31,0),
-d(2001,4,1,3,31,0),
-d(2001,10,28,2,31,0),
-d(2002,4,7,3,31,0),
-d(2002,10,27,2,31,0),
-d(2003,4,6,3,31,0),
-d(2003,10,26,2,31,0),
-d(2004,4,4,3,31,0),
-d(2004,10,31,2,31,0),
-d(2005,4,3,3,31,0),
-d(2005,10,30,2,31,0),
-d(2006,4,2,3,31,0),
-d(2006,10,29,2,31,0),
-d(2007,3,11,3,31,0),
-d(2007,11,4,2,31,0),
-d(2008,3,9,3,31,0),
-d(2008,11,2,2,31,0),
-d(2009,3,8,3,31,0),
-d(2009,11,1,2,31,0),
-d(2010,3,14,3,31,0),
-d(2010,11,7,2,31,0),
-d(2011,3,13,3,31,0),
-d(2011,11,6,2,31,0),
-d(2012,3,11,3,31,0),
-d(2012,11,4,2,31,0),
-d(2013,3,10,3,31,0),
-d(2013,11,3,2,31,0),
-d(2014,3,9,3,31,0),
-d(2014,11,2,2,31,0),
-d(2015,3,8,3,31,0),
-d(2015,11,1,2,31,0),
-d(2016,3,13,3,31,0),
-d(2016,11,6,2,31,0),
-d(2017,3,12,3,31,0),
-d(2017,11,5,2,31,0),
-d(2018,3,11,3,31,0),
-d(2018,11,4,2,31,0),
-d(2019,3,10,3,31,0),
-d(2019,11,3,2,31,0),
-d(2020,3,8,3,31,0),
-d(2020,11,1,2,31,0),
-d(2021,3,14,3,31,0),
-d(2021,11,7,2,31,0),
-d(2022,3,13,3,31,0),
-d(2022,11,6,2,31,0),
-d(2023,3,12,3,31,0),
-d(2023,11,5,2,31,0),
-d(2024,3,10,3,31,0),
-d(2024,11,3,2,31,0),
-d(2025,3,9,3,31,0),
-d(2025,11,2,2,31,0),
-d(2026,3,8,3,31,0),
-d(2026,11,1,2,31,0),
-d(2027,3,14,3,31,0),
-d(2027,11,7,2,31,0),
-d(2028,3,12,3,31,0),
-d(2028,11,5,2,31,0),
-d(2029,3,11,3,31,0),
-d(2029,11,4,2,31,0),
-d(2030,3,10,3,31,0),
-d(2030,11,3,2,31,0),
-d(2031,3,9,3,31,0),
-d(2031,11,2,2,31,0),
-d(2032,3,14,3,31,0),
-d(2032,11,7,2,31,0),
-d(2033,3,13,3,31,0),
-d(2033,11,6,2,31,0),
-d(2034,3,12,3,31,0),
-d(2034,11,5,2,31,0),
-d(2035,3,11,3,31,0),
-d(2035,11,4,2,31,0),
-d(2036,3,9,3,31,0),
-d(2036,11,2,2,31,0),
-d(2037,3,8,3,31,0),
-d(2037,11,1,2,31,0),
- ]
-
- _transition_info = [
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NWT'),
-i(-9000,3600,'NPT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-5400,7200,'NDDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
- ]
-
-St_Johns = St_Johns()
-
diff --git a/vendor/pytz/zoneinfo/America/St_Kitts.py b/vendor/pytz/zoneinfo/America/St_Kitts.py
deleted file mode 100644
index 6092919d..00000000
--- a/vendor/pytz/zoneinfo/America/St_Kitts.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/St_Kitts.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Kitts(DstTzInfo):
- '''America/St_Kitts timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/St_Kitts'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,2,4,10,52),
- ]
-
- _transition_info = [
-i(-15060,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-St_Kitts = St_Kitts()
-
diff --git a/vendor/pytz/zoneinfo/America/St_Lucia.py b/vendor/pytz/zoneinfo/America/St_Lucia.py
deleted file mode 100644
index ae785136..00000000
--- a/vendor/pytz/zoneinfo/America/St_Lucia.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/St_Lucia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Lucia(DstTzInfo):
- '''America/St_Lucia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/St_Lucia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,4,4,0),
- ]
-
- _transition_info = [
-i(-14640,0,'CMT'),
-i(-14400,0,'AST'),
- ]
-
-St_Lucia = St_Lucia()
-
diff --git a/vendor/pytz/zoneinfo/America/St_Thomas.py b/vendor/pytz/zoneinfo/America/St_Thomas.py
deleted file mode 100644
index 4367e35a..00000000
--- a/vendor/pytz/zoneinfo/America/St_Thomas.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/St_Thomas.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Thomas(DstTzInfo):
- '''America/St_Thomas timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/St_Thomas'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,19,44),
- ]
-
- _transition_info = [
-i(-15600,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-St_Thomas = St_Thomas()
-
diff --git a/vendor/pytz/zoneinfo/America/St_Vincent.py b/vendor/pytz/zoneinfo/America/St_Vincent.py
deleted file mode 100644
index fca39da8..00000000
--- a/vendor/pytz/zoneinfo/America/St_Vincent.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/St_Vincent.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Vincent(DstTzInfo):
- '''America/St_Vincent timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/St_Vincent'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,4,4,56),
- ]
-
- _transition_info = [
-i(-14700,0,'KMT'),
-i(-14400,0,'AST'),
- ]
-
-St_Vincent = St_Vincent()
-
diff --git a/vendor/pytz/zoneinfo/America/Swift_Current.py b/vendor/pytz/zoneinfo/America/Swift_Current.py
deleted file mode 100644
index e4bab9f7..00000000
--- a/vendor/pytz/zoneinfo/America/Swift_Current.py
+++ /dev/null
@@ -1,66 +0,0 @@
-'''tzinfo timezone information for America/Swift_Current.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Swift_Current(DstTzInfo):
- '''America/Swift_Current timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Swift_Current'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,9,1,7,11,20),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1946,4,28,9,0,0),
-d(1946,10,13,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1948,4,25,9,0,0),
-d(1948,9,26,8,0,0),
-d(1949,4,24,9,0,0),
-d(1949,9,25,8,0,0),
-d(1957,4,28,9,0,0),
-d(1957,10,27,8,0,0),
-d(1959,4,26,9,0,0),
-d(1959,10,25,8,0,0),
-d(1960,4,24,9,0,0),
-d(1960,9,25,8,0,0),
-d(1961,4,30,9,0,0),
-d(1961,9,24,8,0,0),
-d(1972,4,30,9,0,0),
- ]
-
- _transition_info = [
-i(-25860,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
- ]
-
-Swift_Current = Swift_Current()
-
diff --git a/vendor/pytz/zoneinfo/America/Tegucigalpa.py b/vendor/pytz/zoneinfo/America/Tegucigalpa.py
deleted file mode 100644
index 3f74d02a..00000000
--- a/vendor/pytz/zoneinfo/America/Tegucigalpa.py
+++ /dev/null
@@ -1,46 +0,0 @@
-'''tzinfo timezone information for America/Tegucigalpa.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tegucigalpa(DstTzInfo):
- '''America/Tegucigalpa timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Tegucigalpa'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,4,1,5,48,52),
-d(1987,5,3,6,0,0),
-d(1987,9,27,5,0,0),
-d(1988,5,1,6,0,0),
-d(1988,9,25,5,0,0),
-d(2006,5,7,6,0,0),
-d(2006,8,7,5,0,0),
-d(2007,5,6,6,0,0),
-d(2007,8,6,5,0,0),
-d(2008,5,4,6,0,0),
-d(2008,8,4,5,0,0),
-d(2009,5,3,6,0,0),
-d(2009,8,3,5,0,0),
- ]
-
- _transition_info = [
-i(-20940,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Tegucigalpa = Tegucigalpa()
-
diff --git a/vendor/pytz/zoneinfo/America/Thule.py b/vendor/pytz/zoneinfo/America/Thule.py
deleted file mode 100644
index 8a773ab1..00000000
--- a/vendor/pytz/zoneinfo/America/Thule.py
+++ /dev/null
@@ -1,210 +0,0 @@
-'''tzinfo timezone information for America/Thule.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Thule(DstTzInfo):
- '''America/Thule timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Thule'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,28,4,35,8),
-d(1991,3,31,6,0,0),
-d(1991,9,29,5,0,0),
-d(1992,3,29,6,0,0),
-d(1992,9,27,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,5,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,5,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,5,0,0),
-d(1998,4,5,6,0,0),
-d(1998,10,25,5,0,0),
-d(1999,4,4,6,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,6,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,6,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,6,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,6,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,6,0,0),
-d(2004,10,31,5,0,0),
-d(2005,4,3,6,0,0),
-d(2005,10,30,5,0,0),
-d(2006,4,2,6,0,0),
-d(2006,10,29,5,0,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-16500,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Thule = Thule()
-
diff --git a/vendor/pytz/zoneinfo/America/Thunder_Bay.py b/vendor/pytz/zoneinfo/America/Thunder_Bay.py
deleted file mode 100644
index 699cad24..00000000
--- a/vendor/pytz/zoneinfo/America/Thunder_Bay.py
+++ /dev/null
@@ -1,296 +0,0 @@
-'''tzinfo timezone information for America/Thunder_Bay.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Thunder_Bay(DstTzInfo):
- '''America/Thunder_Bay timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Thunder_Bay'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,1,1,6,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Thunder_Bay = Thunder_Bay()
-
diff --git a/vendor/pytz/zoneinfo/America/Tijuana.py b/vendor/pytz/zoneinfo/America/Tijuana.py
deleted file mode 100644
index 79f6a970..00000000
--- a/vendor/pytz/zoneinfo/America/Tijuana.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for America/Tijuana.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tijuana(DstTzInfo):
- '''America/Tijuana timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Tijuana'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,8,0,0),
-d(1924,1,1,7,0,0),
-d(1927,6,11,7,0,0),
-d(1930,11,15,7,0,0),
-d(1931,4,1,8,0,0),
-d(1931,9,30,7,0,0),
-d(1942,4,24,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,11,12,7,0,0),
-d(1948,4,5,8,0,0),
-d(1949,1,14,7,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,4,1,10,0,0),
-d(2007,10,28,9,0,0),
-d(2008,4,6,10,0,0),
-d(2008,10,26,9,0,0),
-d(2009,4,5,10,0,0),
-d(2009,10,25,9,0,0),
-d(2010,4,4,10,0,0),
-d(2010,10,31,9,0,0),
-d(2011,4,3,10,0,0),
-d(2011,10,30,9,0,0),
-d(2012,4,1,10,0,0),
-d(2012,10,28,9,0,0),
-d(2013,4,7,10,0,0),
-d(2013,10,27,9,0,0),
-d(2014,4,6,10,0,0),
-d(2014,10,26,9,0,0),
-d(2015,4,5,10,0,0),
-d(2015,10,25,9,0,0),
-d(2016,4,3,10,0,0),
-d(2016,10,30,9,0,0),
-d(2017,4,2,10,0,0),
-d(2017,10,29,9,0,0),
-d(2018,4,1,10,0,0),
-d(2018,10,28,9,0,0),
-d(2019,4,7,10,0,0),
-d(2019,10,27,9,0,0),
-d(2020,4,5,10,0,0),
-d(2020,10,25,9,0,0),
-d(2021,4,4,10,0,0),
-d(2021,10,31,9,0,0),
-d(2022,4,3,10,0,0),
-d(2022,10,30,9,0,0),
-d(2023,4,2,10,0,0),
-d(2023,10,29,9,0,0),
-d(2024,4,7,10,0,0),
-d(2024,10,27,9,0,0),
-d(2025,4,6,10,0,0),
-d(2025,10,26,9,0,0),
-d(2026,4,5,10,0,0),
-d(2026,10,25,9,0,0),
-d(2027,4,4,10,0,0),
-d(2027,10,31,9,0,0),
-d(2028,4,2,10,0,0),
-d(2028,10,29,9,0,0),
-d(2029,4,1,10,0,0),
-d(2029,10,28,9,0,0),
-d(2030,4,7,10,0,0),
-d(2030,10,27,9,0,0),
-d(2031,4,6,10,0,0),
-d(2031,10,26,9,0,0),
-d(2032,4,4,10,0,0),
-d(2032,10,31,9,0,0),
-d(2033,4,3,10,0,0),
-d(2033,10,30,9,0,0),
-d(2034,4,2,10,0,0),
-d(2034,10,29,9,0,0),
-d(2035,4,1,10,0,0),
-d(2035,10,28,9,0,0),
-d(2036,4,6,10,0,0),
-d(2036,10,26,9,0,0),
-d(2037,4,5,10,0,0),
-d(2037,10,25,9,0,0),
- ]
-
- _transition_info = [
-i(-28080,0,'LMT'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Tijuana = Tijuana()
-
diff --git a/vendor/pytz/zoneinfo/America/Toronto.py b/vendor/pytz/zoneinfo/America/Toronto.py
deleted file mode 100644
index 25d4ae2f..00000000
--- a/vendor/pytz/zoneinfo/America/Toronto.py
+++ /dev/null
@@ -1,484 +0,0 @@
-'''tzinfo timezone information for America/Toronto.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Toronto(DstTzInfo):
- '''America/Toronto timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Toronto'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,7,0,0),
-d(1918,10,31,6,0,0),
-d(1919,3,31,4,30,0),
-d(1919,10,26,4,0,0),
-d(1920,5,2,7,0,0),
-d(1920,9,26,4,0,0),
-d(1921,5,15,7,0,0),
-d(1921,9,15,6,0,0),
-d(1922,5,14,7,0,0),
-d(1922,9,17,6,0,0),
-d(1923,5,13,7,0,0),
-d(1923,9,16,6,0,0),
-d(1924,5,4,7,0,0),
-d(1924,9,21,6,0,0),
-d(1925,5,3,7,0,0),
-d(1925,9,20,6,0,0),
-d(1926,5,2,7,0,0),
-d(1926,9,19,6,0,0),
-d(1927,5,1,7,0,0),
-d(1927,9,25,6,0,0),
-d(1928,4,29,7,0,0),
-d(1928,9,30,6,0,0),
-d(1929,4,28,7,0,0),
-d(1929,9,29,6,0,0),
-d(1930,4,27,7,0,0),
-d(1930,9,28,6,0,0),
-d(1931,4,26,7,0,0),
-d(1931,9,27,6,0,0),
-d(1932,5,1,7,0,0),
-d(1932,9,25,6,0,0),
-d(1933,4,30,7,0,0),
-d(1933,10,1,6,0,0),
-d(1934,4,29,7,0,0),
-d(1934,9,30,6,0,0),
-d(1935,4,28,7,0,0),
-d(1935,9,29,6,0,0),
-d(1936,4,26,7,0,0),
-d(1936,9,27,6,0,0),
-d(1937,4,25,7,0,0),
-d(1937,9,26,6,0,0),
-d(1938,4,24,7,0,0),
-d(1938,9,25,6,0,0),
-d(1939,4,30,7,0,0),
-d(1939,9,24,6,0,0),
-d(1940,4,28,7,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,5,0,0),
-d(1947,9,28,4,0,0),
-d(1948,4,25,5,0,0),
-d(1948,9,26,4,0,0),
-d(1949,4,24,5,0,0),
-d(1949,11,27,4,0,0),
-d(1950,4,30,7,0,0),
-d(1950,11,26,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,9,25,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,9,30,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Toronto = Toronto()
-
diff --git a/vendor/pytz/zoneinfo/America/Tortola.py b/vendor/pytz/zoneinfo/America/Tortola.py
deleted file mode 100644
index 485f3841..00000000
--- a/vendor/pytz/zoneinfo/America/Tortola.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Tortola.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tortola(DstTzInfo):
- '''America/Tortola timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Tortola'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,18,28),
- ]
-
- _transition_info = [
-i(-15480,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Tortola = Tortola()
-
diff --git a/vendor/pytz/zoneinfo/America/Vancouver.py b/vendor/pytz/zoneinfo/America/Vancouver.py
deleted file mode 100644
index 89e0aca9..00000000
--- a/vendor/pytz/zoneinfo/America/Vancouver.py
+++ /dev/null
@@ -1,398 +0,0 @@
-'''tzinfo timezone information for America/Vancouver.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vancouver(DstTzInfo):
- '''America/Vancouver timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Vancouver'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,10,0,0),
-d(1918,10,31,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1946,4,28,10,0,0),
-d(1946,10,13,9,0,0),
-d(1947,4,27,10,0,0),
-d(1947,9,28,9,0,0),
-d(1948,4,25,10,0,0),
-d(1948,9,26,9,0,0),
-d(1949,4,24,10,0,0),
-d(1949,9,25,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,4,28,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,4,27,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Vancouver = Vancouver()
-
diff --git a/vendor/pytz/zoneinfo/America/Virgin.py b/vendor/pytz/zoneinfo/America/Virgin.py
deleted file mode 100644
index 9d6529ac..00000000
--- a/vendor/pytz/zoneinfo/America/Virgin.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for America/Virgin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Virgin(DstTzInfo):
- '''America/Virgin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Virgin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,7,1,4,19,44),
- ]
-
- _transition_info = [
-i(-15600,0,'LMT'),
-i(-14400,0,'AST'),
- ]
-
-Virgin = Virgin()
-
diff --git a/vendor/pytz/zoneinfo/America/Whitehorse.py b/vendor/pytz/zoneinfo/America/Whitehorse.py
deleted file mode 100644
index 78d1d74b..00000000
--- a/vendor/pytz/zoneinfo/America/Whitehorse.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for America/Whitehorse.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Whitehorse(DstTzInfo):
- '''America/Whitehorse timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Whitehorse'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,11,0,0),
-d(1918,10,27,10,0,0),
-d(1919,5,25,11,0,0),
-d(1919,11,1,8,0,0),
-d(1942,2,9,11,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,10,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,9,0,0),
-d(1966,7,1,11,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YWT'),
-i(-28800,3600,'YPT'),
-i(-32400,0,'YST'),
-i(-25200,7200,'YDDT'),
-i(-32400,0,'YST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Whitehorse = Whitehorse()
-
diff --git a/vendor/pytz/zoneinfo/America/Winnipeg.py b/vendor/pytz/zoneinfo/America/Winnipeg.py
deleted file mode 100644
index 96fa3236..00000000
--- a/vendor/pytz/zoneinfo/America/Winnipeg.py
+++ /dev/null
@@ -1,392 +0,0 @@
-'''tzinfo timezone information for America/Winnipeg.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Winnipeg(DstTzInfo):
- '''America/Winnipeg timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Winnipeg'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,23,6,0,0),
-d(1916,9,17,5,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,31,7,0,0),
-d(1937,5,16,8,0,0),
-d(1937,9,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,5,12,8,0,0),
-d(1946,10,13,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,5,1,8,0,0),
-d(1950,9,30,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,9,30,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,9,25,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,9,22,7,0,0),
-d(1966,4,24,8,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,8,0,0),
-d(1974,4,28,8,0,0),
-d(1974,10,27,8,0,0),
-d(1975,4,27,8,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,8,0,0),
-d(2006,1,1,6,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Winnipeg = Winnipeg()
-
diff --git a/vendor/pytz/zoneinfo/America/Yakutat.py b/vendor/pytz/zoneinfo/America/Yakutat.py
deleted file mode 100644
index b98a6afd..00000000
--- a/vendor/pytz/zoneinfo/America/Yakutat.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for America/Yakutat.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yakutat(DstTzInfo):
- '''America/Yakutat timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Yakutat'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,11,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,10,0,0),
-d(1969,4,27,11,0,0),
-d(1969,10,26,10,0,0),
-d(1970,4,26,11,0,0),
-d(1970,10,25,10,0,0),
-d(1971,4,25,11,0,0),
-d(1971,10,31,10,0,0),
-d(1972,4,30,11,0,0),
-d(1972,10,29,10,0,0),
-d(1973,4,29,11,0,0),
-d(1973,10,28,10,0,0),
-d(1974,1,6,11,0,0),
-d(1974,10,27,10,0,0),
-d(1975,2,23,11,0,0),
-d(1975,10,26,10,0,0),
-d(1976,4,25,11,0,0),
-d(1976,10,31,10,0,0),
-d(1977,4,24,11,0,0),
-d(1977,10,30,10,0,0),
-d(1978,4,30,11,0,0),
-d(1978,10,29,10,0,0),
-d(1979,4,29,11,0,0),
-d(1979,10,28,10,0,0),
-d(1980,4,27,11,0,0),
-d(1980,10,26,10,0,0),
-d(1981,4,26,11,0,0),
-d(1981,10,25,10,0,0),
-d(1982,4,25,11,0,0),
-d(1982,10,31,10,0,0),
-d(1983,4,24,11,0,0),
-d(1983,10,30,10,0,0),
-d(1983,11,30,9,0,0),
-d(1984,4,29,11,0,0),
-d(1984,10,28,10,0,0),
-d(1985,4,28,11,0,0),
-d(1985,10,27,10,0,0),
-d(1986,4,27,11,0,0),
-d(1986,10,26,10,0,0),
-d(1987,4,5,11,0,0),
-d(1987,10,25,10,0,0),
-d(1988,4,3,11,0,0),
-d(1988,10,30,10,0,0),
-d(1989,4,2,11,0,0),
-d(1989,10,29,10,0,0),
-d(1990,4,1,11,0,0),
-d(1990,10,28,10,0,0),
-d(1991,4,7,11,0,0),
-d(1991,10,27,10,0,0),
-d(1992,4,5,11,0,0),
-d(1992,10,25,10,0,0),
-d(1993,4,4,11,0,0),
-d(1993,10,31,10,0,0),
-d(1994,4,3,11,0,0),
-d(1994,10,30,10,0,0),
-d(1995,4,2,11,0,0),
-d(1995,10,29,10,0,0),
-d(1996,4,7,11,0,0),
-d(1996,10,27,10,0,0),
-d(1997,4,6,11,0,0),
-d(1997,10,26,10,0,0),
-d(1998,4,5,11,0,0),
-d(1998,10,25,10,0,0),
-d(1999,4,4,11,0,0),
-d(1999,10,31,10,0,0),
-d(2000,4,2,11,0,0),
-d(2000,10,29,10,0,0),
-d(2001,4,1,11,0,0),
-d(2001,10,28,10,0,0),
-d(2002,4,7,11,0,0),
-d(2002,10,27,10,0,0),
-d(2003,4,6,11,0,0),
-d(2003,10,26,10,0,0),
-d(2004,4,4,11,0,0),
-d(2004,10,31,10,0,0),
-d(2005,4,3,11,0,0),
-d(2005,10,30,10,0,0),
-d(2006,4,2,11,0,0),
-d(2006,10,29,10,0,0),
-d(2007,3,11,11,0,0),
-d(2007,11,4,10,0,0),
-d(2008,3,9,11,0,0),
-d(2008,11,2,10,0,0),
-d(2009,3,8,11,0,0),
-d(2009,11,1,10,0,0),
-d(2010,3,14,11,0,0),
-d(2010,11,7,10,0,0),
-d(2011,3,13,11,0,0),
-d(2011,11,6,10,0,0),
-d(2012,3,11,11,0,0),
-d(2012,11,4,10,0,0),
-d(2013,3,10,11,0,0),
-d(2013,11,3,10,0,0),
-d(2014,3,9,11,0,0),
-d(2014,11,2,10,0,0),
-d(2015,3,8,11,0,0),
-d(2015,11,1,10,0,0),
-d(2016,3,13,11,0,0),
-d(2016,11,6,10,0,0),
-d(2017,3,12,11,0,0),
-d(2017,11,5,10,0,0),
-d(2018,3,11,11,0,0),
-d(2018,11,4,10,0,0),
-d(2019,3,10,11,0,0),
-d(2019,11,3,10,0,0),
-d(2020,3,8,11,0,0),
-d(2020,11,1,10,0,0),
-d(2021,3,14,11,0,0),
-d(2021,11,7,10,0,0),
-d(2022,3,13,11,0,0),
-d(2022,11,6,10,0,0),
-d(2023,3,12,11,0,0),
-d(2023,11,5,10,0,0),
-d(2024,3,10,11,0,0),
-d(2024,11,3,10,0,0),
-d(2025,3,9,11,0,0),
-d(2025,11,2,10,0,0),
-d(2026,3,8,11,0,0),
-d(2026,11,1,10,0,0),
-d(2027,3,14,11,0,0),
-d(2027,11,7,10,0,0),
-d(2028,3,12,11,0,0),
-d(2028,11,5,10,0,0),
-d(2029,3,11,11,0,0),
-d(2029,11,4,10,0,0),
-d(2030,3,10,11,0,0),
-d(2030,11,3,10,0,0),
-d(2031,3,9,11,0,0),
-d(2031,11,2,10,0,0),
-d(2032,3,14,11,0,0),
-d(2032,11,7,10,0,0),
-d(2033,3,13,11,0,0),
-d(2033,11,6,10,0,0),
-d(2034,3,12,11,0,0),
-d(2034,11,5,10,0,0),
-d(2035,3,11,11,0,0),
-d(2035,11,4,10,0,0),
-d(2036,3,9,11,0,0),
-d(2036,11,2,10,0,0),
-d(2037,3,8,11,0,0),
-d(2037,11,1,10,0,0),
- ]
-
- _transition_info = [
-i(-32400,0,'YST'),
-i(-28800,3600,'YWT'),
-i(-28800,3600,'YPT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
- ]
-
-Yakutat = Yakutat()
-
diff --git a/vendor/pytz/zoneinfo/America/Yellowknife.py b/vendor/pytz/zoneinfo/America/Yellowknife.py
deleted file mode 100644
index 81494e5f..00000000
--- a/vendor/pytz/zoneinfo/America/Yellowknife.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for America/Yellowknife.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yellowknife(DstTzInfo):
- '''America/Yellowknife timezone definition. See datetime.tzinfo for details'''
-
- zone = 'America/Yellowknife'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,5,25,9,0,0),
-d(1919,11,1,6,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,7,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-18000,7200,'MDDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Yellowknife = Yellowknife()
-
diff --git a/vendor/pytz/zoneinfo/America/__init__.py b/vendor/pytz/zoneinfo/America/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Antarctica/Casey.py b/vendor/pytz/zoneinfo/Antarctica/Casey.py
deleted file mode 100644
index b4bcceb4..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Casey.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Antarctica/Casey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Casey(DstTzInfo):
- '''Antarctica/Casey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Casey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,1,1,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(28800,0,'WST'),
- ]
-
-Casey = Casey()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Davis.py b/vendor/pytz/zoneinfo/Antarctica/Davis.py
deleted file mode 100644
index 6c1384fa..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Davis.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Antarctica/Davis.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Davis(DstTzInfo):
- '''Antarctica/Davis timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Davis'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1957,1,13,0,0,0),
-d(1964,10,31,17,0,0),
-d(1969,2,1,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(25200,0,'DAVT'),
-i(0,0,'zzz'),
-i(25200,0,'DAVT'),
- ]
-
-Davis = Davis()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/DumontDUrville.py b/vendor/pytz/zoneinfo/Antarctica/DumontDUrville.py
deleted file mode 100644
index 14af4df3..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/DumontDUrville.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Antarctica/DumontDUrville.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class DumontDUrville(DstTzInfo):
- '''Antarctica/DumontDUrville timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/DumontDUrville'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1947,1,1,0,0,0),
-d(1952,1,13,14,0,0),
-d(1956,11,1,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(36000,0,'PMT'),
-i(0,0,'zzz'),
-i(36000,0,'DDUT'),
- ]
-
-DumontDUrville = DumontDUrville()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Mawson.py b/vendor/pytz/zoneinfo/Antarctica/Mawson.py
deleted file mode 100644
index ea1bc6c2..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Mawson.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Antarctica/Mawson.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mawson(DstTzInfo):
- '''Antarctica/Mawson timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Mawson'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1954,2,13,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(21600,0,'MAWT'),
- ]
-
-Mawson = Mawson()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/McMurdo.py b/vendor/pytz/zoneinfo/Antarctica/McMurdo.py
deleted file mode 100644
index f7a5f472..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/McMurdo.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for Antarctica/McMurdo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class McMurdo(DstTzInfo):
- '''Antarctica/McMurdo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/McMurdo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1956,1,1,0,0,0),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
- ]
-
-McMurdo = McMurdo()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Palmer.py b/vendor/pytz/zoneinfo/Antarctica/Palmer.py
deleted file mode 100644
index 3d80c79c..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Palmer.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for Antarctica/Palmer.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Palmer(DstTzInfo):
- '''Antarctica/Palmer timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Palmer'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1965,1,1,0,0,0),
-d(1965,3,1,3,0,0),
-d(1965,10,15,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,10,15,4,0,0),
-d(1967,4,2,3,0,0),
-d(1967,10,1,4,0,0),
-d(1968,4,7,3,0,0),
-d(1968,10,6,4,0,0),
-d(1969,4,6,3,0,0),
-d(1969,10,5,4,0,0),
-d(1974,1,23,3,0,0),
-d(1974,5,1,2,0,0),
-d(1982,5,1,3,0,0),
-d(1982,10,10,4,0,0),
-d(1983,3,13,3,0,0),
-d(1983,10,9,4,0,0),
-d(1984,3,11,3,0,0),
-d(1984,10,14,4,0,0),
-d(1985,3,10,3,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,9,3,0,0),
-d(1986,10,12,4,0,0),
-d(1987,4,12,3,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,13,3,0,0),
-d(1988,10,2,4,0,0),
-d(1989,3,12,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,3,18,3,0,0),
-d(1990,9,16,4,0,0),
-d(1991,3,10,3,0,0),
-d(1991,10,13,4,0,0),
-d(1992,3,15,3,0,0),
-d(1992,10,11,4,0,0),
-d(1993,3,14,3,0,0),
-d(1993,10,10,4,0,0),
-d(1994,3,13,3,0,0),
-d(1994,10,9,4,0,0),
-d(1995,3,12,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,3,10,3,0,0),
-d(1996,10,13,4,0,0),
-d(1997,3,30,3,0,0),
-d(1997,10,12,4,0,0),
-d(1998,3,15,3,0,0),
-d(1998,9,27,4,0,0),
-d(1999,4,4,3,0,0),
-d(1999,10,10,4,0,0),
-d(2000,3,12,3,0,0),
-d(2000,10,15,4,0,0),
-d(2001,3,11,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,3,10,3,0,0),
-d(2002,10,13,4,0,0),
-d(2003,3,9,3,0,0),
-d(2003,10,12,4,0,0),
-d(2004,3,14,3,0,0),
-d(2004,10,10,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,9,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,14,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,12,4,0,0),
-d(2009,3,15,3,0,0),
-d(2009,10,11,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,10,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,9,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,14,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,13,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,12,4,0,0),
-d(2015,3,15,3,0,0),
-d(2015,10,11,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,9,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,14,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,13,4,0,0),
-d(2020,3,15,3,0,0),
-d(2020,10,11,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,10,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,9,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,13,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,12,4,0,0),
-d(2026,3,15,3,0,0),
-d(2026,10,11,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,10,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,14,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,13,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,12,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,10,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,9,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,14,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,12,4,0,0),
-d(2037,3,15,3,0,0),
-d(2037,10,11,4,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(-10800,-10800,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,3600,'ARST'),
-i(-14400,0,'ART'),
-i(-10800,0,'ART'),
-i(-7200,3600,'ARST'),
-i(-10800,0,'ART'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
- ]
-
-Palmer = Palmer()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Rothera.py b/vendor/pytz/zoneinfo/Antarctica/Rothera.py
deleted file mode 100644
index ffd20cb4..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Rothera.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Antarctica/Rothera.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rothera(DstTzInfo):
- '''Antarctica/Rothera timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Rothera'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1976,12,1,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(-10800,0,'ROTT'),
- ]
-
-Rothera = Rothera()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/South_Pole.py b/vendor/pytz/zoneinfo/Antarctica/South_Pole.py
deleted file mode 100644
index 9cbd0ff4..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/South_Pole.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for Antarctica/South_Pole.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class South_Pole(DstTzInfo):
- '''Antarctica/South_Pole timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/South_Pole'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1956,1,1,0,0,0),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
- ]
-
-South_Pole = South_Pole()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Syowa.py b/vendor/pytz/zoneinfo/Antarctica/Syowa.py
deleted file mode 100644
index 8941832d..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Syowa.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Antarctica/Syowa.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Syowa(DstTzInfo):
- '''Antarctica/Syowa timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Syowa'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1957,1,29,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(10800,0,'SYOT'),
- ]
-
-Syowa = Syowa()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/Vostok.py b/vendor/pytz/zoneinfo/Antarctica/Vostok.py
deleted file mode 100644
index 6e2e41ec..00000000
--- a/vendor/pytz/zoneinfo/Antarctica/Vostok.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Antarctica/Vostok.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vostok(DstTzInfo):
- '''Antarctica/Vostok timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Antarctica/Vostok'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1957,12,16,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(21600,0,'VOST'),
- ]
-
-Vostok = Vostok()
-
diff --git a/vendor/pytz/zoneinfo/Antarctica/__init__.py b/vendor/pytz/zoneinfo/Antarctica/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Arctic/Longyearbyen.py b/vendor/pytz/zoneinfo/Arctic/Longyearbyen.py
deleted file mode 100644
index 71577cbb..00000000
--- a/vendor/pytz/zoneinfo/Arctic/Longyearbyen.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Arctic/Longyearbyen.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Longyearbyen(DstTzInfo):
- '''Arctic/Longyearbyen timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Arctic/Longyearbyen'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,22,0,0,0),
-d(1916,9,29,22,0,0),
-d(1940,8,10,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,10,1,1,0,0),
-d(1959,3,15,1,0,0),
-d(1959,9,20,1,0,0),
-d(1960,3,20,1,0,0),
-d(1960,9,18,1,0,0),
-d(1961,3,19,1,0,0),
-d(1961,9,17,1,0,0),
-d(1962,3,18,1,0,0),
-d(1962,9,16,1,0,0),
-d(1963,3,17,1,0,0),
-d(1963,9,15,1,0,0),
-d(1964,3,15,1,0,0),
-d(1964,9,20,1,0,0),
-d(1965,4,25,1,0,0),
-d(1965,9,19,1,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Longyearbyen = Longyearbyen()
-
diff --git a/vendor/pytz/zoneinfo/Arctic/__init__.py b/vendor/pytz/zoneinfo/Arctic/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Asia/Aden.py b/vendor/pytz/zoneinfo/Asia/Aden.py
deleted file mode 100644
index 0d0ac64e..00000000
--- a/vendor/pytz/zoneinfo/Asia/Aden.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Aden.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Aden(DstTzInfo):
- '''Asia/Aden timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Aden'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1949,12,31,20,59,12),
- ]
-
- _transition_info = [
-i(10860,0,'LMT'),
-i(10800,0,'AST'),
- ]
-
-Aden = Aden()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Almaty.py b/vendor/pytz/zoneinfo/Asia/Almaty.py
deleted file mode 100644
index 9d0df827..00000000
--- a/vendor/pytz/zoneinfo/Asia/Almaty.py
+++ /dev/null
@@ -1,120 +0,0 @@
-'''tzinfo timezone information for Asia/Almaty.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Almaty(DstTzInfo):
- '''Asia/Almaty timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Almaty'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,18,52,12),
-d(1930,6,20,19,0,0),
-d(1981,3,31,18,0,0),
-d(1981,9,30,17,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,17,0,0),
-d(1983,3,31,18,0,0),
-d(1983,9,30,17,0,0),
-d(1984,3,31,18,0,0),
-d(1984,9,29,20,0,0),
-d(1985,3,30,20,0,0),
-d(1985,9,28,20,0,0),
-d(1986,3,29,20,0,0),
-d(1986,9,27,20,0,0),
-d(1987,3,28,20,0,0),
-d(1987,9,26,20,0,0),
-d(1988,3,26,20,0,0),
-d(1988,9,24,20,0,0),
-d(1989,3,25,20,0,0),
-d(1989,9,23,20,0,0),
-d(1990,3,24,20,0,0),
-d(1990,9,29,20,0,0),
-d(1990,12,31,18,0,0),
-d(1992,3,28,17,0,0),
-d(1992,9,26,16,0,0),
-d(1993,3,27,20,0,0),
-d(1993,9,25,20,0,0),
-d(1994,3,26,20,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,20,0,0),
-d(1995,9,23,20,0,0),
-d(1996,3,30,20,0,0),
-d(1996,10,26,20,0,0),
-d(1997,3,29,20,0,0),
-d(1997,10,25,20,0,0),
-d(1998,3,28,20,0,0),
-d(1998,10,24,20,0,0),
-d(1999,3,27,20,0,0),
-d(1999,10,30,20,0,0),
-d(2000,3,25,20,0,0),
-d(2000,10,28,20,0,0),
-d(2001,3,24,20,0,0),
-d(2001,10,27,20,0,0),
-d(2002,3,30,20,0,0),
-d(2002,10,26,20,0,0),
-d(2003,3,29,20,0,0),
-d(2003,10,25,20,0,0),
-d(2004,3,27,20,0,0),
-d(2004,10,30,20,0,0),
-d(2005,3,14,18,0,0),
- ]
-
- _transition_info = [
-i(18480,0,'LMT'),
-i(18000,0,'ALMT'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(25200,3600,'ALMST'),
-i(21600,0,'ALMT'),
-i(21600,0,'ALMT'),
- ]
-
-Almaty = Almaty()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Amman.py b/vendor/pytz/zoneinfo/Asia/Amman.py
deleted file mode 100644
index 4aa1b335..00000000
--- a/vendor/pytz/zoneinfo/Asia/Amman.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Asia/Amman.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Amman(DstTzInfo):
- '''Asia/Amman timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Amman'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1930,12,31,21,36,16),
-d(1973,6,5,22,0,0),
-d(1973,9,30,21,0,0),
-d(1974,4,30,22,0,0),
-d(1974,9,30,21,0,0),
-d(1975,4,30,22,0,0),
-d(1975,9,30,21,0,0),
-d(1976,4,30,22,0,0),
-d(1976,10,31,21,0,0),
-d(1977,4,30,22,0,0),
-d(1977,9,30,21,0,0),
-d(1978,4,29,22,0,0),
-d(1978,9,29,21,0,0),
-d(1985,3,31,22,0,0),
-d(1985,9,30,21,0,0),
-d(1986,4,3,22,0,0),
-d(1986,10,2,21,0,0),
-d(1987,4,2,22,0,0),
-d(1987,10,1,21,0,0),
-d(1988,3,31,22,0,0),
-d(1988,10,6,21,0,0),
-d(1989,5,7,22,0,0),
-d(1989,10,5,21,0,0),
-d(1990,4,26,22,0,0),
-d(1990,10,4,21,0,0),
-d(1991,4,16,22,0,0),
-d(1991,9,26,21,0,0),
-d(1992,4,9,22,0,0),
-d(1992,10,1,21,0,0),
-d(1993,4,1,22,0,0),
-d(1993,9,30,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,9,15,21,0,0),
-d(1995,4,6,22,0,0),
-d(1995,9,14,22,0,0),
-d(1996,4,4,22,0,0),
-d(1996,9,19,22,0,0),
-d(1997,4,3,22,0,0),
-d(1997,9,18,22,0,0),
-d(1998,4,2,22,0,0),
-d(1998,9,17,22,0,0),
-d(1999,6,30,22,0,0),
-d(1999,9,29,22,0,0),
-d(2000,3,29,22,0,0),
-d(2000,9,27,22,0,0),
-d(2001,3,28,22,0,0),
-d(2001,9,26,22,0,0),
-d(2002,3,27,22,0,0),
-d(2002,9,25,22,0,0),
-d(2003,3,26,22,0,0),
-d(2003,10,23,22,0,0),
-d(2004,3,24,22,0,0),
-d(2004,10,14,22,0,0),
-d(2005,3,30,22,0,0),
-d(2005,9,29,22,0,0),
-d(2006,3,29,22,0,0),
-d(2006,10,26,22,0,0),
-d(2007,3,28,22,0,0),
-d(2007,10,25,22,0,0),
-d(2008,3,26,22,0,0),
-d(2008,10,30,22,0,0),
-d(2009,3,25,22,0,0),
-d(2009,10,29,22,0,0),
-d(2010,3,24,22,0,0),
-d(2010,10,28,22,0,0),
-d(2011,3,30,22,0,0),
-d(2011,10,27,22,0,0),
-d(2012,3,28,22,0,0),
-d(2012,10,25,22,0,0),
-d(2013,3,27,22,0,0),
-d(2013,10,24,22,0,0),
-d(2014,3,26,22,0,0),
-d(2014,10,30,22,0,0),
-d(2015,3,25,22,0,0),
-d(2015,10,29,22,0,0),
-d(2016,3,30,22,0,0),
-d(2016,10,27,22,0,0),
-d(2017,3,29,22,0,0),
-d(2017,10,26,22,0,0),
-d(2018,3,28,22,0,0),
-d(2018,10,25,22,0,0),
-d(2019,3,27,22,0,0),
-d(2019,10,24,22,0,0),
-d(2020,3,25,22,0,0),
-d(2020,10,29,22,0,0),
-d(2021,3,24,22,0,0),
-d(2021,10,28,22,0,0),
-d(2022,3,30,22,0,0),
-d(2022,10,27,22,0,0),
-d(2023,3,29,22,0,0),
-d(2023,10,26,22,0,0),
-d(2024,3,27,22,0,0),
-d(2024,10,24,22,0,0),
-d(2025,3,26,22,0,0),
-d(2025,10,30,22,0,0),
-d(2026,3,25,22,0,0),
-d(2026,10,29,22,0,0),
-d(2027,3,24,22,0,0),
-d(2027,10,28,22,0,0),
-d(2028,3,29,22,0,0),
-d(2028,10,26,22,0,0),
-d(2029,3,28,22,0,0),
-d(2029,10,25,22,0,0),
-d(2030,3,27,22,0,0),
-d(2030,10,24,22,0,0),
-d(2031,3,26,22,0,0),
-d(2031,10,30,22,0,0),
-d(2032,3,24,22,0,0),
-d(2032,10,28,22,0,0),
-d(2033,3,30,22,0,0),
-d(2033,10,27,22,0,0),
-d(2034,3,29,22,0,0),
-d(2034,10,26,22,0,0),
-d(2035,3,28,22,0,0),
-d(2035,10,25,22,0,0),
-d(2036,3,26,22,0,0),
-d(2036,10,30,22,0,0),
-d(2037,3,25,22,0,0),
-d(2037,10,29,22,0,0),
- ]
-
- _transition_info = [
-i(8640,0,'LMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Amman = Amman()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Anadyr.py b/vendor/pytz/zoneinfo/Asia/Anadyr.py
deleted file mode 100644
index 37b50af9..00000000
--- a/vendor/pytz/zoneinfo/Asia/Anadyr.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Anadyr.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Anadyr(DstTzInfo):
- '''Asia/Anadyr timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Anadyr'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,12,10,4),
-d(1930,6,20,12,0,0),
-d(1981,3,31,11,0,0),
-d(1981,9,30,10,0,0),
-d(1982,3,31,11,0,0),
-d(1982,9,30,11,0,0),
-d(1983,3,31,12,0,0),
-d(1983,9,30,11,0,0),
-d(1984,3,31,12,0,0),
-d(1984,9,29,14,0,0),
-d(1985,3,30,14,0,0),
-d(1985,9,28,14,0,0),
-d(1986,3,29,14,0,0),
-d(1986,9,27,14,0,0),
-d(1987,3,28,14,0,0),
-d(1987,9,26,14,0,0),
-d(1988,3,26,14,0,0),
-d(1988,9,24,14,0,0),
-d(1989,3,25,14,0,0),
-d(1989,9,23,14,0,0),
-d(1990,3,24,14,0,0),
-d(1990,9,29,14,0,0),
-d(1991,3,30,14,0,0),
-d(1991,9,28,15,0,0),
-d(1992,1,18,15,0,0),
-d(1992,3,28,11,0,0),
-d(1992,9,26,10,0,0),
-d(1993,3,27,14,0,0),
-d(1993,9,25,14,0,0),
-d(1994,3,26,14,0,0),
-d(1994,9,24,14,0,0),
-d(1995,3,25,14,0,0),
-d(1995,9,23,14,0,0),
-d(1996,3,30,14,0,0),
-d(1996,10,26,14,0,0),
-d(1997,3,29,14,0,0),
-d(1997,10,25,14,0,0),
-d(1998,3,28,14,0,0),
-d(1998,10,24,14,0,0),
-d(1999,3,27,14,0,0),
-d(1999,10,30,14,0,0),
-d(2000,3,25,14,0,0),
-d(2000,10,28,14,0,0),
-d(2001,3,24,14,0,0),
-d(2001,10,27,14,0,0),
-d(2002,3,30,14,0,0),
-d(2002,10,26,14,0,0),
-d(2003,3,29,14,0,0),
-d(2003,10,25,14,0,0),
-d(2004,3,27,14,0,0),
-d(2004,10,30,14,0,0),
-d(2005,3,26,14,0,0),
-d(2005,10,29,14,0,0),
-d(2006,3,25,14,0,0),
-d(2006,10,28,14,0,0),
-d(2007,3,24,14,0,0),
-d(2007,10,27,14,0,0),
-d(2008,3,29,14,0,0),
-d(2008,10,25,14,0,0),
-d(2009,3,28,14,0,0),
-d(2009,10,24,14,0,0),
-d(2010,3,27,14,0,0),
-d(2010,10,30,14,0,0),
-d(2011,3,26,14,0,0),
-d(2011,10,29,14,0,0),
-d(2012,3,24,14,0,0),
-d(2012,10,27,14,0,0),
-d(2013,3,30,14,0,0),
-d(2013,10,26,14,0,0),
-d(2014,3,29,14,0,0),
-d(2014,10,25,14,0,0),
-d(2015,3,28,14,0,0),
-d(2015,10,24,14,0,0),
-d(2016,3,26,14,0,0),
-d(2016,10,29,14,0,0),
-d(2017,3,25,14,0,0),
-d(2017,10,28,14,0,0),
-d(2018,3,24,14,0,0),
-d(2018,10,27,14,0,0),
-d(2019,3,30,14,0,0),
-d(2019,10,26,14,0,0),
-d(2020,3,28,14,0,0),
-d(2020,10,24,14,0,0),
-d(2021,3,27,14,0,0),
-d(2021,10,30,14,0,0),
-d(2022,3,26,14,0,0),
-d(2022,10,29,14,0,0),
-d(2023,3,25,14,0,0),
-d(2023,10,28,14,0,0),
-d(2024,3,30,14,0,0),
-d(2024,10,26,14,0,0),
-d(2025,3,29,14,0,0),
-d(2025,10,25,14,0,0),
-d(2026,3,28,14,0,0),
-d(2026,10,24,14,0,0),
-d(2027,3,27,14,0,0),
-d(2027,10,30,14,0,0),
-d(2028,3,25,14,0,0),
-d(2028,10,28,14,0,0),
-d(2029,3,24,14,0,0),
-d(2029,10,27,14,0,0),
-d(2030,3,30,14,0,0),
-d(2030,10,26,14,0,0),
-d(2031,3,29,14,0,0),
-d(2031,10,25,14,0,0),
-d(2032,3,27,14,0,0),
-d(2032,10,30,14,0,0),
-d(2033,3,26,14,0,0),
-d(2033,10,29,14,0,0),
-d(2034,3,25,14,0,0),
-d(2034,10,28,14,0,0),
-d(2035,3,24,14,0,0),
-d(2035,10,27,14,0,0),
-d(2036,3,29,14,0,0),
-d(2036,10,25,14,0,0),
-d(2037,3,28,14,0,0),
-d(2037,10,24,14,0,0),
- ]
-
- _transition_info = [
-i(42600,0,'LMT'),
-i(43200,0,'ANAT'),
-i(46800,0,'ANAT'),
-i(50400,3600,'ANAST'),
-i(46800,0,'ANAT'),
-i(46800,0,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(43200,0,'ANAST'),
-i(39600,0,'ANAT'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
-i(46800,3600,'ANAST'),
-i(43200,0,'ANAT'),
- ]
-
-Anadyr = Anadyr()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Aqtau.py b/vendor/pytz/zoneinfo/Asia/Aqtau.py
deleted file mode 100644
index 319f007c..00000000
--- a/vendor/pytz/zoneinfo/Asia/Aqtau.py
+++ /dev/null
@@ -1,122 +0,0 @@
-'''tzinfo timezone information for Asia/Aqtau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Aqtau(DstTzInfo):
- '''Asia/Aqtau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Aqtau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,38,56),
-d(1930,6,20,20,0,0),
-d(1962,12,31,19,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1990,12,31,19,0,0),
-d(1991,12,15,19,0,0),
-d(1992,3,28,18,0,0),
-d(1992,9,26,17,0,0),
-d(1993,3,27,21,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,21,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,21,0,0),
-d(1995,9,23,22,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,22,0,0),
-d(1997,3,29,22,0,0),
-d(1997,10,25,22,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,24,22,0,0),
-d(1999,3,27,22,0,0),
-d(1999,10,30,22,0,0),
-d(2000,3,25,22,0,0),
-d(2000,10,28,22,0,0),
-d(2001,3,24,22,0,0),
-d(2001,10,27,22,0,0),
-d(2002,3,30,22,0,0),
-d(2002,10,26,22,0,0),
-d(2003,3,29,22,0,0),
-d(2003,10,25,22,0,0),
-d(2004,3,27,22,0,0),
-d(2004,10,30,22,0,0),
-d(2005,3,14,20,0,0),
- ]
-
- _transition_info = [
-i(12060,0,'LMT'),
-i(14400,0,'FORT'),
-i(18000,0,'FORT'),
-i(18000,0,'SHET'),
-i(21600,0,'SHET'),
-i(21600,0,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(21600,3600,'SHEST'),
-i(18000,0,'SHET'),
-i(18000,0,'SHET'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(18000,0,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,3600,'AQTST'),
-i(14400,0,'AQTT'),
-i(18000,0,'AQTT'),
- ]
-
-Aqtau = Aqtau()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Aqtobe.py b/vendor/pytz/zoneinfo/Asia/Aqtobe.py
deleted file mode 100644
index 2169a725..00000000
--- a/vendor/pytz/zoneinfo/Asia/Aqtobe.py
+++ /dev/null
@@ -1,122 +0,0 @@
-'''tzinfo timezone information for Asia/Aqtobe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Aqtobe(DstTzInfo):
- '''Asia/Aqtobe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Aqtobe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,11,20),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1990,12,31,19,0,0),
-d(1991,12,15,19,0,0),
-d(1992,3,28,18,0,0),
-d(1992,9,26,17,0,0),
-d(1993,3,27,21,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,21,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,21,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,21,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,29,21,0,0),
-d(1997,10,25,21,0,0),
-d(1998,3,28,21,0,0),
-d(1998,10,24,21,0,0),
-d(1999,3,27,21,0,0),
-d(1999,10,30,21,0,0),
-d(2000,3,25,21,0,0),
-d(2000,10,28,21,0,0),
-d(2001,3,24,21,0,0),
-d(2001,10,27,21,0,0),
-d(2002,3,30,21,0,0),
-d(2002,10,26,21,0,0),
-d(2003,3,29,21,0,0),
-d(2003,10,25,21,0,0),
-d(2004,3,27,21,0,0),
-d(2004,10,30,21,0,0),
-d(2005,3,14,19,0,0),
- ]
-
- _transition_info = [
-i(13740,0,'LMT'),
-i(14400,0,'AKTT'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(21600,0,'AKTT'),
-i(21600,0,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(21600,3600,'AKTST'),
-i(18000,0,'AKTT'),
-i(18000,0,'AKTT'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(21600,3600,'AQTST'),
-i(18000,0,'AQTT'),
-i(18000,0,'AQTT'),
- ]
-
-Aqtobe = Aqtobe()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Ashgabat.py b/vendor/pytz/zoneinfo/Asia/Ashgabat.py
deleted file mode 100644
index 92137c82..00000000
--- a/vendor/pytz/zoneinfo/Asia/Ashgabat.py
+++ /dev/null
@@ -1,72 +0,0 @@
-'''tzinfo timezone information for Asia/Ashgabat.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ashgabat(DstTzInfo):
- '''Asia/Ashgabat timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Ashgabat'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,6,28),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,19,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,21,0,0),
-d(1991,9,28,22,0,0),
-d(1991,10,26,20,0,0),
-d(1992,1,18,22,0,0),
- ]
-
- _transition_info = [
-i(14040,0,'LMT'),
-i(14400,0,'ASHT'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(18000,0,'ASHST'),
-i(14400,0,'ASHT'),
-i(14400,0,'TMT'),
-i(18000,0,'TMT'),
- ]
-
-Ashgabat = Ashgabat()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Ashkhabad.py b/vendor/pytz/zoneinfo/Asia/Ashkhabad.py
deleted file mode 100644
index a99394d9..00000000
--- a/vendor/pytz/zoneinfo/Asia/Ashkhabad.py
+++ /dev/null
@@ -1,72 +0,0 @@
-'''tzinfo timezone information for Asia/Ashkhabad.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ashkhabad(DstTzInfo):
- '''Asia/Ashkhabad timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Ashkhabad'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,6,28),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,19,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,21,0,0),
-d(1991,9,28,22,0,0),
-d(1991,10,26,20,0,0),
-d(1992,1,18,22,0,0),
- ]
-
- _transition_info = [
-i(14040,0,'LMT'),
-i(14400,0,'ASHT'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(21600,3600,'ASHST'),
-i(18000,0,'ASHT'),
-i(18000,0,'ASHST'),
-i(14400,0,'ASHT'),
-i(14400,0,'TMT'),
-i(18000,0,'TMT'),
- ]
-
-Ashkhabad = Ashkhabad()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Baghdad.py b/vendor/pytz/zoneinfo/Asia/Baghdad.py
deleted file mode 100644
index 8492cb21..00000000
--- a/vendor/pytz/zoneinfo/Asia/Baghdad.py
+++ /dev/null
@@ -1,246 +0,0 @@
-'''tzinfo timezone information for Asia/Baghdad.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Baghdad(DstTzInfo):
- '''Asia/Baghdad timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Baghdad'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,12,31,21,2,24),
-d(1982,4,30,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,30,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,30,20,0,0),
-d(1985,3,31,21,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,22,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,22,0,0),
-d(1991,4,1,0,0,0),
-d(1991,10,1,0,0,0),
-d(1992,4,1,0,0,0),
-d(1992,10,1,0,0,0),
-d(1993,4,1,0,0,0),
-d(1993,10,1,0,0,0),
-d(1994,4,1,0,0,0),
-d(1994,10,1,0,0,0),
-d(1995,4,1,0,0,0),
-d(1995,10,1,0,0,0),
-d(1996,4,1,0,0,0),
-d(1996,10,1,0,0,0),
-d(1997,4,1,0,0,0),
-d(1997,10,1,0,0,0),
-d(1998,4,1,0,0,0),
-d(1998,10,1,0,0,0),
-d(1999,4,1,0,0,0),
-d(1999,10,1,0,0,0),
-d(2000,4,1,0,0,0),
-d(2000,10,1,0,0,0),
-d(2001,4,1,0,0,0),
-d(2001,10,1,0,0,0),
-d(2002,4,1,0,0,0),
-d(2002,10,1,0,0,0),
-d(2003,4,1,0,0,0),
-d(2003,10,1,0,0,0),
-d(2004,4,1,0,0,0),
-d(2004,10,1,0,0,0),
-d(2005,4,1,0,0,0),
-d(2005,10,1,0,0,0),
-d(2006,4,1,0,0,0),
-d(2006,10,1,0,0,0),
-d(2007,4,1,0,0,0),
-d(2007,10,1,0,0,0),
-d(2008,4,1,0,0,0),
-d(2008,10,1,0,0,0),
-d(2009,4,1,0,0,0),
-d(2009,10,1,0,0,0),
-d(2010,4,1,0,0,0),
-d(2010,10,1,0,0,0),
-d(2011,4,1,0,0,0),
-d(2011,10,1,0,0,0),
-d(2012,4,1,0,0,0),
-d(2012,10,1,0,0,0),
-d(2013,4,1,0,0,0),
-d(2013,10,1,0,0,0),
-d(2014,4,1,0,0,0),
-d(2014,10,1,0,0,0),
-d(2015,4,1,0,0,0),
-d(2015,10,1,0,0,0),
-d(2016,4,1,0,0,0),
-d(2016,10,1,0,0,0),
-d(2017,4,1,0,0,0),
-d(2017,10,1,0,0,0),
-d(2018,4,1,0,0,0),
-d(2018,10,1,0,0,0),
-d(2019,4,1,0,0,0),
-d(2019,10,1,0,0,0),
-d(2020,4,1,0,0,0),
-d(2020,10,1,0,0,0),
-d(2021,4,1,0,0,0),
-d(2021,10,1,0,0,0),
-d(2022,4,1,0,0,0),
-d(2022,10,1,0,0,0),
-d(2023,4,1,0,0,0),
-d(2023,10,1,0,0,0),
-d(2024,4,1,0,0,0),
-d(2024,10,1,0,0,0),
-d(2025,4,1,0,0,0),
-d(2025,10,1,0,0,0),
-d(2026,4,1,0,0,0),
-d(2026,10,1,0,0,0),
-d(2027,4,1,0,0,0),
-d(2027,10,1,0,0,0),
-d(2028,4,1,0,0,0),
-d(2028,10,1,0,0,0),
-d(2029,4,1,0,0,0),
-d(2029,10,1,0,0,0),
-d(2030,4,1,0,0,0),
-d(2030,10,1,0,0,0),
-d(2031,4,1,0,0,0),
-d(2031,10,1,0,0,0),
-d(2032,4,1,0,0,0),
-d(2032,10,1,0,0,0),
-d(2033,4,1,0,0,0),
-d(2033,10,1,0,0,0),
-d(2034,4,1,0,0,0),
-d(2034,10,1,0,0,0),
-d(2035,4,1,0,0,0),
-d(2035,10,1,0,0,0),
-d(2036,4,1,0,0,0),
-d(2036,10,1,0,0,0),
-d(2037,4,1,0,0,0),
-d(2037,10,1,0,0,0),
- ]
-
- _transition_info = [
-i(10680,0,'BMT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
-i(14400,3600,'ADT'),
-i(10800,0,'AST'),
- ]
-
-Baghdad = Baghdad()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Bahrain.py b/vendor/pytz/zoneinfo/Asia/Bahrain.py
deleted file mode 100644
index 116d4895..00000000
--- a/vendor/pytz/zoneinfo/Asia/Bahrain.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Bahrain.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bahrain(DstTzInfo):
- '''Asia/Bahrain timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Bahrain'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,20,37,40),
-d(1972,5,31,20,0,0),
- ]
-
- _transition_info = [
-i(12120,0,'LMT'),
-i(14400,0,'GST'),
-i(10800,0,'AST'),
- ]
-
-Bahrain = Bahrain()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Baku.py b/vendor/pytz/zoneinfo/Asia/Baku.py
deleted file mode 100644
index 9efeb813..00000000
--- a/vendor/pytz/zoneinfo/Asia/Baku.py
+++ /dev/null
@@ -1,244 +0,0 @@
-'''tzinfo timezone information for Asia/Baku.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Baku(DstTzInfo):
- '''Asia/Baku timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Baku'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,40,36),
-d(1957,2,28,21,0,0),
-d(1981,3,31,20,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,20,0,0),
-d(1982,9,30,19,0,0),
-d(1983,3,31,20,0,0),
-d(1983,9,30,19,0,0),
-d(1984,3,31,20,0,0),
-d(1984,9,29,22,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,22,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,22,0,0),
-d(1991,3,30,22,0,0),
-d(1991,8,29,20,0,0),
-d(1991,9,28,23,0,0),
-d(1992,3,28,20,0,0),
-d(1992,9,26,19,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1996,12,31,20,0,0),
-d(1997,3,30,0,0,0),
-d(1997,10,26,0,0,0),
-d(1998,3,29,0,0,0),
-d(1998,10,25,0,0,0),
-d(1999,3,28,0,0,0),
-d(1999,10,31,0,0,0),
-d(2000,3,26,0,0,0),
-d(2000,10,29,0,0,0),
-d(2001,3,25,0,0,0),
-d(2001,10,28,0,0,0),
-d(2002,3,31,0,0,0),
-d(2002,10,27,0,0,0),
-d(2003,3,30,0,0,0),
-d(2003,10,26,0,0,0),
-d(2004,3,28,0,0,0),
-d(2004,10,31,0,0,0),
-d(2005,3,27,0,0,0),
-d(2005,10,30,0,0,0),
-d(2006,3,26,0,0,0),
-d(2006,10,29,0,0,0),
-d(2007,3,25,0,0,0),
-d(2007,10,28,0,0,0),
-d(2008,3,30,0,0,0),
-d(2008,10,26,0,0,0),
-d(2009,3,29,0,0,0),
-d(2009,10,25,0,0,0),
-d(2010,3,28,0,0,0),
-d(2010,10,31,0,0,0),
-d(2011,3,27,0,0,0),
-d(2011,10,30,0,0,0),
-d(2012,3,25,0,0,0),
-d(2012,10,28,0,0,0),
-d(2013,3,31,0,0,0),
-d(2013,10,27,0,0,0),
-d(2014,3,30,0,0,0),
-d(2014,10,26,0,0,0),
-d(2015,3,29,0,0,0),
-d(2015,10,25,0,0,0),
-d(2016,3,27,0,0,0),
-d(2016,10,30,0,0,0),
-d(2017,3,26,0,0,0),
-d(2017,10,29,0,0,0),
-d(2018,3,25,0,0,0),
-d(2018,10,28,0,0,0),
-d(2019,3,31,0,0,0),
-d(2019,10,27,0,0,0),
-d(2020,3,29,0,0,0),
-d(2020,10,25,0,0,0),
-d(2021,3,28,0,0,0),
-d(2021,10,31,0,0,0),
-d(2022,3,27,0,0,0),
-d(2022,10,30,0,0,0),
-d(2023,3,26,0,0,0),
-d(2023,10,29,0,0,0),
-d(2024,3,31,0,0,0),
-d(2024,10,27,0,0,0),
-d(2025,3,30,0,0,0),
-d(2025,10,26,0,0,0),
-d(2026,3,29,0,0,0),
-d(2026,10,25,0,0,0),
-d(2027,3,28,0,0,0),
-d(2027,10,31,0,0,0),
-d(2028,3,26,0,0,0),
-d(2028,10,29,0,0,0),
-d(2029,3,25,0,0,0),
-d(2029,10,28,0,0,0),
-d(2030,3,31,0,0,0),
-d(2030,10,27,0,0,0),
-d(2031,3,30,0,0,0),
-d(2031,10,26,0,0,0),
-d(2032,3,28,0,0,0),
-d(2032,10,31,0,0,0),
-d(2033,3,27,0,0,0),
-d(2033,10,30,0,0,0),
-d(2034,3,26,0,0,0),
-d(2034,10,29,0,0,0),
-d(2035,3,25,0,0,0),
-d(2035,10,28,0,0,0),
-d(2036,3,30,0,0,0),
-d(2036,10,26,0,0,0),
-d(2037,3,29,0,0,0),
-d(2037,10,25,0,0,0),
- ]
-
- _transition_info = [
-i(11940,0,'LMT'),
-i(10800,0,'BAKT'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(18000,3600,'BAKST'),
-i(14400,0,'BAKT'),
-i(14400,0,'BAKST'),
-i(14400,0,'AZST'),
-i(10800,0,'AZT'),
-i(14400,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
-i(18000,3600,'AZST'),
-i(14400,0,'AZT'),
- ]
-
-Baku = Baku()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Bangkok.py b/vendor/pytz/zoneinfo/Asia/Bangkok.py
deleted file mode 100644
index e133e804..00000000
--- a/vendor/pytz/zoneinfo/Asia/Bangkok.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Bangkok.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bangkok(DstTzInfo):
- '''Asia/Bangkok timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Bangkok'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,3,31,17,17,56),
- ]
-
- _transition_info = [
-i(24120,0,'BMT'),
-i(25200,0,'ICT'),
- ]
-
-Bangkok = Bangkok()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Beirut.py b/vendor/pytz/zoneinfo/Asia/Beirut.py
deleted file mode 100644
index 5bfad431..00000000
--- a/vendor/pytz/zoneinfo/Asia/Beirut.py
+++ /dev/null
@@ -1,300 +0,0 @@
-'''tzinfo timezone information for Asia/Beirut.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Beirut(DstTzInfo):
- '''Asia/Beirut timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Beirut'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,3,27,22,0,0),
-d(1920,10,24,21,0,0),
-d(1921,4,2,22,0,0),
-d(1921,10,2,21,0,0),
-d(1922,3,25,22,0,0),
-d(1922,10,7,21,0,0),
-d(1923,4,21,22,0,0),
-d(1923,9,15,21,0,0),
-d(1957,4,30,22,0,0),
-d(1957,9,30,21,0,0),
-d(1958,4,30,22,0,0),
-d(1958,9,30,21,0,0),
-d(1959,4,30,22,0,0),
-d(1959,9,30,21,0,0),
-d(1960,4,30,22,0,0),
-d(1960,9,30,21,0,0),
-d(1961,4,30,22,0,0),
-d(1961,9,30,21,0,0),
-d(1972,6,21,22,0,0),
-d(1972,9,30,21,0,0),
-d(1973,4,30,22,0,0),
-d(1973,9,30,21,0,0),
-d(1974,4,30,22,0,0),
-d(1974,9,30,21,0,0),
-d(1975,4,30,22,0,0),
-d(1975,9,30,21,0,0),
-d(1976,4,30,22,0,0),
-d(1976,9,30,21,0,0),
-d(1977,4,30,22,0,0),
-d(1977,9,30,21,0,0),
-d(1978,4,29,22,0,0),
-d(1978,9,29,21,0,0),
-d(1984,4,30,22,0,0),
-d(1984,10,15,21,0,0),
-d(1985,4,30,22,0,0),
-d(1985,10,15,21,0,0),
-d(1986,4,30,22,0,0),
-d(1986,10,15,21,0,0),
-d(1987,4,30,22,0,0),
-d(1987,10,15,21,0,0),
-d(1988,5,31,22,0,0),
-d(1988,10,15,21,0,0),
-d(1989,5,9,22,0,0),
-d(1989,10,15,21,0,0),
-d(1990,4,30,22,0,0),
-d(1990,10,15,21,0,0),
-d(1991,4,30,22,0,0),
-d(1991,10,15,21,0,0),
-d(1992,4,30,22,0,0),
-d(1992,10,3,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,9,28,21,0,0),
-d(1997,3,29,22,0,0),
-d(1997,9,27,21,0,0),
-d(1998,3,28,22,0,0),
-d(1998,9,26,21,0,0),
-d(1999,3,27,22,0,0),
-d(1999,10,30,21,0,0),
-d(2000,3,25,22,0,0),
-d(2000,10,28,21,0,0),
-d(2001,3,24,22,0,0),
-d(2001,10,27,21,0,0),
-d(2002,3,30,22,0,0),
-d(2002,10,26,21,0,0),
-d(2003,3,29,22,0,0),
-d(2003,10,25,21,0,0),
-d(2004,3,27,22,0,0),
-d(2004,10,30,21,0,0),
-d(2005,3,26,22,0,0),
-d(2005,10,29,21,0,0),
-d(2006,3,25,22,0,0),
-d(2006,10,28,21,0,0),
-d(2007,3,24,22,0,0),
-d(2007,10,27,21,0,0),
-d(2008,3,29,22,0,0),
-d(2008,10,25,21,0,0),
-d(2009,3,28,22,0,0),
-d(2009,10,24,21,0,0),
-d(2010,3,27,22,0,0),
-d(2010,10,30,21,0,0),
-d(2011,3,26,22,0,0),
-d(2011,10,29,21,0,0),
-d(2012,3,24,22,0,0),
-d(2012,10,27,21,0,0),
-d(2013,3,30,22,0,0),
-d(2013,10,26,21,0,0),
-d(2014,3,29,22,0,0),
-d(2014,10,25,21,0,0),
-d(2015,3,28,22,0,0),
-d(2015,10,24,21,0,0),
-d(2016,3,26,22,0,0),
-d(2016,10,29,21,0,0),
-d(2017,3,25,22,0,0),
-d(2017,10,28,21,0,0),
-d(2018,3,24,22,0,0),
-d(2018,10,27,21,0,0),
-d(2019,3,30,22,0,0),
-d(2019,10,26,21,0,0),
-d(2020,3,28,22,0,0),
-d(2020,10,24,21,0,0),
-d(2021,3,27,22,0,0),
-d(2021,10,30,21,0,0),
-d(2022,3,26,22,0,0),
-d(2022,10,29,21,0,0),
-d(2023,3,25,22,0,0),
-d(2023,10,28,21,0,0),
-d(2024,3,30,22,0,0),
-d(2024,10,26,21,0,0),
-d(2025,3,29,22,0,0),
-d(2025,10,25,21,0,0),
-d(2026,3,28,22,0,0),
-d(2026,10,24,21,0,0),
-d(2027,3,27,22,0,0),
-d(2027,10,30,21,0,0),
-d(2028,3,25,22,0,0),
-d(2028,10,28,21,0,0),
-d(2029,3,24,22,0,0),
-d(2029,10,27,21,0,0),
-d(2030,3,30,22,0,0),
-d(2030,10,26,21,0,0),
-d(2031,3,29,22,0,0),
-d(2031,10,25,21,0,0),
-d(2032,3,27,22,0,0),
-d(2032,10,30,21,0,0),
-d(2033,3,26,22,0,0),
-d(2033,10,29,21,0,0),
-d(2034,3,25,22,0,0),
-d(2034,10,28,21,0,0),
-d(2035,3,24,22,0,0),
-d(2035,10,27,21,0,0),
-d(2036,3,29,22,0,0),
-d(2036,10,25,21,0,0),
-d(2037,3,28,22,0,0),
-d(2037,10,24,21,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Beirut = Beirut()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Bishkek.py b/vendor/pytz/zoneinfo/Asia/Bishkek.py
deleted file mode 100644
index e5eb11b4..00000000
--- a/vendor/pytz/zoneinfo/Asia/Bishkek.py
+++ /dev/null
@@ -1,124 +0,0 @@
-'''tzinfo timezone information for Asia/Bishkek.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bishkek(DstTzInfo):
- '''Asia/Bishkek timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Bishkek'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,19,1,36),
-d(1930,6,20,19,0,0),
-d(1981,3,31,18,0,0),
-d(1981,9,30,17,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,17,0,0),
-d(1983,3,31,18,0,0),
-d(1983,9,30,17,0,0),
-d(1984,3,31,18,0,0),
-d(1984,9,29,20,0,0),
-d(1985,3,30,20,0,0),
-d(1985,9,28,20,0,0),
-d(1986,3,29,20,0,0),
-d(1986,9,27,20,0,0),
-d(1987,3,28,20,0,0),
-d(1987,9,26,20,0,0),
-d(1988,3,26,20,0,0),
-d(1988,9,24,20,0,0),
-d(1989,3,25,20,0,0),
-d(1989,9,23,20,0,0),
-d(1990,3,24,20,0,0),
-d(1990,9,29,20,0,0),
-d(1991,3,30,20,0,0),
-d(1991,8,30,20,0,0),
-d(1992,4,11,19,0,0),
-d(1992,9,26,18,0,0),
-d(1993,4,10,19,0,0),
-d(1993,9,25,18,0,0),
-d(1994,4,9,19,0,0),
-d(1994,9,24,18,0,0),
-d(1995,4,8,19,0,0),
-d(1995,9,23,18,0,0),
-d(1996,4,6,19,0,0),
-d(1996,9,28,18,0,0),
-d(1997,3,29,21,30,0),
-d(1997,10,25,20,30,0),
-d(1998,3,28,21,30,0),
-d(1998,10,24,20,30,0),
-d(1999,3,27,21,30,0),
-d(1999,10,30,20,30,0),
-d(2000,3,25,21,30,0),
-d(2000,10,28,20,30,0),
-d(2001,3,24,21,30,0),
-d(2001,10,27,20,30,0),
-d(2002,3,30,21,30,0),
-d(2002,10,26,20,30,0),
-d(2003,3,29,21,30,0),
-d(2003,10,25,20,30,0),
-d(2004,3,27,21,30,0),
-d(2004,10,30,20,30,0),
-d(2005,3,26,21,30,0),
-d(2005,8,11,18,0,0),
- ]
-
- _transition_info = [
-i(17880,0,'LMT'),
-i(18000,0,'FRUT'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(25200,3600,'FRUST'),
-i(21600,0,'FRUT'),
-i(21600,0,'FRUST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(18000,0,'KGT'),
-i(21600,3600,'KGST'),
-i(21600,0,'KGT'),
- ]
-
-Bishkek = Bishkek()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Brunei.py b/vendor/pytz/zoneinfo/Asia/Brunei.py
deleted file mode 100644
index fbbc5a0d..00000000
--- a/vendor/pytz/zoneinfo/Asia/Brunei.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Brunei.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Brunei(DstTzInfo):
- '''Asia/Brunei timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Brunei'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1926,2,28,16,20,20),
-d(1932,12,31,16,30,0),
- ]
-
- _transition_info = [
-i(27600,0,'LMT'),
-i(27000,0,'BNT'),
-i(28800,0,'BNT'),
- ]
-
-Brunei = Brunei()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Calcutta.py b/vendor/pytz/zoneinfo/Asia/Calcutta.py
deleted file mode 100644
index 08e3f934..00000000
--- a/vendor/pytz/zoneinfo/Asia/Calcutta.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Calcutta.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Calcutta(DstTzInfo):
- '''Asia/Calcutta timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Calcutta'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,9,30,18,6,40),
-d(1942,5,14,17,30,0),
-d(1942,8,31,18,30,0),
-d(1945,10,14,17,30,0),
- ]
-
- _transition_info = [
-i(21180,0,'HMT'),
-i(23400,0,'BURT'),
-i(19800,0,'IST'),
-i(23400,3600,'IST'),
-i(19800,0,'IST'),
- ]
-
-Calcutta = Calcutta()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Choibalsan.py b/vendor/pytz/zoneinfo/Asia/Choibalsan.py
deleted file mode 100644
index 406dc4a3..00000000
--- a/vendor/pytz/zoneinfo/Asia/Choibalsan.py
+++ /dev/null
@@ -1,236 +0,0 @@
-'''tzinfo timezone information for Asia/Choibalsan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Choibalsan(DstTzInfo):
- '''Asia/Choibalsan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Choibalsan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,7,31,16,22,0),
-d(1977,12,31,17,0,0),
-d(1983,3,31,16,0,0),
-d(1983,9,30,14,0,0),
-d(1984,3,31,15,0,0),
-d(1984,9,29,14,0,0),
-d(1985,3,30,15,0,0),
-d(1985,9,28,14,0,0),
-d(1986,3,29,15,0,0),
-d(1986,9,27,14,0,0),
-d(1987,3,28,15,0,0),
-d(1987,9,26,14,0,0),
-d(1988,3,26,15,0,0),
-d(1988,9,24,14,0,0),
-d(1989,3,25,15,0,0),
-d(1989,9,23,14,0,0),
-d(1990,3,24,15,0,0),
-d(1990,9,29,14,0,0),
-d(1991,3,30,15,0,0),
-d(1991,9,28,14,0,0),
-d(1992,3,28,15,0,0),
-d(1992,9,26,14,0,0),
-d(1993,3,27,15,0,0),
-d(1993,9,25,14,0,0),
-d(1994,3,26,15,0,0),
-d(1994,9,24,14,0,0),
-d(1995,3,25,15,0,0),
-d(1995,9,23,14,0,0),
-d(1996,3,30,15,0,0),
-d(1996,9,28,14,0,0),
-d(1997,3,29,15,0,0),
-d(1997,9,27,14,0,0),
-d(1998,3,28,15,0,0),
-d(1998,9,26,14,0,0),
-d(2001,4,27,17,0,0),
-d(2001,9,28,16,0,0),
-d(2002,3,29,17,0,0),
-d(2002,9,27,16,0,0),
-d(2003,3,28,17,0,0),
-d(2003,9,26,16,0,0),
-d(2004,3,26,17,0,0),
-d(2004,9,24,16,0,0),
-d(2005,3,25,17,0,0),
-d(2005,9,23,16,0,0),
-d(2006,3,24,17,0,0),
-d(2006,9,29,16,0,0),
-d(2007,3,30,17,0,0),
-d(2007,9,28,16,0,0),
-d(2008,3,28,17,0,0),
-d(2008,9,26,16,0,0),
-d(2009,3,27,17,0,0),
-d(2009,9,25,16,0,0),
-d(2010,3,26,17,0,0),
-d(2010,9,24,16,0,0),
-d(2011,3,25,17,0,0),
-d(2011,9,23,16,0,0),
-d(2012,3,30,17,0,0),
-d(2012,9,28,16,0,0),
-d(2013,3,29,17,0,0),
-d(2013,9,27,16,0,0),
-d(2014,3,28,17,0,0),
-d(2014,9,26,16,0,0),
-d(2015,3,27,17,0,0),
-d(2015,9,25,16,0,0),
-d(2016,3,25,17,0,0),
-d(2016,9,23,16,0,0),
-d(2017,3,24,17,0,0),
-d(2017,9,29,16,0,0),
-d(2018,3,30,17,0,0),
-d(2018,9,28,16,0,0),
-d(2019,3,29,17,0,0),
-d(2019,9,27,16,0,0),
-d(2020,3,27,17,0,0),
-d(2020,9,25,16,0,0),
-d(2021,3,26,17,0,0),
-d(2021,9,24,16,0,0),
-d(2022,3,25,17,0,0),
-d(2022,9,23,16,0,0),
-d(2023,3,24,17,0,0),
-d(2023,9,29,16,0,0),
-d(2024,3,29,17,0,0),
-d(2024,9,27,16,0,0),
-d(2025,3,28,17,0,0),
-d(2025,9,26,16,0,0),
-d(2026,3,27,17,0,0),
-d(2026,9,25,16,0,0),
-d(2027,3,26,17,0,0),
-d(2027,9,24,16,0,0),
-d(2028,3,24,17,0,0),
-d(2028,9,29,16,0,0),
-d(2029,3,30,17,0,0),
-d(2029,9,28,16,0,0),
-d(2030,3,29,17,0,0),
-d(2030,9,27,16,0,0),
-d(2031,3,28,17,0,0),
-d(2031,9,26,16,0,0),
-d(2032,3,26,17,0,0),
-d(2032,9,24,16,0,0),
-d(2033,3,25,17,0,0),
-d(2033,9,23,16,0,0),
-d(2034,3,24,17,0,0),
-d(2034,9,29,16,0,0),
-d(2035,3,30,17,0,0),
-d(2035,9,28,16,0,0),
-d(2036,3,28,17,0,0),
-d(2036,9,26,16,0,0),
-d(2037,3,27,17,0,0),
-d(2037,9,25,16,0,0),
- ]
-
- _transition_info = [
-i(27480,0,'LMT'),
-i(25200,0,'ULAT'),
-i(28800,0,'ULAT'),
-i(36000,7200,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
-i(36000,3600,'CHOST'),
-i(32400,0,'CHOT'),
- ]
-
-Choibalsan = Choibalsan()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Chongqing.py b/vendor/pytz/zoneinfo/Asia/Chongqing.py
deleted file mode 100644
index 40f8f629..00000000
--- a/vendor/pytz/zoneinfo/Asia/Chongqing.py
+++ /dev/null
@@ -1,48 +0,0 @@
-'''tzinfo timezone information for Asia/Chongqing.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chongqing(DstTzInfo):
- '''Asia/Chongqing timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Chongqing'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,16,53,40),
-d(1980,4,30,17,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(25560,0,'LMT'),
-i(25200,0,'LONT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Chongqing = Chongqing()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Chungking.py b/vendor/pytz/zoneinfo/Asia/Chungking.py
deleted file mode 100644
index 7f118aba..00000000
--- a/vendor/pytz/zoneinfo/Asia/Chungking.py
+++ /dev/null
@@ -1,48 +0,0 @@
-'''tzinfo timezone information for Asia/Chungking.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chungking(DstTzInfo):
- '''Asia/Chungking timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Chungking'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,16,53,40),
-d(1980,4,30,17,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(25560,0,'LMT'),
-i(25200,0,'LONT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Chungking = Chungking()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Colombo.py b/vendor/pytz/zoneinfo/Asia/Colombo.py
deleted file mode 100644
index 2ac7c70a..00000000
--- a/vendor/pytz/zoneinfo/Asia/Colombo.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Asia/Colombo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Colombo(DstTzInfo):
- '''Asia/Colombo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Colombo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,12,31,18,40,28),
-d(1942,1,4,18,30,0),
-d(1942,8,31,18,0,0),
-d(1945,10,15,19,30,0),
-d(1996,5,24,18,30,0),
-d(1996,10,25,18,0,0),
-d(2006,4,14,18,30,0),
- ]
-
- _transition_info = [
-i(19200,0,'MMT'),
-i(19800,0,'IST'),
-i(21600,1800,'IHST'),
-i(23400,3600,'IST'),
-i(19800,0,'IST'),
-i(23400,0,'LKT'),
-i(21600,0,'LKT'),
-i(19800,0,'IST'),
- ]
-
-Colombo = Colombo()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Dacca.py b/vendor/pytz/zoneinfo/Asia/Dacca.py
deleted file mode 100644
index 3093a3a4..00000000
--- a/vendor/pytz/zoneinfo/Asia/Dacca.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Asia/Dacca.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dacca(DstTzInfo):
- '''Asia/Dacca timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Dacca'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,9,30,18,6,40),
-d(1942,5,14,17,30,0),
-d(1942,8,31,18,30,0),
-d(1951,9,29,17,30,0),
-d(1971,3,25,18,0,0),
- ]
-
- _transition_info = [
-i(21180,0,'HMT'),
-i(23400,0,'BURT'),
-i(19800,0,'IST'),
-i(23400,0,'BURT'),
-i(21600,0,'DACT'),
-i(21600,0,'BDT'),
- ]
-
-Dacca = Dacca()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Damascus.py b/vendor/pytz/zoneinfo/Asia/Damascus.py
deleted file mode 100644
index 98164e03..00000000
--- a/vendor/pytz/zoneinfo/Asia/Damascus.py
+++ /dev/null
@@ -1,322 +0,0 @@
-'''tzinfo timezone information for Asia/Damascus.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Damascus(DstTzInfo):
- '''Asia/Damascus timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Damascus'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,21,34,48),
-d(1920,4,18,0,0,0),
-d(1920,10,2,23,0,0),
-d(1921,4,17,0,0,0),
-d(1921,10,1,23,0,0),
-d(1922,4,16,0,0,0),
-d(1922,9,30,23,0,0),
-d(1923,4,15,0,0,0),
-d(1923,10,6,23,0,0),
-d(1962,4,29,0,0,0),
-d(1962,9,30,23,0,0),
-d(1963,5,1,0,0,0),
-d(1963,9,29,23,0,0),
-d(1964,5,1,0,0,0),
-d(1964,9,30,23,0,0),
-d(1965,5,1,0,0,0),
-d(1965,9,29,23,0,0),
-d(1966,4,24,0,0,0),
-d(1966,9,30,23,0,0),
-d(1967,5,1,0,0,0),
-d(1967,9,30,23,0,0),
-d(1968,5,1,0,0,0),
-d(1968,9,30,23,0,0),
-d(1969,5,1,0,0,0),
-d(1969,9,30,23,0,0),
-d(1970,5,1,0,0,0),
-d(1970,9,30,23,0,0),
-d(1971,5,1,0,0,0),
-d(1971,9,30,23,0,0),
-d(1972,5,1,0,0,0),
-d(1972,9,30,23,0,0),
-d(1973,5,1,0,0,0),
-d(1973,9,30,23,0,0),
-d(1974,5,1,0,0,0),
-d(1974,9,30,23,0,0),
-d(1975,5,1,0,0,0),
-d(1975,9,30,23,0,0),
-d(1976,5,1,0,0,0),
-d(1976,9,30,23,0,0),
-d(1977,5,1,0,0,0),
-d(1977,8,31,23,0,0),
-d(1978,5,1,0,0,0),
-d(1978,8,31,23,0,0),
-d(1983,4,9,0,0,0),
-d(1983,9,30,23,0,0),
-d(1984,4,9,0,0,0),
-d(1984,9,30,23,0,0),
-d(1986,2,16,0,0,0),
-d(1986,10,8,23,0,0),
-d(1987,3,1,0,0,0),
-d(1987,10,30,23,0,0),
-d(1988,3,15,0,0,0),
-d(1988,10,30,23,0,0),
-d(1989,3,31,0,0,0),
-d(1989,9,30,23,0,0),
-d(1990,4,1,0,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,31,22,0,0),
-d(1991,9,30,21,0,0),
-d(1992,4,7,22,0,0),
-d(1992,9,30,21,0,0),
-d(1993,3,25,22,0,0),
-d(1993,9,24,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,9,30,21,0,0),
-d(1995,3,31,22,0,0),
-d(1995,9,30,21,0,0),
-d(1996,3,31,22,0,0),
-d(1996,9,30,21,0,0),
-d(1997,3,30,22,0,0),
-d(1997,9,30,21,0,0),
-d(1998,3,29,22,0,0),
-d(1998,9,30,21,0,0),
-d(1999,3,31,22,0,0),
-d(1999,9,30,21,0,0),
-d(2000,3,31,22,0,0),
-d(2000,9,30,21,0,0),
-d(2001,3,31,22,0,0),
-d(2001,9,30,21,0,0),
-d(2002,3,31,22,0,0),
-d(2002,9,30,21,0,0),
-d(2003,3,31,22,0,0),
-d(2003,9,30,21,0,0),
-d(2004,3,31,22,0,0),
-d(2004,9,30,21,0,0),
-d(2005,3,31,22,0,0),
-d(2005,9,30,21,0,0),
-d(2006,3,31,22,0,0),
-d(2006,9,21,21,0,0),
-d(2007,3,31,22,0,0),
-d(2007,9,30,21,0,0),
-d(2008,3,31,22,0,0),
-d(2008,9,30,21,0,0),
-d(2009,3,31,22,0,0),
-d(2009,9,30,21,0,0),
-d(2010,3,31,22,0,0),
-d(2010,9,30,21,0,0),
-d(2011,3,31,22,0,0),
-d(2011,9,30,21,0,0),
-d(2012,3,31,22,0,0),
-d(2012,9,30,21,0,0),
-d(2013,3,31,22,0,0),
-d(2013,9,30,21,0,0),
-d(2014,3,31,22,0,0),
-d(2014,9,30,21,0,0),
-d(2015,3,31,22,0,0),
-d(2015,9,30,21,0,0),
-d(2016,3,31,22,0,0),
-d(2016,9,30,21,0,0),
-d(2017,3,31,22,0,0),
-d(2017,9,30,21,0,0),
-d(2018,3,31,22,0,0),
-d(2018,9,30,21,0,0),
-d(2019,3,31,22,0,0),
-d(2019,9,30,21,0,0),
-d(2020,3,31,22,0,0),
-d(2020,9,30,21,0,0),
-d(2021,3,31,22,0,0),
-d(2021,9,30,21,0,0),
-d(2022,3,31,22,0,0),
-d(2022,9,30,21,0,0),
-d(2023,3,31,22,0,0),
-d(2023,9,30,21,0,0),
-d(2024,3,31,22,0,0),
-d(2024,9,30,21,0,0),
-d(2025,3,31,22,0,0),
-d(2025,9,30,21,0,0),
-d(2026,3,31,22,0,0),
-d(2026,9,30,21,0,0),
-d(2027,3,31,22,0,0),
-d(2027,9,30,21,0,0),
-d(2028,3,31,22,0,0),
-d(2028,9,30,21,0,0),
-d(2029,3,31,22,0,0),
-d(2029,9,30,21,0,0),
-d(2030,3,31,22,0,0),
-d(2030,9,30,21,0,0),
-d(2031,3,31,22,0,0),
-d(2031,9,30,21,0,0),
-d(2032,3,31,22,0,0),
-d(2032,9,30,21,0,0),
-d(2033,3,31,22,0,0),
-d(2033,9,30,21,0,0),
-d(2034,3,31,22,0,0),
-d(2034,9,30,21,0,0),
-d(2035,3,31,22,0,0),
-d(2035,9,30,21,0,0),
-d(2036,3,31,22,0,0),
-d(2036,9,30,21,0,0),
-d(2037,3,31,22,0,0),
-d(2037,9,30,21,0,0),
- ]
-
- _transition_info = [
-i(8700,0,'LMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Damascus = Damascus()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Dhaka.py b/vendor/pytz/zoneinfo/Asia/Dhaka.py
deleted file mode 100644
index 7ccd4d55..00000000
--- a/vendor/pytz/zoneinfo/Asia/Dhaka.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Asia/Dhaka.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dhaka(DstTzInfo):
- '''Asia/Dhaka timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Dhaka'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,9,30,18,6,40),
-d(1942,5,14,17,30,0),
-d(1942,8,31,18,30,0),
-d(1951,9,29,17,30,0),
-d(1971,3,25,18,0,0),
- ]
-
- _transition_info = [
-i(21180,0,'HMT'),
-i(23400,0,'BURT'),
-i(19800,0,'IST'),
-i(23400,0,'BURT'),
-i(21600,0,'DACT'),
-i(21600,0,'BDT'),
- ]
-
-Dhaka = Dhaka()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Dili.py b/vendor/pytz/zoneinfo/Asia/Dili.py
deleted file mode 100644
index 75b8df61..00000000
--- a/vendor/pytz/zoneinfo/Asia/Dili.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Asia/Dili.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dili(DstTzInfo):
- '''Asia/Dili timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Dili'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,15,37,40),
-d(1942,2,21,15,0,0),
-d(1945,7,31,15,0,0),
-d(1976,5,2,15,0,0),
-d(2000,9,16,16,0,0),
- ]
-
- _transition_info = [
-i(30120,0,'LMT'),
-i(28800,0,'TLT'),
-i(32400,0,'JST'),
-i(32400,0,'TLT'),
-i(28800,0,'CIT'),
-i(32400,0,'TLT'),
- ]
-
-Dili = Dili()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Dubai.py b/vendor/pytz/zoneinfo/Asia/Dubai.py
deleted file mode 100644
index 7bb7471c..00000000
--- a/vendor/pytz/zoneinfo/Asia/Dubai.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Dubai.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dubai(DstTzInfo):
- '''Asia/Dubai timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Dubai'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,20,18,48),
- ]
-
- _transition_info = [
-i(13260,0,'LMT'),
-i(14400,0,'GST'),
- ]
-
-Dubai = Dubai()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Dushanbe.py b/vendor/pytz/zoneinfo/Asia/Dushanbe.py
deleted file mode 100644
index 4c2eb7c8..00000000
--- a/vendor/pytz/zoneinfo/Asia/Dushanbe.py
+++ /dev/null
@@ -1,68 +0,0 @@
-'''tzinfo timezone information for Asia/Dushanbe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dushanbe(DstTzInfo):
- '''Asia/Dushanbe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Dushanbe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,19,24,48),
-d(1930,6,20,19,0,0),
-d(1981,3,31,18,0,0),
-d(1981,9,30,17,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,17,0,0),
-d(1983,3,31,18,0,0),
-d(1983,9,30,17,0,0),
-d(1984,3,31,18,0,0),
-d(1984,9,29,20,0,0),
-d(1985,3,30,20,0,0),
-d(1985,9,28,20,0,0),
-d(1986,3,29,20,0,0),
-d(1986,9,27,20,0,0),
-d(1987,3,28,20,0,0),
-d(1987,9,26,20,0,0),
-d(1988,3,26,20,0,0),
-d(1988,9,24,20,0,0),
-d(1989,3,25,20,0,0),
-d(1989,9,23,20,0,0),
-d(1990,3,24,20,0,0),
-d(1990,9,29,20,0,0),
-d(1991,3,30,20,0,0),
-d(1991,9,8,21,0,0),
- ]
-
- _transition_info = [
-i(16500,0,'LMT'),
-i(18000,0,'DUST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(25200,3600,'DUSST'),
-i(21600,0,'DUST'),
-i(21600,0,'DUSST'),
-i(18000,0,'TJT'),
- ]
-
-Dushanbe = Dushanbe()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Gaza.py b/vendor/pytz/zoneinfo/Asia/Gaza.py
deleted file mode 100644
index 4069e226..00000000
--- a/vendor/pytz/zoneinfo/Asia/Gaza.py
+++ /dev/null
@@ -1,308 +0,0 @@
-'''tzinfo timezone information for Asia/Gaza.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Gaza(DstTzInfo):
- '''Asia/Gaza timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Gaza'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,5,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1943,4,1,0,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,23,0,0),
-d(1946,4,16,0,0,0),
-d(1946,10,31,21,0,0),
-d(1957,5,9,22,0,0),
-d(1957,9,30,21,0,0),
-d(1958,4,30,22,0,0),
-d(1958,9,30,21,0,0),
-d(1959,4,30,23,0,0),
-d(1959,9,30,0,0,0),
-d(1960,4,30,23,0,0),
-d(1960,9,30,0,0,0),
-d(1961,4,30,23,0,0),
-d(1961,9,30,0,0,0),
-d(1962,4,30,23,0,0),
-d(1962,9,30,0,0,0),
-d(1963,4,30,23,0,0),
-d(1963,9,30,0,0,0),
-d(1964,4,30,23,0,0),
-d(1964,9,30,0,0,0),
-d(1965,4,30,23,0,0),
-d(1965,9,30,0,0,0),
-d(1966,4,30,23,0,0),
-d(1966,10,1,0,0,0),
-d(1967,4,30,23,0,0),
-d(1967,6,4,21,0,0),
-d(1974,7,6,22,0,0),
-d(1974,10,12,21,0,0),
-d(1975,4,19,22,0,0),
-d(1975,8,30,21,0,0),
-d(1985,4,13,22,0,0),
-d(1985,9,14,21,0,0),
-d(1986,5,17,22,0,0),
-d(1986,9,6,21,0,0),
-d(1987,4,14,22,0,0),
-d(1987,9,12,21,0,0),
-d(1988,4,8,22,0,0),
-d(1988,9,2,21,0,0),
-d(1989,4,29,22,0,0),
-d(1989,9,2,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,8,25,21,0,0),
-d(1991,3,23,22,0,0),
-d(1991,8,31,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,5,21,0,0),
-d(1993,4,1,22,0,0),
-d(1993,9,4,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,8,27,21,0,0),
-d(1995,3,30,22,0,0),
-d(1995,9,2,21,0,0),
-d(1995,12,31,22,0,0),
-d(1996,4,4,22,0,0),
-d(1996,9,19,22,0,0),
-d(1997,4,3,22,0,0),
-d(1997,9,18,22,0,0),
-d(1998,4,2,22,0,0),
-d(1998,9,17,22,0,0),
-d(1998,12,31,22,0,0),
-d(1999,4,15,22,0,0),
-d(1999,10,14,21,0,0),
-d(2000,4,20,22,0,0),
-d(2000,10,19,21,0,0),
-d(2001,4,19,22,0,0),
-d(2001,10,18,21,0,0),
-d(2002,4,18,22,0,0),
-d(2002,10,17,21,0,0),
-d(2003,4,17,22,0,0),
-d(2003,10,16,21,0,0),
-d(2004,4,15,22,0,0),
-d(2004,9,30,22,0,0),
-d(2005,4,14,22,0,0),
-d(2005,10,3,23,0,0),
-d(2006,3,31,22,0,0),
-d(2006,9,21,21,0,0),
-d(2007,3,31,22,0,0),
-d(2007,10,18,21,0,0),
-d(2008,3,31,22,0,0),
-d(2008,10,16,21,0,0),
-d(2009,3,31,22,0,0),
-d(2009,10,15,21,0,0),
-d(2010,3,31,22,0,0),
-d(2010,10,14,21,0,0),
-d(2011,3,31,22,0,0),
-d(2011,10,20,21,0,0),
-d(2012,3,31,22,0,0),
-d(2012,10,18,21,0,0),
-d(2013,3,31,22,0,0),
-d(2013,10,17,21,0,0),
-d(2014,3,31,22,0,0),
-d(2014,10,16,21,0,0),
-d(2015,3,31,22,0,0),
-d(2015,10,15,21,0,0),
-d(2016,3,31,22,0,0),
-d(2016,10,20,21,0,0),
-d(2017,3,31,22,0,0),
-d(2017,10,19,21,0,0),
-d(2018,3,31,22,0,0),
-d(2018,10,18,21,0,0),
-d(2019,3,31,22,0,0),
-d(2019,10,17,21,0,0),
-d(2020,3,31,22,0,0),
-d(2020,10,15,21,0,0),
-d(2021,3,31,22,0,0),
-d(2021,10,14,21,0,0),
-d(2022,3,31,22,0,0),
-d(2022,10,20,21,0,0),
-d(2023,3,31,22,0,0),
-d(2023,10,19,21,0,0),
-d(2024,3,31,22,0,0),
-d(2024,10,17,21,0,0),
-d(2025,3,31,22,0,0),
-d(2025,10,16,21,0,0),
-d(2026,3,31,22,0,0),
-d(2026,10,15,21,0,0),
-d(2027,3,31,22,0,0),
-d(2027,10,14,21,0,0),
-d(2028,3,31,22,0,0),
-d(2028,10,19,21,0,0),
-d(2029,3,31,22,0,0),
-d(2029,10,18,21,0,0),
-d(2030,3,31,22,0,0),
-d(2030,10,17,21,0,0),
-d(2031,3,31,22,0,0),
-d(2031,10,16,21,0,0),
-d(2032,3,31,22,0,0),
-d(2032,10,14,21,0,0),
-d(2033,3,31,22,0,0),
-d(2033,10,20,21,0,0),
-d(2034,3,31,22,0,0),
-d(2034,10,19,21,0,0),
-d(2035,3,31,22,0,0),
-d(2035,10,18,21,0,0),
-d(2036,3,31,22,0,0),
-d(2036,10,16,21,0,0),
-d(2037,3,31,22,0,0),
-d(2037,10,15,21,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(10800,3600,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Gaza = Gaza()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Harbin.py b/vendor/pytz/zoneinfo/Asia/Harbin.py
deleted file mode 100644
index 86941384..00000000
--- a/vendor/pytz/zoneinfo/Asia/Harbin.py
+++ /dev/null
@@ -1,54 +0,0 @@
-'''tzinfo timezone information for Asia/Harbin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Harbin(DstTzInfo):
- '''Asia/Harbin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Harbin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,15,33,16),
-d(1932,2,29,15,30,0),
-d(1939,12,31,16,0,0),
-d(1966,4,30,15,0,0),
-d(1980,4,30,15,30,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(30420,0,'LMT'),
-i(30600,0,'CHAT'),
-i(28800,0,'CST'),
-i(32400,0,'CHAT'),
-i(30600,0,'CHAT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Harbin = Harbin()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Hong_Kong.py b/vendor/pytz/zoneinfo/Asia/Hong_Kong.py
deleted file mode 100644
index a17dfbef..00000000
--- a/vendor/pytz/zoneinfo/Asia/Hong_Kong.py
+++ /dev/null
@@ -1,158 +0,0 @@
-'''tzinfo timezone information for Asia/Hong_Kong.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hong_Kong(DstTzInfo):
- '''Asia/Hong_Kong timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Hong_Kong'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,10,29,16,23,24),
-d(1946,4,19,19,30,0),
-d(1946,11,30,18,30,0),
-d(1947,4,12,19,30,0),
-d(1947,12,29,18,30,0),
-d(1948,5,1,19,30,0),
-d(1948,10,30,18,30,0),
-d(1949,4,2,19,30,0),
-d(1949,10,29,18,30,0),
-d(1950,4,1,19,30,0),
-d(1950,10,28,18,30,0),
-d(1951,3,31,19,30,0),
-d(1951,10,27,18,30,0),
-d(1952,4,5,19,30,0),
-d(1952,10,25,18,30,0),
-d(1953,4,4,19,30,0),
-d(1953,10,31,18,30,0),
-d(1954,3,20,19,30,0),
-d(1954,10,30,18,30,0),
-d(1955,3,19,19,30,0),
-d(1955,11,5,18,30,0),
-d(1956,3,17,19,30,0),
-d(1956,11,3,18,30,0),
-d(1957,3,23,19,30,0),
-d(1957,11,2,18,30,0),
-d(1958,3,22,19,30,0),
-d(1958,11,1,18,30,0),
-d(1959,3,21,19,30,0),
-d(1959,10,31,18,30,0),
-d(1960,3,19,19,30,0),
-d(1960,11,5,18,30,0),
-d(1961,3,18,19,30,0),
-d(1961,11,4,18,30,0),
-d(1962,3,17,19,30,0),
-d(1962,11,3,18,30,0),
-d(1963,3,23,19,30,0),
-d(1963,11,2,18,30,0),
-d(1964,3,21,19,30,0),
-d(1964,10,31,18,30,0),
-d(1965,4,17,19,30,0),
-d(1965,10,16,18,30,0),
-d(1966,4,16,19,30,0),
-d(1966,10,15,18,30,0),
-d(1967,4,15,19,30,0),
-d(1967,10,21,18,30,0),
-d(1968,4,20,19,30,0),
-d(1968,10,19,18,30,0),
-d(1969,4,19,19,30,0),
-d(1969,10,18,18,30,0),
-d(1970,4,18,19,30,0),
-d(1970,10,17,18,30,0),
-d(1971,4,17,19,30,0),
-d(1971,10,16,18,30,0),
-d(1972,4,15,19,30,0),
-d(1972,10,21,18,30,0),
-d(1973,4,21,19,30,0),
-d(1973,10,20,18,30,0),
-d(1974,4,20,19,30,0),
-d(1974,10,19,18,30,0),
-d(1975,4,19,19,30,0),
-d(1975,10,18,18,30,0),
-d(1976,4,17,19,30,0),
-d(1976,10,16,18,30,0),
-d(1977,4,16,19,30,0),
-d(1977,10,15,18,30,0),
-d(1979,5,12,19,30,0),
-d(1979,10,20,18,30,0),
-d(1980,5,10,19,30,0),
-d(1980,10,18,18,30,0),
- ]
-
- _transition_info = [
-i(27420,0,'LMT'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
- ]
-
-Hong_Kong = Hong_Kong()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Hovd.py b/vendor/pytz/zoneinfo/Asia/Hovd.py
deleted file mode 100644
index 06d24333..00000000
--- a/vendor/pytz/zoneinfo/Asia/Hovd.py
+++ /dev/null
@@ -1,236 +0,0 @@
-'''tzinfo timezone information for Asia/Hovd.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hovd(DstTzInfo):
- '''Asia/Hovd timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Hovd'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,7,31,17,53,24),
-d(1977,12,31,18,0,0),
-d(1983,3,31,17,0,0),
-d(1983,9,30,16,0,0),
-d(1984,3,31,17,0,0),
-d(1984,9,29,16,0,0),
-d(1985,3,30,17,0,0),
-d(1985,9,28,16,0,0),
-d(1986,3,29,17,0,0),
-d(1986,9,27,16,0,0),
-d(1987,3,28,17,0,0),
-d(1987,9,26,16,0,0),
-d(1988,3,26,17,0,0),
-d(1988,9,24,16,0,0),
-d(1989,3,25,17,0,0),
-d(1989,9,23,16,0,0),
-d(1990,3,24,17,0,0),
-d(1990,9,29,16,0,0),
-d(1991,3,30,17,0,0),
-d(1991,9,28,16,0,0),
-d(1992,3,28,17,0,0),
-d(1992,9,26,16,0,0),
-d(1993,3,27,17,0,0),
-d(1993,9,25,16,0,0),
-d(1994,3,26,17,0,0),
-d(1994,9,24,16,0,0),
-d(1995,3,25,17,0,0),
-d(1995,9,23,16,0,0),
-d(1996,3,30,17,0,0),
-d(1996,9,28,16,0,0),
-d(1997,3,29,17,0,0),
-d(1997,9,27,16,0,0),
-d(1998,3,28,17,0,0),
-d(1998,9,26,16,0,0),
-d(2001,4,27,19,0,0),
-d(2001,9,28,18,0,0),
-d(2002,3,29,19,0,0),
-d(2002,9,27,18,0,0),
-d(2003,3,28,19,0,0),
-d(2003,9,26,18,0,0),
-d(2004,3,26,19,0,0),
-d(2004,9,24,18,0,0),
-d(2005,3,25,19,0,0),
-d(2005,9,23,18,0,0),
-d(2006,3,24,19,0,0),
-d(2006,9,29,18,0,0),
-d(2007,3,30,19,0,0),
-d(2007,9,28,18,0,0),
-d(2008,3,28,19,0,0),
-d(2008,9,26,18,0,0),
-d(2009,3,27,19,0,0),
-d(2009,9,25,18,0,0),
-d(2010,3,26,19,0,0),
-d(2010,9,24,18,0,0),
-d(2011,3,25,19,0,0),
-d(2011,9,23,18,0,0),
-d(2012,3,30,19,0,0),
-d(2012,9,28,18,0,0),
-d(2013,3,29,19,0,0),
-d(2013,9,27,18,0,0),
-d(2014,3,28,19,0,0),
-d(2014,9,26,18,0,0),
-d(2015,3,27,19,0,0),
-d(2015,9,25,18,0,0),
-d(2016,3,25,19,0,0),
-d(2016,9,23,18,0,0),
-d(2017,3,24,19,0,0),
-d(2017,9,29,18,0,0),
-d(2018,3,30,19,0,0),
-d(2018,9,28,18,0,0),
-d(2019,3,29,19,0,0),
-d(2019,9,27,18,0,0),
-d(2020,3,27,19,0,0),
-d(2020,9,25,18,0,0),
-d(2021,3,26,19,0,0),
-d(2021,9,24,18,0,0),
-d(2022,3,25,19,0,0),
-d(2022,9,23,18,0,0),
-d(2023,3,24,19,0,0),
-d(2023,9,29,18,0,0),
-d(2024,3,29,19,0,0),
-d(2024,9,27,18,0,0),
-d(2025,3,28,19,0,0),
-d(2025,9,26,18,0,0),
-d(2026,3,27,19,0,0),
-d(2026,9,25,18,0,0),
-d(2027,3,26,19,0,0),
-d(2027,9,24,18,0,0),
-d(2028,3,24,19,0,0),
-d(2028,9,29,18,0,0),
-d(2029,3,30,19,0,0),
-d(2029,9,28,18,0,0),
-d(2030,3,29,19,0,0),
-d(2030,9,27,18,0,0),
-d(2031,3,28,19,0,0),
-d(2031,9,26,18,0,0),
-d(2032,3,26,19,0,0),
-d(2032,9,24,18,0,0),
-d(2033,3,25,19,0,0),
-d(2033,9,23,18,0,0),
-d(2034,3,24,19,0,0),
-d(2034,9,29,18,0,0),
-d(2035,3,30,19,0,0),
-d(2035,9,28,18,0,0),
-d(2036,3,28,19,0,0),
-d(2036,9,26,18,0,0),
-d(2037,3,27,19,0,0),
-d(2037,9,25,18,0,0),
- ]
-
- _transition_info = [
-i(22020,0,'LMT'),
-i(21600,0,'HOVT'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
-i(28800,3600,'HOVST'),
-i(25200,0,'HOVT'),
- ]
-
-Hovd = Hovd()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Irkutsk.py b/vendor/pytz/zoneinfo/Asia/Irkutsk.py
deleted file mode 100644
index 8836f46d..00000000
--- a/vendor/pytz/zoneinfo/Asia/Irkutsk.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Irkutsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Irkutsk(DstTzInfo):
- '''Asia/Irkutsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Irkutsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,1,24,17,2,40),
-d(1930,6,20,17,0,0),
-d(1981,3,31,16,0,0),
-d(1981,9,30,15,0,0),
-d(1982,3,31,16,0,0),
-d(1982,9,30,15,0,0),
-d(1983,3,31,16,0,0),
-d(1983,9,30,15,0,0),
-d(1984,3,31,16,0,0),
-d(1984,9,29,18,0,0),
-d(1985,3,30,18,0,0),
-d(1985,9,28,18,0,0),
-d(1986,3,29,18,0,0),
-d(1986,9,27,18,0,0),
-d(1987,3,28,18,0,0),
-d(1987,9,26,18,0,0),
-d(1988,3,26,18,0,0),
-d(1988,9,24,18,0,0),
-d(1989,3,25,18,0,0),
-d(1989,9,23,18,0,0),
-d(1990,3,24,18,0,0),
-d(1990,9,29,18,0,0),
-d(1991,3,30,18,0,0),
-d(1991,9,28,19,0,0),
-d(1992,1,18,19,0,0),
-d(1992,3,28,15,0,0),
-d(1992,9,26,14,0,0),
-d(1993,3,27,18,0,0),
-d(1993,9,25,18,0,0),
-d(1994,3,26,18,0,0),
-d(1994,9,24,18,0,0),
-d(1995,3,25,18,0,0),
-d(1995,9,23,18,0,0),
-d(1996,3,30,18,0,0),
-d(1996,10,26,18,0,0),
-d(1997,3,29,18,0,0),
-d(1997,10,25,18,0,0),
-d(1998,3,28,18,0,0),
-d(1998,10,24,18,0,0),
-d(1999,3,27,18,0,0),
-d(1999,10,30,18,0,0),
-d(2000,3,25,18,0,0),
-d(2000,10,28,18,0,0),
-d(2001,3,24,18,0,0),
-d(2001,10,27,18,0,0),
-d(2002,3,30,18,0,0),
-d(2002,10,26,18,0,0),
-d(2003,3,29,18,0,0),
-d(2003,10,25,18,0,0),
-d(2004,3,27,18,0,0),
-d(2004,10,30,18,0,0),
-d(2005,3,26,18,0,0),
-d(2005,10,29,18,0,0),
-d(2006,3,25,18,0,0),
-d(2006,10,28,18,0,0),
-d(2007,3,24,18,0,0),
-d(2007,10,27,18,0,0),
-d(2008,3,29,18,0,0),
-d(2008,10,25,18,0,0),
-d(2009,3,28,18,0,0),
-d(2009,10,24,18,0,0),
-d(2010,3,27,18,0,0),
-d(2010,10,30,18,0,0),
-d(2011,3,26,18,0,0),
-d(2011,10,29,18,0,0),
-d(2012,3,24,18,0,0),
-d(2012,10,27,18,0,0),
-d(2013,3,30,18,0,0),
-d(2013,10,26,18,0,0),
-d(2014,3,29,18,0,0),
-d(2014,10,25,18,0,0),
-d(2015,3,28,18,0,0),
-d(2015,10,24,18,0,0),
-d(2016,3,26,18,0,0),
-d(2016,10,29,18,0,0),
-d(2017,3,25,18,0,0),
-d(2017,10,28,18,0,0),
-d(2018,3,24,18,0,0),
-d(2018,10,27,18,0,0),
-d(2019,3,30,18,0,0),
-d(2019,10,26,18,0,0),
-d(2020,3,28,18,0,0),
-d(2020,10,24,18,0,0),
-d(2021,3,27,18,0,0),
-d(2021,10,30,18,0,0),
-d(2022,3,26,18,0,0),
-d(2022,10,29,18,0,0),
-d(2023,3,25,18,0,0),
-d(2023,10,28,18,0,0),
-d(2024,3,30,18,0,0),
-d(2024,10,26,18,0,0),
-d(2025,3,29,18,0,0),
-d(2025,10,25,18,0,0),
-d(2026,3,28,18,0,0),
-d(2026,10,24,18,0,0),
-d(2027,3,27,18,0,0),
-d(2027,10,30,18,0,0),
-d(2028,3,25,18,0,0),
-d(2028,10,28,18,0,0),
-d(2029,3,24,18,0,0),
-d(2029,10,27,18,0,0),
-d(2030,3,30,18,0,0),
-d(2030,10,26,18,0,0),
-d(2031,3,29,18,0,0),
-d(2031,10,25,18,0,0),
-d(2032,3,27,18,0,0),
-d(2032,10,30,18,0,0),
-d(2033,3,26,18,0,0),
-d(2033,10,29,18,0,0),
-d(2034,3,25,18,0,0),
-d(2034,10,28,18,0,0),
-d(2035,3,24,18,0,0),
-d(2035,10,27,18,0,0),
-d(2036,3,29,18,0,0),
-d(2036,10,25,18,0,0),
-d(2037,3,28,18,0,0),
-d(2037,10,24,18,0,0),
- ]
-
- _transition_info = [
-i(25020,0,'IMT'),
-i(25200,0,'IRKT'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(28800,0,'IRKST'),
-i(25200,0,'IRKT'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
-i(32400,3600,'IRKST'),
-i(28800,0,'IRKT'),
- ]
-
-Irkutsk = Irkutsk()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Istanbul.py b/vendor/pytz/zoneinfo/Asia/Istanbul.py
deleted file mode 100644
index fb5f8b6d..00000000
--- a/vendor/pytz/zoneinfo/Asia/Istanbul.py
+++ /dev/null
@@ -1,362 +0,0 @@
-'''tzinfo timezone information for Asia/Istanbul.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Istanbul(DstTzInfo):
- '''Asia/Istanbul timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Istanbul'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,9,30,22,3,4),
-d(1916,4,30,22,0,0),
-d(1916,9,30,21,0,0),
-d(1920,3,27,22,0,0),
-d(1920,10,24,21,0,0),
-d(1921,4,2,22,0,0),
-d(1921,10,2,21,0,0),
-d(1922,3,25,22,0,0),
-d(1922,10,7,21,0,0),
-d(1924,5,12,22,0,0),
-d(1924,9,30,21,0,0),
-d(1925,4,30,22,0,0),
-d(1925,9,30,21,0,0),
-d(1940,6,29,22,0,0),
-d(1940,10,4,21,0,0),
-d(1940,11,30,22,0,0),
-d(1941,9,20,21,0,0),
-d(1942,3,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1945,4,1,22,0,0),
-d(1945,10,7,21,0,0),
-d(1946,5,31,22,0,0),
-d(1946,9,30,21,0,0),
-d(1947,4,19,22,0,0),
-d(1947,10,4,21,0,0),
-d(1948,4,17,22,0,0),
-d(1948,10,2,21,0,0),
-d(1949,4,9,22,0,0),
-d(1949,10,1,21,0,0),
-d(1950,4,18,22,0,0),
-d(1950,10,7,21,0,0),
-d(1951,4,21,22,0,0),
-d(1951,10,7,21,0,0),
-d(1962,7,14,22,0,0),
-d(1962,10,7,21,0,0),
-d(1964,5,14,22,0,0),
-d(1964,9,30,21,0,0),
-d(1970,5,2,22,0,0),
-d(1970,10,3,21,0,0),
-d(1971,5,1,22,0,0),
-d(1971,10,2,21,0,0),
-d(1972,5,6,22,0,0),
-d(1972,10,7,21,0,0),
-d(1973,6,2,23,0,0),
-d(1973,11,4,0,0,0),
-d(1974,3,31,0,0,0),
-d(1974,11,3,2,0,0),
-d(1975,3,29,22,0,0),
-d(1975,10,25,21,0,0),
-d(1976,5,31,22,0,0),
-d(1976,10,30,21,0,0),
-d(1977,4,2,22,0,0),
-d(1977,10,15,21,0,0),
-d(1978,4,1,22,0,0),
-d(1978,10,14,21,0,0),
-d(1979,10,14,20,0,0),
-d(1980,4,6,0,0,0),
-d(1980,10,12,20,0,0),
-d(1981,3,29,0,0,0),
-d(1981,10,11,20,0,0),
-d(1982,3,28,0,0,0),
-d(1982,10,10,20,0,0),
-d(1983,7,30,21,0,0),
-d(1983,10,1,20,0,0),
-d(1985,4,19,21,0,0),
-d(1985,9,27,21,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1988,3,27,0,0,0),
-d(1988,9,25,0,0,0),
-d(1989,3,26,0,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1990,12,31,22,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7020,0,'IMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(14400,7200,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Istanbul = Istanbul()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Jakarta.py b/vendor/pytz/zoneinfo/Asia/Jakarta.py
deleted file mode 100644
index 27a42113..00000000
--- a/vendor/pytz/zoneinfo/Asia/Jakarta.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Asia/Jakarta.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jakarta(DstTzInfo):
- '''Asia/Jakarta timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Jakarta'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1923,12,31,16,40,0),
-d(1932,10,31,16,40,0),
-d(1942,3,22,16,30,0),
-d(1945,7,31,15,0,0),
-d(1948,4,30,16,30,0),
-d(1950,4,30,16,0,0),
-d(1963,12,31,16,30,0),
- ]
-
- _transition_info = [
-i(25620,0,'JMT'),
-i(26400,0,'JAVT'),
-i(27000,0,'WIT'),
-i(32400,0,'JST'),
-i(27000,0,'WIT'),
-i(28800,0,'WIT'),
-i(27000,0,'WIT'),
-i(25200,0,'WIT'),
- ]
-
-Jakarta = Jakarta()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Jayapura.py b/vendor/pytz/zoneinfo/Asia/Jayapura.py
deleted file mode 100644
index c8760780..00000000
--- a/vendor/pytz/zoneinfo/Asia/Jayapura.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Asia/Jayapura.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jayapura(DstTzInfo):
- '''Asia/Jayapura timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Jayapura'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1932,10,31,14,37,12),
-d(1943,12,31,15,0,0),
-d(1963,12,31,14,30,0),
- ]
-
- _transition_info = [
-i(33780,0,'LMT'),
-i(32400,0,'EIT'),
-i(34200,0,'CST'),
-i(32400,0,'EIT'),
- ]
-
-Jayapura = Jayapura()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Jerusalem.py b/vendor/pytz/zoneinfo/Asia/Jerusalem.py
deleted file mode 100644
index cf3af693..00000000
--- a/vendor/pytz/zoneinfo/Asia/Jerusalem.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for Asia/Jerusalem.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jerusalem(DstTzInfo):
- '''Asia/Jerusalem timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Jerusalem'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,12,31,21,39,20),
-d(1940,5,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1943,4,1,0,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,23,0,0),
-d(1946,4,16,0,0,0),
-d(1946,10,31,21,0,0),
-d(1948,5,22,22,0,0),
-d(1948,8,31,20,0,0),
-d(1948,10,31,23,0,0),
-d(1949,4,30,22,0,0),
-d(1949,10,31,23,0,0),
-d(1950,4,15,22,0,0),
-d(1950,9,15,0,0,0),
-d(1951,3,31,22,0,0),
-d(1951,11,11,0,0,0),
-d(1952,4,20,0,0,0),
-d(1952,10,19,0,0,0),
-d(1953,4,12,0,0,0),
-d(1953,9,13,0,0,0),
-d(1954,6,12,22,0,0),
-d(1954,9,11,21,0,0),
-d(1955,6,11,0,0,0),
-d(1955,9,10,21,0,0),
-d(1956,6,2,22,0,0),
-d(1956,9,30,0,0,0),
-d(1957,4,29,0,0,0),
-d(1957,9,21,21,0,0),
-d(1974,7,6,22,0,0),
-d(1974,10,12,21,0,0),
-d(1975,4,19,22,0,0),
-d(1975,8,30,21,0,0),
-d(1985,4,13,22,0,0),
-d(1985,9,14,21,0,0),
-d(1986,5,17,22,0,0),
-d(1986,9,6,21,0,0),
-d(1987,4,14,22,0,0),
-d(1987,9,12,21,0,0),
-d(1988,4,8,22,0,0),
-d(1988,9,2,21,0,0),
-d(1989,4,29,22,0,0),
-d(1989,9,2,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,8,25,21,0,0),
-d(1991,3,23,22,0,0),
-d(1991,8,31,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,5,21,0,0),
-d(1993,4,1,22,0,0),
-d(1993,9,4,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,8,27,21,0,0),
-d(1995,3,30,22,0,0),
-d(1995,9,2,21,0,0),
-d(1996,3,14,22,0,0),
-d(1996,9,15,21,0,0),
-d(1997,3,20,22,0,0),
-d(1997,9,13,21,0,0),
-d(1998,3,19,22,0,0),
-d(1998,9,5,21,0,0),
-d(1999,4,2,0,0,0),
-d(1999,9,2,23,0,0),
-d(2000,4,14,0,0,0),
-d(2000,10,5,22,0,0),
-d(2001,4,8,23,0,0),
-d(2001,9,23,22,0,0),
-d(2002,3,28,23,0,0),
-d(2002,10,6,22,0,0),
-d(2003,3,27,23,0,0),
-d(2003,10,2,22,0,0),
-d(2004,4,6,23,0,0),
-d(2004,9,21,22,0,0),
-d(2005,4,1,0,0,0),
-d(2005,10,8,23,0,0),
-d(2006,3,31,0,0,0),
-d(2006,9,30,23,0,0),
-d(2007,3,30,0,0,0),
-d(2007,9,15,23,0,0),
-d(2008,3,28,0,0,0),
-d(2008,10,4,23,0,0),
-d(2009,3,27,0,0,0),
-d(2009,9,26,23,0,0),
-d(2010,3,26,0,0,0),
-d(2010,9,11,23,0,0),
-d(2011,4,1,0,0,0),
-d(2011,10,1,23,0,0),
-d(2012,3,30,0,0,0),
-d(2012,9,22,23,0,0),
-d(2013,3,29,0,0,0),
-d(2013,9,7,23,0,0),
-d(2014,3,28,0,0,0),
-d(2014,9,27,23,0,0),
-d(2015,3,27,0,0,0),
-d(2015,9,19,23,0,0),
-d(2016,4,1,0,0,0),
-d(2016,10,8,23,0,0),
-d(2017,3,31,0,0,0),
-d(2017,9,23,23,0,0),
-d(2018,3,30,0,0,0),
-d(2018,9,15,23,0,0),
-d(2019,3,29,0,0,0),
-d(2019,10,5,23,0,0),
-d(2020,3,27,0,0,0),
-d(2020,9,26,23,0,0),
-d(2021,3,26,0,0,0),
-d(2021,9,11,23,0,0),
-d(2022,4,1,0,0,0),
-d(2022,10,1,23,0,0),
-d(2023,3,31,0,0,0),
-d(2023,9,23,23,0,0),
-d(2024,3,29,0,0,0),
-d(2024,10,5,23,0,0),
-d(2025,3,28,0,0,0),
-d(2025,9,27,23,0,0),
-d(2026,3,27,0,0,0),
-d(2026,9,19,23,0,0),
-d(2027,3,26,0,0,0),
-d(2027,10,9,23,0,0),
-d(2028,3,31,0,0,0),
-d(2028,9,23,23,0,0),
-d(2029,3,30,0,0,0),
-d(2029,9,15,23,0,0),
-d(2030,3,29,0,0,0),
-d(2030,10,5,23,0,0),
-d(2031,3,28,0,0,0),
-d(2031,9,20,23,0,0),
-d(2032,3,26,0,0,0),
-d(2032,9,11,23,0,0),
-d(2033,4,1,0,0,0),
-d(2033,10,1,23,0,0),
-d(2034,3,31,0,0,0),
-d(2034,9,16,23,0,0),
-d(2035,3,30,0,0,0),
-d(2035,10,6,23,0,0),
-d(2036,3,28,0,0,0),
-d(2036,9,27,23,0,0),
-d(2037,3,27,0,0,0),
-d(2037,9,12,23,0,0),
- ]
-
- _transition_info = [
-i(8460,0,'JMT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(14400,7200,'IDDT'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
- ]
-
-Jerusalem = Jerusalem()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kabul.py b/vendor/pytz/zoneinfo/Asia/Kabul.py
deleted file mode 100644
index c19ff5f5..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kabul.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Kabul.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kabul(DstTzInfo):
- '''Asia/Kabul timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kabul'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1944,12,31,20,0,0),
- ]
-
- _transition_info = [
-i(14400,0,'AFT'),
-i(16200,0,'AFT'),
- ]
-
-Kabul = Kabul()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kamchatka.py b/vendor/pytz/zoneinfo/Asia/Kamchatka.py
deleted file mode 100644
index 7b6b9465..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kamchatka.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Kamchatka.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kamchatka(DstTzInfo):
- '''Asia/Kamchatka timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kamchatka'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,11,9,13,25,24),
-d(1930,6,20,13,0,0),
-d(1981,3,31,12,0,0),
-d(1981,9,30,11,0,0),
-d(1982,3,31,12,0,0),
-d(1982,9,30,11,0,0),
-d(1983,3,31,12,0,0),
-d(1983,9,30,11,0,0),
-d(1984,3,31,12,0,0),
-d(1984,9,29,14,0,0),
-d(1985,3,30,14,0,0),
-d(1985,9,28,14,0,0),
-d(1986,3,29,14,0,0),
-d(1986,9,27,14,0,0),
-d(1987,3,28,14,0,0),
-d(1987,9,26,14,0,0),
-d(1988,3,26,14,0,0),
-d(1988,9,24,14,0,0),
-d(1989,3,25,14,0,0),
-d(1989,9,23,14,0,0),
-d(1990,3,24,14,0,0),
-d(1990,9,29,14,0,0),
-d(1991,3,30,14,0,0),
-d(1991,9,28,15,0,0),
-d(1992,1,18,15,0,0),
-d(1992,3,28,11,0,0),
-d(1992,9,26,10,0,0),
-d(1993,3,27,14,0,0),
-d(1993,9,25,14,0,0),
-d(1994,3,26,14,0,0),
-d(1994,9,24,14,0,0),
-d(1995,3,25,14,0,0),
-d(1995,9,23,14,0,0),
-d(1996,3,30,14,0,0),
-d(1996,10,26,14,0,0),
-d(1997,3,29,14,0,0),
-d(1997,10,25,14,0,0),
-d(1998,3,28,14,0,0),
-d(1998,10,24,14,0,0),
-d(1999,3,27,14,0,0),
-d(1999,10,30,14,0,0),
-d(2000,3,25,14,0,0),
-d(2000,10,28,14,0,0),
-d(2001,3,24,14,0,0),
-d(2001,10,27,14,0,0),
-d(2002,3,30,14,0,0),
-d(2002,10,26,14,0,0),
-d(2003,3,29,14,0,0),
-d(2003,10,25,14,0,0),
-d(2004,3,27,14,0,0),
-d(2004,10,30,14,0,0),
-d(2005,3,26,14,0,0),
-d(2005,10,29,14,0,0),
-d(2006,3,25,14,0,0),
-d(2006,10,28,14,0,0),
-d(2007,3,24,14,0,0),
-d(2007,10,27,14,0,0),
-d(2008,3,29,14,0,0),
-d(2008,10,25,14,0,0),
-d(2009,3,28,14,0,0),
-d(2009,10,24,14,0,0),
-d(2010,3,27,14,0,0),
-d(2010,10,30,14,0,0),
-d(2011,3,26,14,0,0),
-d(2011,10,29,14,0,0),
-d(2012,3,24,14,0,0),
-d(2012,10,27,14,0,0),
-d(2013,3,30,14,0,0),
-d(2013,10,26,14,0,0),
-d(2014,3,29,14,0,0),
-d(2014,10,25,14,0,0),
-d(2015,3,28,14,0,0),
-d(2015,10,24,14,0,0),
-d(2016,3,26,14,0,0),
-d(2016,10,29,14,0,0),
-d(2017,3,25,14,0,0),
-d(2017,10,28,14,0,0),
-d(2018,3,24,14,0,0),
-d(2018,10,27,14,0,0),
-d(2019,3,30,14,0,0),
-d(2019,10,26,14,0,0),
-d(2020,3,28,14,0,0),
-d(2020,10,24,14,0,0),
-d(2021,3,27,14,0,0),
-d(2021,10,30,14,0,0),
-d(2022,3,26,14,0,0),
-d(2022,10,29,14,0,0),
-d(2023,3,25,14,0,0),
-d(2023,10,28,14,0,0),
-d(2024,3,30,14,0,0),
-d(2024,10,26,14,0,0),
-d(2025,3,29,14,0,0),
-d(2025,10,25,14,0,0),
-d(2026,3,28,14,0,0),
-d(2026,10,24,14,0,0),
-d(2027,3,27,14,0,0),
-d(2027,10,30,14,0,0),
-d(2028,3,25,14,0,0),
-d(2028,10,28,14,0,0),
-d(2029,3,24,14,0,0),
-d(2029,10,27,14,0,0),
-d(2030,3,30,14,0,0),
-d(2030,10,26,14,0,0),
-d(2031,3,29,14,0,0),
-d(2031,10,25,14,0,0),
-d(2032,3,27,14,0,0),
-d(2032,10,30,14,0,0),
-d(2033,3,26,14,0,0),
-d(2033,10,29,14,0,0),
-d(2034,3,25,14,0,0),
-d(2034,10,28,14,0,0),
-d(2035,3,24,14,0,0),
-d(2035,10,27,14,0,0),
-d(2036,3,29,14,0,0),
-d(2036,10,25,14,0,0),
-d(2037,3,28,14,0,0),
-d(2037,10,24,14,0,0),
- ]
-
- _transition_info = [
-i(38100,0,'LMT'),
-i(39600,0,'PETT'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(43200,0,'PETST'),
-i(39600,0,'PETT'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
-i(46800,3600,'PETST'),
-i(43200,0,'PETT'),
- ]
-
-Kamchatka = Kamchatka()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Karachi.py b/vendor/pytz/zoneinfo/Asia/Karachi.py
deleted file mode 100644
index 838f06b0..00000000
--- a/vendor/pytz/zoneinfo/Asia/Karachi.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Asia/Karachi.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Karachi(DstTzInfo):
- '''Asia/Karachi timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Karachi'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,12,31,19,31,48),
-d(1942,8,31,18,30,0),
-d(1945,10,14,17,30,0),
-d(1951,9,29,18,30,0),
-d(1971,3,25,19,0,0),
-d(2002,4,6,19,1,0),
-d(2002,10,5,18,1,0),
- ]
-
- _transition_info = [
-i(16080,0,'LMT'),
-i(19800,0,'IST'),
-i(23400,3600,'IST'),
-i(19800,0,'IST'),
-i(18000,0,'KART'),
-i(18000,0,'PKT'),
-i(21600,3600,'PKST'),
-i(18000,0,'PKT'),
- ]
-
-Karachi = Karachi()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kashgar.py b/vendor/pytz/zoneinfo/Asia/Kashgar.py
deleted file mode 100644
index 27616b0e..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kashgar.py
+++ /dev/null
@@ -1,50 +0,0 @@
-'''tzinfo timezone information for Asia/Kashgar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kashgar(DstTzInfo):
- '''Asia/Kashgar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kashgar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,18,56,4),
-d(1939,12,31,18,30,0),
-d(1980,4,30,19,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(18240,0,'LMT'),
-i(19800,0,'KAST'),
-i(18000,0,'KAST'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Kashgar = Kashgar()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Katmandu.py b/vendor/pytz/zoneinfo/Asia/Katmandu.py
deleted file mode 100644
index 2f8d1f1a..00000000
--- a/vendor/pytz/zoneinfo/Asia/Katmandu.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Katmandu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Katmandu(DstTzInfo):
- '''Asia/Katmandu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Katmandu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,18,18,44),
-d(1985,12,31,18,30,0),
- ]
-
- _transition_info = [
-i(20460,0,'LMT'),
-i(19800,0,'IST'),
-i(20700,0,'NPT'),
- ]
-
-Katmandu = Katmandu()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Krasnoyarsk.py b/vendor/pytz/zoneinfo/Asia/Krasnoyarsk.py
deleted file mode 100644
index 5cecf765..00000000
--- a/vendor/pytz/zoneinfo/Asia/Krasnoyarsk.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Krasnoyarsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Krasnoyarsk(DstTzInfo):
- '''Asia/Krasnoyarsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Krasnoyarsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,1,5,17,48,40),
-d(1930,6,20,18,0,0),
-d(1981,3,31,17,0,0),
-d(1981,9,30,16,0,0),
-d(1982,3,31,17,0,0),
-d(1982,9,30,16,0,0),
-d(1983,3,31,17,0,0),
-d(1983,9,30,16,0,0),
-d(1984,3,31,17,0,0),
-d(1984,9,29,19,0,0),
-d(1985,3,30,19,0,0),
-d(1985,9,28,19,0,0),
-d(1986,3,29,19,0,0),
-d(1986,9,27,19,0,0),
-d(1987,3,28,19,0,0),
-d(1987,9,26,19,0,0),
-d(1988,3,26,19,0,0),
-d(1988,9,24,19,0,0),
-d(1989,3,25,19,0,0),
-d(1989,9,23,19,0,0),
-d(1990,3,24,19,0,0),
-d(1990,9,29,19,0,0),
-d(1991,3,30,19,0,0),
-d(1991,9,28,20,0,0),
-d(1992,1,18,20,0,0),
-d(1992,3,28,16,0,0),
-d(1992,9,26,15,0,0),
-d(1993,3,27,19,0,0),
-d(1993,9,25,19,0,0),
-d(1994,3,26,19,0,0),
-d(1994,9,24,19,0,0),
-d(1995,3,25,19,0,0),
-d(1995,9,23,19,0,0),
-d(1996,3,30,19,0,0),
-d(1996,10,26,19,0,0),
-d(1997,3,29,19,0,0),
-d(1997,10,25,19,0,0),
-d(1998,3,28,19,0,0),
-d(1998,10,24,19,0,0),
-d(1999,3,27,19,0,0),
-d(1999,10,30,19,0,0),
-d(2000,3,25,19,0,0),
-d(2000,10,28,19,0,0),
-d(2001,3,24,19,0,0),
-d(2001,10,27,19,0,0),
-d(2002,3,30,19,0,0),
-d(2002,10,26,19,0,0),
-d(2003,3,29,19,0,0),
-d(2003,10,25,19,0,0),
-d(2004,3,27,19,0,0),
-d(2004,10,30,19,0,0),
-d(2005,3,26,19,0,0),
-d(2005,10,29,19,0,0),
-d(2006,3,25,19,0,0),
-d(2006,10,28,19,0,0),
-d(2007,3,24,19,0,0),
-d(2007,10,27,19,0,0),
-d(2008,3,29,19,0,0),
-d(2008,10,25,19,0,0),
-d(2009,3,28,19,0,0),
-d(2009,10,24,19,0,0),
-d(2010,3,27,19,0,0),
-d(2010,10,30,19,0,0),
-d(2011,3,26,19,0,0),
-d(2011,10,29,19,0,0),
-d(2012,3,24,19,0,0),
-d(2012,10,27,19,0,0),
-d(2013,3,30,19,0,0),
-d(2013,10,26,19,0,0),
-d(2014,3,29,19,0,0),
-d(2014,10,25,19,0,0),
-d(2015,3,28,19,0,0),
-d(2015,10,24,19,0,0),
-d(2016,3,26,19,0,0),
-d(2016,10,29,19,0,0),
-d(2017,3,25,19,0,0),
-d(2017,10,28,19,0,0),
-d(2018,3,24,19,0,0),
-d(2018,10,27,19,0,0),
-d(2019,3,30,19,0,0),
-d(2019,10,26,19,0,0),
-d(2020,3,28,19,0,0),
-d(2020,10,24,19,0,0),
-d(2021,3,27,19,0,0),
-d(2021,10,30,19,0,0),
-d(2022,3,26,19,0,0),
-d(2022,10,29,19,0,0),
-d(2023,3,25,19,0,0),
-d(2023,10,28,19,0,0),
-d(2024,3,30,19,0,0),
-d(2024,10,26,19,0,0),
-d(2025,3,29,19,0,0),
-d(2025,10,25,19,0,0),
-d(2026,3,28,19,0,0),
-d(2026,10,24,19,0,0),
-d(2027,3,27,19,0,0),
-d(2027,10,30,19,0,0),
-d(2028,3,25,19,0,0),
-d(2028,10,28,19,0,0),
-d(2029,3,24,19,0,0),
-d(2029,10,27,19,0,0),
-d(2030,3,30,19,0,0),
-d(2030,10,26,19,0,0),
-d(2031,3,29,19,0,0),
-d(2031,10,25,19,0,0),
-d(2032,3,27,19,0,0),
-d(2032,10,30,19,0,0),
-d(2033,3,26,19,0,0),
-d(2033,10,29,19,0,0),
-d(2034,3,25,19,0,0),
-d(2034,10,28,19,0,0),
-d(2035,3,24,19,0,0),
-d(2035,10,27,19,0,0),
-d(2036,3,29,19,0,0),
-d(2036,10,25,19,0,0),
-d(2037,3,28,19,0,0),
-d(2037,10,24,19,0,0),
- ]
-
- _transition_info = [
-i(22260,0,'LMT'),
-i(21600,0,'KRAT'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(25200,0,'KRAST'),
-i(21600,0,'KRAT'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
-i(28800,3600,'KRAST'),
-i(25200,0,'KRAT'),
- ]
-
-Krasnoyarsk = Krasnoyarsk()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kuala_Lumpur.py b/vendor/pytz/zoneinfo/Asia/Kuala_Lumpur.py
deleted file mode 100644
index 99f1d829..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kuala_Lumpur.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Asia/Kuala_Lumpur.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kuala_Lumpur(DstTzInfo):
- '''Asia/Kuala_Lumpur timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kuala_Lumpur'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,5,31,17,4,35),
-d(1932,12,31,17,0,0),
-d(1935,12,31,16,40,0),
-d(1941,8,31,16,40,0),
-d(1942,2,15,16,30,0),
-d(1945,9,11,15,0,0),
-d(1981,12,31,16,30,0),
- ]
-
- _transition_info = [
-i(24900,0,'SMT'),
-i(25200,0,'MALT'),
-i(26400,1200,'MALST'),
-i(26400,0,'MALT'),
-i(27000,0,'MALT'),
-i(32400,0,'JST'),
-i(27000,0,'MALT'),
-i(28800,0,'MYT'),
- ]
-
-Kuala_Lumpur = Kuala_Lumpur()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kuching.py b/vendor/pytz/zoneinfo/Asia/Kuching.py
deleted file mode 100644
index e6e7b99e..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kuching.py
+++ /dev/null
@@ -1,58 +0,0 @@
-'''tzinfo timezone information for Asia/Kuching.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kuching(DstTzInfo):
- '''Asia/Kuching timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kuching'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1926,2,28,16,38,40),
-d(1932,12,31,16,30,0),
-d(1935,9,13,16,0,0),
-d(1935,12,13,15,40,0),
-d(1936,9,13,16,0,0),
-d(1936,12,13,15,40,0),
-d(1937,9,13,16,0,0),
-d(1937,12,13,15,40,0),
-d(1938,9,13,16,0,0),
-d(1938,12,13,15,40,0),
-d(1939,9,13,16,0,0),
-d(1939,12,13,15,40,0),
-d(1940,9,13,16,0,0),
-d(1940,12,13,15,40,0),
-d(1941,9,13,16,0,0),
-d(1941,12,13,15,40,0),
-d(1942,2,15,16,0,0),
-d(1945,9,11,15,0,0),
-d(1981,12,31,16,0,0),
- ]
-
- _transition_info = [
-i(26460,0,'LMT'),
-i(27000,0,'BORT'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(30000,1200,'BORTST'),
-i(28800,0,'BORT'),
-i(32400,0,'JST'),
-i(28800,0,'BORT'),
-i(28800,0,'MYT'),
- ]
-
-Kuching = Kuching()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Kuwait.py b/vendor/pytz/zoneinfo/Asia/Kuwait.py
deleted file mode 100644
index 011d226d..00000000
--- a/vendor/pytz/zoneinfo/Asia/Kuwait.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Kuwait.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kuwait(DstTzInfo):
- '''Asia/Kuwait timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Kuwait'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1949,12,31,20,48,4),
- ]
-
- _transition_info = [
-i(11520,0,'LMT'),
-i(10800,0,'AST'),
- ]
-
-Kuwait = Kuwait()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Macao.py b/vendor/pytz/zoneinfo/Asia/Macao.py
deleted file mode 100644
index 858c8497..00000000
--- a/vendor/pytz/zoneinfo/Asia/Macao.py
+++ /dev/null
@@ -1,104 +0,0 @@
-'''tzinfo timezone information for Asia/Macao.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Macao(DstTzInfo):
- '''Asia/Macao timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Macao'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,16,25,40),
-d(1961,3,18,19,30,0),
-d(1961,11,4,18,30,0),
-d(1962,3,17,19,30,0),
-d(1962,11,3,18,30,0),
-d(1963,3,16,16,0,0),
-d(1963,11,2,18,30,0),
-d(1964,3,21,19,30,0),
-d(1964,10,31,18,30,0),
-d(1965,3,20,16,0,0),
-d(1965,10,30,15,0,0),
-d(1966,4,16,19,30,0),
-d(1966,10,15,18,30,0),
-d(1967,4,15,19,30,0),
-d(1967,10,21,18,30,0),
-d(1968,4,20,19,30,0),
-d(1968,10,19,18,30,0),
-d(1969,4,19,19,30,0),
-d(1969,10,18,18,30,0),
-d(1970,4,18,19,30,0),
-d(1970,10,17,18,30,0),
-d(1971,4,17,19,30,0),
-d(1971,10,16,18,30,0),
-d(1972,4,15,16,0,0),
-d(1972,10,14,15,0,0),
-d(1973,4,14,16,0,0),
-d(1973,10,20,15,0,0),
-d(1974,4,20,16,0,0),
-d(1974,10,19,18,30,0),
-d(1975,4,19,19,30,0),
-d(1975,10,18,18,30,0),
-d(1976,4,17,19,30,0),
-d(1976,10,16,18,30,0),
-d(1977,4,16,19,30,0),
-d(1977,10,15,18,30,0),
-d(1978,4,15,16,0,0),
-d(1978,10,14,15,0,0),
-d(1979,4,14,16,0,0),
-d(1979,10,20,15,0,0),
-d(1980,4,19,16,0,0),
-d(1980,10,18,15,0,0),
-d(1999,12,19,16,0,0),
- ]
-
- _transition_info = [
-i(27240,0,'LMT'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(28800,0,'CST'),
- ]
-
-Macao = Macao()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Macau.py b/vendor/pytz/zoneinfo/Asia/Macau.py
deleted file mode 100644
index 6865e5ff..00000000
--- a/vendor/pytz/zoneinfo/Asia/Macau.py
+++ /dev/null
@@ -1,104 +0,0 @@
-'''tzinfo timezone information for Asia/Macau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Macau(DstTzInfo):
- '''Asia/Macau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Macau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,12,31,16,25,40),
-d(1961,3,18,19,30,0),
-d(1961,11,4,18,30,0),
-d(1962,3,17,19,30,0),
-d(1962,11,3,18,30,0),
-d(1963,3,16,16,0,0),
-d(1963,11,2,18,30,0),
-d(1964,3,21,19,30,0),
-d(1964,10,31,18,30,0),
-d(1965,3,20,16,0,0),
-d(1965,10,30,15,0,0),
-d(1966,4,16,19,30,0),
-d(1966,10,15,18,30,0),
-d(1967,4,15,19,30,0),
-d(1967,10,21,18,30,0),
-d(1968,4,20,19,30,0),
-d(1968,10,19,18,30,0),
-d(1969,4,19,19,30,0),
-d(1969,10,18,18,30,0),
-d(1970,4,18,19,30,0),
-d(1970,10,17,18,30,0),
-d(1971,4,17,19,30,0),
-d(1971,10,16,18,30,0),
-d(1972,4,15,16,0,0),
-d(1972,10,14,15,0,0),
-d(1973,4,14,16,0,0),
-d(1973,10,20,15,0,0),
-d(1974,4,20,16,0,0),
-d(1974,10,19,18,30,0),
-d(1975,4,19,19,30,0),
-d(1975,10,18,18,30,0),
-d(1976,4,17,19,30,0),
-d(1976,10,16,18,30,0),
-d(1977,4,16,19,30,0),
-d(1977,10,15,18,30,0),
-d(1978,4,15,16,0,0),
-d(1978,10,14,15,0,0),
-d(1979,4,14,16,0,0),
-d(1979,10,20,15,0,0),
-d(1980,4,19,16,0,0),
-d(1980,10,18,15,0,0),
-d(1999,12,19,16,0,0),
- ]
-
- _transition_info = [
-i(27240,0,'LMT'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(32400,3600,'MOST'),
-i(28800,0,'MOT'),
-i(28800,0,'CST'),
- ]
-
-Macau = Macau()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Magadan.py b/vendor/pytz/zoneinfo/Asia/Magadan.py
deleted file mode 100644
index 673bc1d2..00000000
--- a/vendor/pytz/zoneinfo/Asia/Magadan.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Magadan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Magadan(DstTzInfo):
- '''Asia/Magadan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Magadan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,13,56,48),
-d(1930,6,20,14,0,0),
-d(1981,3,31,13,0,0),
-d(1981,9,30,12,0,0),
-d(1982,3,31,13,0,0),
-d(1982,9,30,12,0,0),
-d(1983,3,31,13,0,0),
-d(1983,9,30,12,0,0),
-d(1984,3,31,13,0,0),
-d(1984,9,29,15,0,0),
-d(1985,3,30,15,0,0),
-d(1985,9,28,15,0,0),
-d(1986,3,29,15,0,0),
-d(1986,9,27,15,0,0),
-d(1987,3,28,15,0,0),
-d(1987,9,26,15,0,0),
-d(1988,3,26,15,0,0),
-d(1988,9,24,15,0,0),
-d(1989,3,25,15,0,0),
-d(1989,9,23,15,0,0),
-d(1990,3,24,15,0,0),
-d(1990,9,29,15,0,0),
-d(1991,3,30,15,0,0),
-d(1991,9,28,16,0,0),
-d(1992,1,18,16,0,0),
-d(1992,3,28,12,0,0),
-d(1992,9,26,11,0,0),
-d(1993,3,27,15,0,0),
-d(1993,9,25,15,0,0),
-d(1994,3,26,15,0,0),
-d(1994,9,24,15,0,0),
-d(1995,3,25,15,0,0),
-d(1995,9,23,15,0,0),
-d(1996,3,30,15,0,0),
-d(1996,10,26,15,0,0),
-d(1997,3,29,15,0,0),
-d(1997,10,25,15,0,0),
-d(1998,3,28,15,0,0),
-d(1998,10,24,15,0,0),
-d(1999,3,27,15,0,0),
-d(1999,10,30,15,0,0),
-d(2000,3,25,15,0,0),
-d(2000,10,28,15,0,0),
-d(2001,3,24,15,0,0),
-d(2001,10,27,15,0,0),
-d(2002,3,30,15,0,0),
-d(2002,10,26,15,0,0),
-d(2003,3,29,15,0,0),
-d(2003,10,25,15,0,0),
-d(2004,3,27,15,0,0),
-d(2004,10,30,15,0,0),
-d(2005,3,26,15,0,0),
-d(2005,10,29,15,0,0),
-d(2006,3,25,15,0,0),
-d(2006,10,28,15,0,0),
-d(2007,3,24,15,0,0),
-d(2007,10,27,15,0,0),
-d(2008,3,29,15,0,0),
-d(2008,10,25,15,0,0),
-d(2009,3,28,15,0,0),
-d(2009,10,24,15,0,0),
-d(2010,3,27,15,0,0),
-d(2010,10,30,15,0,0),
-d(2011,3,26,15,0,0),
-d(2011,10,29,15,0,0),
-d(2012,3,24,15,0,0),
-d(2012,10,27,15,0,0),
-d(2013,3,30,15,0,0),
-d(2013,10,26,15,0,0),
-d(2014,3,29,15,0,0),
-d(2014,10,25,15,0,0),
-d(2015,3,28,15,0,0),
-d(2015,10,24,15,0,0),
-d(2016,3,26,15,0,0),
-d(2016,10,29,15,0,0),
-d(2017,3,25,15,0,0),
-d(2017,10,28,15,0,0),
-d(2018,3,24,15,0,0),
-d(2018,10,27,15,0,0),
-d(2019,3,30,15,0,0),
-d(2019,10,26,15,0,0),
-d(2020,3,28,15,0,0),
-d(2020,10,24,15,0,0),
-d(2021,3,27,15,0,0),
-d(2021,10,30,15,0,0),
-d(2022,3,26,15,0,0),
-d(2022,10,29,15,0,0),
-d(2023,3,25,15,0,0),
-d(2023,10,28,15,0,0),
-d(2024,3,30,15,0,0),
-d(2024,10,26,15,0,0),
-d(2025,3,29,15,0,0),
-d(2025,10,25,15,0,0),
-d(2026,3,28,15,0,0),
-d(2026,10,24,15,0,0),
-d(2027,3,27,15,0,0),
-d(2027,10,30,15,0,0),
-d(2028,3,25,15,0,0),
-d(2028,10,28,15,0,0),
-d(2029,3,24,15,0,0),
-d(2029,10,27,15,0,0),
-d(2030,3,30,15,0,0),
-d(2030,10,26,15,0,0),
-d(2031,3,29,15,0,0),
-d(2031,10,25,15,0,0),
-d(2032,3,27,15,0,0),
-d(2032,10,30,15,0,0),
-d(2033,3,26,15,0,0),
-d(2033,10,29,15,0,0),
-d(2034,3,25,15,0,0),
-d(2034,10,28,15,0,0),
-d(2035,3,24,15,0,0),
-d(2035,10,27,15,0,0),
-d(2036,3,29,15,0,0),
-d(2036,10,25,15,0,0),
-d(2037,3,28,15,0,0),
-d(2037,10,24,15,0,0),
- ]
-
- _transition_info = [
-i(36180,0,'LMT'),
-i(36000,0,'MAGT'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(39600,0,'MAGST'),
-i(36000,0,'MAGT'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
-i(43200,3600,'MAGST'),
-i(39600,0,'MAGT'),
- ]
-
-Magadan = Magadan()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Makassar.py b/vendor/pytz/zoneinfo/Asia/Makassar.py
deleted file mode 100644
index 421845e2..00000000
--- a/vendor/pytz/zoneinfo/Asia/Makassar.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Makassar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Makassar(DstTzInfo):
- '''Asia/Makassar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Makassar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,16,2,24),
-d(1932,10,31,16,2,24),
-d(1942,2,8,16,0,0),
-d(1945,7,31,15,0,0),
- ]
-
- _transition_info = [
-i(28680,0,'LMT'),
-i(28680,0,'MMT'),
-i(28800,0,'CIT'),
-i(32400,0,'JST'),
-i(28800,0,'CIT'),
- ]
-
-Makassar = Makassar()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Manila.py b/vendor/pytz/zoneinfo/Asia/Manila.py
deleted file mode 100644
index 9d2112b7..00000000
--- a/vendor/pytz/zoneinfo/Asia/Manila.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Asia/Manila.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Manila(DstTzInfo):
- '''Asia/Manila timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Manila'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1936,10,31,16,0,0),
-d(1937,1,31,15,0,0),
-d(1942,4,30,16,0,0),
-d(1944,10,31,15,0,0),
-d(1954,4,11,16,0,0),
-d(1954,6,30,15,0,0),
-d(1978,3,21,16,0,0),
-d(1978,9,20,15,0,0),
- ]
-
- _transition_info = [
-i(28800,0,'PHT'),
-i(32400,3600,'PHST'),
-i(28800,0,'PHT'),
-i(32400,0,'JST'),
-i(28800,0,'PHT'),
-i(32400,3600,'PHST'),
-i(28800,0,'PHT'),
-i(32400,3600,'PHST'),
-i(28800,0,'PHT'),
- ]
-
-Manila = Manila()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Muscat.py b/vendor/pytz/zoneinfo/Asia/Muscat.py
deleted file mode 100644
index 68bdb138..00000000
--- a/vendor/pytz/zoneinfo/Asia/Muscat.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Muscat.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Muscat(DstTzInfo):
- '''Asia/Muscat timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Muscat'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,20,5,40),
- ]
-
- _transition_info = [
-i(14040,0,'LMT'),
-i(14400,0,'GST'),
- ]
-
-Muscat = Muscat()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Nicosia.py b/vendor/pytz/zoneinfo/Asia/Nicosia.py
deleted file mode 100644
index 737050f0..00000000
--- a/vendor/pytz/zoneinfo/Asia/Nicosia.py
+++ /dev/null
@@ -1,274 +0,0 @@
-'''tzinfo timezone information for Asia/Nicosia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nicosia(DstTzInfo):
- '''Asia/Nicosia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Nicosia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,11,13,21,46,32),
-d(1975,4,12,22,0,0),
-d(1975,10,11,21,0,0),
-d(1976,5,14,22,0,0),
-d(1976,10,10,21,0,0),
-d(1977,4,2,22,0,0),
-d(1977,9,24,21,0,0),
-d(1978,4,1,22,0,0),
-d(1978,10,1,21,0,0),
-d(1979,3,31,22,0,0),
-d(1979,9,29,21,0,0),
-d(1980,4,5,22,0,0),
-d(1980,9,27,21,0,0),
-d(1981,3,28,22,0,0),
-d(1981,9,26,21,0,0),
-d(1982,3,27,22,0,0),
-d(1982,9,25,21,0,0),
-d(1983,3,26,22,0,0),
-d(1983,9,24,21,0,0),
-d(1984,3,24,22,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,22,0,0),
-d(1991,9,28,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,9,28,21,0,0),
-d(1997,3,29,22,0,0),
-d(1997,9,27,21,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7980,0,'LMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Nicosia = Nicosia()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Novosibirsk.py b/vendor/pytz/zoneinfo/Asia/Novosibirsk.py
deleted file mode 100644
index 69e9cbe9..00000000
--- a/vendor/pytz/zoneinfo/Asia/Novosibirsk.py
+++ /dev/null
@@ -1,256 +0,0 @@
-'''tzinfo timezone information for Asia/Novosibirsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Novosibirsk(DstTzInfo):
- '''Asia/Novosibirsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Novosibirsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,14,0,28,20),
-d(1930,6,20,18,0,0),
-d(1981,3,31,17,0,0),
-d(1981,9,30,16,0,0),
-d(1982,3,31,17,0,0),
-d(1982,9,30,16,0,0),
-d(1983,3,31,17,0,0),
-d(1983,9,30,16,0,0),
-d(1984,3,31,17,0,0),
-d(1984,9,29,19,0,0),
-d(1985,3,30,19,0,0),
-d(1985,9,28,19,0,0),
-d(1986,3,29,19,0,0),
-d(1986,9,27,19,0,0),
-d(1987,3,28,19,0,0),
-d(1987,9,26,19,0,0),
-d(1988,3,26,19,0,0),
-d(1988,9,24,19,0,0),
-d(1989,3,25,19,0,0),
-d(1989,9,23,19,0,0),
-d(1990,3,24,19,0,0),
-d(1990,9,29,19,0,0),
-d(1991,3,30,19,0,0),
-d(1991,9,28,20,0,0),
-d(1992,1,18,20,0,0),
-d(1992,3,28,16,0,0),
-d(1992,9,26,15,0,0),
-d(1993,3,27,19,0,0),
-d(1993,5,22,16,0,0),
-d(1993,9,25,20,0,0),
-d(1994,3,26,20,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,20,0,0),
-d(1995,9,23,20,0,0),
-d(1996,3,30,20,0,0),
-d(1996,10,26,20,0,0),
-d(1997,3,29,20,0,0),
-d(1997,10,25,20,0,0),
-d(1998,3,28,20,0,0),
-d(1998,10,24,20,0,0),
-d(1999,3,27,20,0,0),
-d(1999,10,30,20,0,0),
-d(2000,3,25,20,0,0),
-d(2000,10,28,20,0,0),
-d(2001,3,24,20,0,0),
-d(2001,10,27,20,0,0),
-d(2002,3,30,20,0,0),
-d(2002,10,26,20,0,0),
-d(2003,3,29,20,0,0),
-d(2003,10,25,20,0,0),
-d(2004,3,27,20,0,0),
-d(2004,10,30,20,0,0),
-d(2005,3,26,20,0,0),
-d(2005,10,29,20,0,0),
-d(2006,3,25,20,0,0),
-d(2006,10,28,20,0,0),
-d(2007,3,24,20,0,0),
-d(2007,10,27,20,0,0),
-d(2008,3,29,20,0,0),
-d(2008,10,25,20,0,0),
-d(2009,3,28,20,0,0),
-d(2009,10,24,20,0,0),
-d(2010,3,27,20,0,0),
-d(2010,10,30,20,0,0),
-d(2011,3,26,20,0,0),
-d(2011,10,29,20,0,0),
-d(2012,3,24,20,0,0),
-d(2012,10,27,20,0,0),
-d(2013,3,30,20,0,0),
-d(2013,10,26,20,0,0),
-d(2014,3,29,20,0,0),
-d(2014,10,25,20,0,0),
-d(2015,3,28,20,0,0),
-d(2015,10,24,20,0,0),
-d(2016,3,26,20,0,0),
-d(2016,10,29,20,0,0),
-d(2017,3,25,20,0,0),
-d(2017,10,28,20,0,0),
-d(2018,3,24,20,0,0),
-d(2018,10,27,20,0,0),
-d(2019,3,30,20,0,0),
-d(2019,10,26,20,0,0),
-d(2020,3,28,20,0,0),
-d(2020,10,24,20,0,0),
-d(2021,3,27,20,0,0),
-d(2021,10,30,20,0,0),
-d(2022,3,26,20,0,0),
-d(2022,10,29,20,0,0),
-d(2023,3,25,20,0,0),
-d(2023,10,28,20,0,0),
-d(2024,3,30,20,0,0),
-d(2024,10,26,20,0,0),
-d(2025,3,29,20,0,0),
-d(2025,10,25,20,0,0),
-d(2026,3,28,20,0,0),
-d(2026,10,24,20,0,0),
-d(2027,3,27,20,0,0),
-d(2027,10,30,20,0,0),
-d(2028,3,25,20,0,0),
-d(2028,10,28,20,0,0),
-d(2029,3,24,20,0,0),
-d(2029,10,27,20,0,0),
-d(2030,3,30,20,0,0),
-d(2030,10,26,20,0,0),
-d(2031,3,29,20,0,0),
-d(2031,10,25,20,0,0),
-d(2032,3,27,20,0,0),
-d(2032,10,30,20,0,0),
-d(2033,3,26,20,0,0),
-d(2033,10,29,20,0,0),
-d(2034,3,25,20,0,0),
-d(2034,10,28,20,0,0),
-d(2035,3,24,20,0,0),
-d(2035,10,27,20,0,0),
-d(2036,3,29,20,0,0),
-d(2036,10,25,20,0,0),
-d(2037,3,28,20,0,0),
-d(2037,10,24,20,0,0),
- ]
-
- _transition_info = [
-i(19920,0,'LMT'),
-i(21600,0,'NOVT'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(25200,0,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVT'),
-i(28800,3600,'NOVST'),
-i(25200,0,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
-i(25200,3600,'NOVST'),
-i(21600,0,'NOVT'),
- ]
-
-Novosibirsk = Novosibirsk()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Omsk.py b/vendor/pytz/zoneinfo/Asia/Omsk.py
deleted file mode 100644
index 3c74a39f..00000000
--- a/vendor/pytz/zoneinfo/Asia/Omsk.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Omsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Omsk(DstTzInfo):
- '''Asia/Omsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Omsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,11,13,19,6,24),
-d(1930,6,20,19,0,0),
-d(1981,3,31,18,0,0),
-d(1981,9,30,17,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,17,0,0),
-d(1983,3,31,18,0,0),
-d(1983,9,30,17,0,0),
-d(1984,3,31,18,0,0),
-d(1984,9,29,20,0,0),
-d(1985,3,30,20,0,0),
-d(1985,9,28,20,0,0),
-d(1986,3,29,20,0,0),
-d(1986,9,27,20,0,0),
-d(1987,3,28,20,0,0),
-d(1987,9,26,20,0,0),
-d(1988,3,26,20,0,0),
-d(1988,9,24,20,0,0),
-d(1989,3,25,20,0,0),
-d(1989,9,23,20,0,0),
-d(1990,3,24,20,0,0),
-d(1990,9,29,20,0,0),
-d(1991,3,30,20,0,0),
-d(1991,9,28,21,0,0),
-d(1992,1,18,21,0,0),
-d(1992,3,28,17,0,0),
-d(1992,9,26,16,0,0),
-d(1993,3,27,20,0,0),
-d(1993,9,25,20,0,0),
-d(1994,3,26,20,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,20,0,0),
-d(1995,9,23,20,0,0),
-d(1996,3,30,20,0,0),
-d(1996,10,26,20,0,0),
-d(1997,3,29,20,0,0),
-d(1997,10,25,20,0,0),
-d(1998,3,28,20,0,0),
-d(1998,10,24,20,0,0),
-d(1999,3,27,20,0,0),
-d(1999,10,30,20,0,0),
-d(2000,3,25,20,0,0),
-d(2000,10,28,20,0,0),
-d(2001,3,24,20,0,0),
-d(2001,10,27,20,0,0),
-d(2002,3,30,20,0,0),
-d(2002,10,26,20,0,0),
-d(2003,3,29,20,0,0),
-d(2003,10,25,20,0,0),
-d(2004,3,27,20,0,0),
-d(2004,10,30,20,0,0),
-d(2005,3,26,20,0,0),
-d(2005,10,29,20,0,0),
-d(2006,3,25,20,0,0),
-d(2006,10,28,20,0,0),
-d(2007,3,24,20,0,0),
-d(2007,10,27,20,0,0),
-d(2008,3,29,20,0,0),
-d(2008,10,25,20,0,0),
-d(2009,3,28,20,0,0),
-d(2009,10,24,20,0,0),
-d(2010,3,27,20,0,0),
-d(2010,10,30,20,0,0),
-d(2011,3,26,20,0,0),
-d(2011,10,29,20,0,0),
-d(2012,3,24,20,0,0),
-d(2012,10,27,20,0,0),
-d(2013,3,30,20,0,0),
-d(2013,10,26,20,0,0),
-d(2014,3,29,20,0,0),
-d(2014,10,25,20,0,0),
-d(2015,3,28,20,0,0),
-d(2015,10,24,20,0,0),
-d(2016,3,26,20,0,0),
-d(2016,10,29,20,0,0),
-d(2017,3,25,20,0,0),
-d(2017,10,28,20,0,0),
-d(2018,3,24,20,0,0),
-d(2018,10,27,20,0,0),
-d(2019,3,30,20,0,0),
-d(2019,10,26,20,0,0),
-d(2020,3,28,20,0,0),
-d(2020,10,24,20,0,0),
-d(2021,3,27,20,0,0),
-d(2021,10,30,20,0,0),
-d(2022,3,26,20,0,0),
-d(2022,10,29,20,0,0),
-d(2023,3,25,20,0,0),
-d(2023,10,28,20,0,0),
-d(2024,3,30,20,0,0),
-d(2024,10,26,20,0,0),
-d(2025,3,29,20,0,0),
-d(2025,10,25,20,0,0),
-d(2026,3,28,20,0,0),
-d(2026,10,24,20,0,0),
-d(2027,3,27,20,0,0),
-d(2027,10,30,20,0,0),
-d(2028,3,25,20,0,0),
-d(2028,10,28,20,0,0),
-d(2029,3,24,20,0,0),
-d(2029,10,27,20,0,0),
-d(2030,3,30,20,0,0),
-d(2030,10,26,20,0,0),
-d(2031,3,29,20,0,0),
-d(2031,10,25,20,0,0),
-d(2032,3,27,20,0,0),
-d(2032,10,30,20,0,0),
-d(2033,3,26,20,0,0),
-d(2033,10,29,20,0,0),
-d(2034,3,25,20,0,0),
-d(2034,10,28,20,0,0),
-d(2035,3,24,20,0,0),
-d(2035,10,27,20,0,0),
-d(2036,3,29,20,0,0),
-d(2036,10,25,20,0,0),
-d(2037,3,28,20,0,0),
-d(2037,10,24,20,0,0),
- ]
-
- _transition_info = [
-i(17640,0,'LMT'),
-i(18000,0,'OMST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(21600,0,'OMSST'),
-i(18000,0,'OMST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
-i(25200,3600,'OMSST'),
-i(21600,0,'OMST'),
- ]
-
-Omsk = Omsk()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Oral.py b/vendor/pytz/zoneinfo/Asia/Oral.py
deleted file mode 100644
index 92010fff..00000000
--- a/vendor/pytz/zoneinfo/Asia/Oral.py
+++ /dev/null
@@ -1,122 +0,0 @@
-'''tzinfo timezone information for Asia/Oral.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Oral(DstTzInfo):
- '''Asia/Oral timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Oral'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,20,34,36),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,22,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,22,0,0),
-d(1990,12,31,20,0,0),
-d(1991,12,15,20,0,0),
-d(1992,3,28,19,0,0),
-d(1992,9,26,18,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,22,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,22,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,22,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,22,0,0),
-d(1997,3,29,22,0,0),
-d(1997,10,25,22,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,24,22,0,0),
-d(1999,3,27,22,0,0),
-d(1999,10,30,22,0,0),
-d(2000,3,25,22,0,0),
-d(2000,10,28,22,0,0),
-d(2001,3,24,22,0,0),
-d(2001,10,27,22,0,0),
-d(2002,3,30,22,0,0),
-d(2002,10,26,22,0,0),
-d(2003,3,29,22,0,0),
-d(2003,10,25,22,0,0),
-d(2004,3,27,22,0,0),
-d(2004,10,30,22,0,0),
-d(2005,3,14,20,0,0),
- ]
-
- _transition_info = [
-i(12300,0,'LMT'),
-i(14400,0,'URAT'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(21600,0,'URAT'),
-i(21600,0,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(21600,3600,'URAST'),
-i(18000,0,'URAT'),
-i(18000,0,'URAST'),
-i(14400,0,'URAT'),
-i(18000,3600,'URAST'),
-i(14400,0,'URAT'),
-i(14400,0,'URAT'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,3600,'ORAST'),
-i(14400,0,'ORAT'),
-i(18000,0,'ORAT'),
- ]
-
-Oral = Oral()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Phnom_Penh.py b/vendor/pytz/zoneinfo/Asia/Phnom_Penh.py
deleted file mode 100644
index e7377c5c..00000000
--- a/vendor/pytz/zoneinfo/Asia/Phnom_Penh.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Phnom_Penh.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Phnom_Penh(DstTzInfo):
- '''Asia/Phnom_Penh timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Phnom_Penh'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,6,8,17,0,20),
-d(1911,3,10,16,54,40),
-d(1912,4,30,17,0,0),
-d(1931,4,30,16,0,0),
- ]
-
- _transition_info = [
-i(25200,0,'LMT'),
-i(25560,0,'SMT'),
-i(25200,0,'ICT'),
-i(28800,0,'ICT'),
-i(25200,0,'ICT'),
- ]
-
-Phnom_Penh = Phnom_Penh()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Pontianak.py b/vendor/pytz/zoneinfo/Asia/Pontianak.py
deleted file mode 100644
index 0611e9eb..00000000
--- a/vendor/pytz/zoneinfo/Asia/Pontianak.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Asia/Pontianak.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pontianak(DstTzInfo):
- '''Asia/Pontianak timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Pontianak'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,4,30,16,42,40),
-d(1932,10,31,16,42,40),
-d(1942,1,28,16,30,0),
-d(1945,7,31,15,0,0),
-d(1948,4,30,16,30,0),
-d(1950,4,30,16,0,0),
-d(1963,12,31,16,30,0),
-d(1987,12,31,16,0,0),
- ]
-
- _transition_info = [
-i(26220,0,'LMT'),
-i(26220,0,'PMT'),
-i(27000,0,'WIT'),
-i(32400,0,'JST'),
-i(27000,0,'WIT'),
-i(28800,0,'WIT'),
-i(27000,0,'WIT'),
-i(28800,0,'CIT'),
-i(25200,0,'WIT'),
- ]
-
-Pontianak = Pontianak()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Pyongyang.py b/vendor/pytz/zoneinfo/Asia/Pyongyang.py
deleted file mode 100644
index bf203c3d..00000000
--- a/vendor/pytz/zoneinfo/Asia/Pyongyang.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Asia/Pyongyang.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pyongyang(DstTzInfo):
- '''Asia/Pyongyang timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Pyongyang'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,11,30,15,30,0),
-d(1927,12,31,15,0,0),
-d(1931,12,31,15,30,0),
-d(1954,3,20,15,0,0),
-d(1961,8,9,16,0,0),
- ]
-
- _transition_info = [
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(28800,0,'KST'),
-i(32400,0,'KST'),
- ]
-
-Pyongyang = Pyongyang()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Qatar.py b/vendor/pytz/zoneinfo/Asia/Qatar.py
deleted file mode 100644
index 746aa5ae..00000000
--- a/vendor/pytz/zoneinfo/Asia/Qatar.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Qatar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Qatar(DstTzInfo):
- '''Asia/Qatar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Qatar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,20,33,52),
-d(1972,5,31,20,0,0),
- ]
-
- _transition_info = [
-i(12360,0,'LMT'),
-i(14400,0,'GST'),
-i(10800,0,'AST'),
- ]
-
-Qatar = Qatar()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Qyzylorda.py b/vendor/pytz/zoneinfo/Asia/Qyzylorda.py
deleted file mode 100644
index 3dd7460a..00000000
--- a/vendor/pytz/zoneinfo/Asia/Qyzylorda.py
+++ /dev/null
@@ -1,124 +0,0 @@
-'''tzinfo timezone information for Asia/Qyzylorda.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Qyzylorda(DstTzInfo):
- '''Asia/Qyzylorda timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Qyzylorda'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,19,38,8),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1990,12,31,19,0,0),
-d(1991,12,15,19,0,0),
-d(1992,1,18,21,0,0),
-d(1992,3,28,17,0,0),
-d(1992,9,26,16,0,0),
-d(1993,3,27,20,0,0),
-d(1993,9,25,20,0,0),
-d(1994,3,26,20,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,20,0,0),
-d(1995,9,23,20,0,0),
-d(1996,3,30,20,0,0),
-d(1996,10,26,20,0,0),
-d(1997,3,29,20,0,0),
-d(1997,10,25,20,0,0),
-d(1998,3,28,20,0,0),
-d(1998,10,24,20,0,0),
-d(1999,3,27,20,0,0),
-d(1999,10,30,20,0,0),
-d(2000,3,25,20,0,0),
-d(2000,10,28,20,0,0),
-d(2001,3,24,20,0,0),
-d(2001,10,27,20,0,0),
-d(2002,3,30,20,0,0),
-d(2002,10,26,20,0,0),
-d(2003,3,29,20,0,0),
-d(2003,10,25,20,0,0),
-d(2004,3,27,20,0,0),
-d(2004,10,30,20,0,0),
-d(2005,3,14,18,0,0),
- ]
-
- _transition_info = [
-i(15720,0,'LMT'),
-i(14400,0,'KIZT'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(21600,0,'KIZT'),
-i(21600,0,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(21600,3600,'KIZST'),
-i(18000,0,'KIZT'),
-i(18000,0,'KIZT'),
-i(18000,0,'QYZT'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(25200,3600,'QYZST'),
-i(21600,0,'QYZT'),
-i(21600,0,'QYZT'),
- ]
-
-Qyzylorda = Qyzylorda()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Rangoon.py b/vendor/pytz/zoneinfo/Asia/Rangoon.py
deleted file mode 100644
index d8120d80..00000000
--- a/vendor/pytz/zoneinfo/Asia/Rangoon.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Asia/Rangoon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rangoon(DstTzInfo):
- '''Asia/Rangoon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Rangoon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,17,35,24),
-d(1942,4,30,17,30,0),
-d(1945,5,2,15,0,0),
- ]
-
- _transition_info = [
-i(23100,0,'RMT'),
-i(23400,0,'BURT'),
-i(32400,0,'JST'),
-i(23400,0,'MMT'),
- ]
-
-Rangoon = Rangoon()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Riyadh.py b/vendor/pytz/zoneinfo/Asia/Riyadh.py
deleted file mode 100644
index fb09cdb1..00000000
--- a/vendor/pytz/zoneinfo/Asia/Riyadh.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Asia/Riyadh.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Riyadh(DstTzInfo):
- '''Asia/Riyadh timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Riyadh'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1949,12,31,20,53,8),
- ]
-
- _transition_info = [
-i(11220,0,'LMT'),
-i(10800,0,'AST'),
- ]
-
-Riyadh = Riyadh()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Saigon.py b/vendor/pytz/zoneinfo/Asia/Saigon.py
deleted file mode 100644
index a0cfcc72..00000000
--- a/vendor/pytz/zoneinfo/Asia/Saigon.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Saigon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Saigon(DstTzInfo):
- '''Asia/Saigon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Saigon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,6,8,16,53,20),
-d(1911,3,10,16,54,40),
-d(1912,4,30,17,0,0),
-d(1931,4,30,16,0,0),
- ]
-
- _transition_info = [
-i(25620,0,'LMT'),
-i(25560,0,'SMT'),
-i(25200,0,'ICT'),
-i(28800,0,'ICT'),
-i(25200,0,'ICT'),
- ]
-
-Saigon = Saigon()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Sakhalin.py b/vendor/pytz/zoneinfo/Asia/Sakhalin.py
deleted file mode 100644
index 45a36720..00000000
--- a/vendor/pytz/zoneinfo/Asia/Sakhalin.py
+++ /dev/null
@@ -1,256 +0,0 @@
-'''tzinfo timezone information for Asia/Sakhalin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sakhalin(DstTzInfo):
- '''Asia/Sakhalin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Sakhalin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,8,22,14,29,12),
-d(1937,12,31,15,0,0),
-d(1945,8,24,15,0,0),
-d(1981,3,31,13,0,0),
-d(1981,9,30,12,0,0),
-d(1982,3,31,13,0,0),
-d(1982,9,30,12,0,0),
-d(1983,3,31,13,0,0),
-d(1983,9,30,12,0,0),
-d(1984,3,31,13,0,0),
-d(1984,9,29,15,0,0),
-d(1985,3,30,15,0,0),
-d(1985,9,28,15,0,0),
-d(1986,3,29,15,0,0),
-d(1986,9,27,15,0,0),
-d(1987,3,28,15,0,0),
-d(1987,9,26,15,0,0),
-d(1988,3,26,15,0,0),
-d(1988,9,24,15,0,0),
-d(1989,3,25,15,0,0),
-d(1989,9,23,15,0,0),
-d(1990,3,24,15,0,0),
-d(1990,9,29,15,0,0),
-d(1991,3,30,15,0,0),
-d(1991,9,28,16,0,0),
-d(1992,1,18,16,0,0),
-d(1992,3,28,12,0,0),
-d(1992,9,26,11,0,0),
-d(1993,3,27,15,0,0),
-d(1993,9,25,15,0,0),
-d(1994,3,26,15,0,0),
-d(1994,9,24,15,0,0),
-d(1995,3,25,15,0,0),
-d(1995,9,23,15,0,0),
-d(1996,3,30,15,0,0),
-d(1996,10,26,15,0,0),
-d(1997,3,29,15,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,10,28,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,3,25,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(34260,0,'LMT'),
-i(32400,0,'CJT'),
-i(32400,0,'JST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(39600,0,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(43200,3600,'SAKST'),
-i(39600,0,'SAKT'),
-i(39600,0,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
-i(39600,3600,'SAKST'),
-i(36000,0,'SAKT'),
- ]
-
-Sakhalin = Sakhalin()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Samarkand.py b/vendor/pytz/zoneinfo/Asia/Samarkand.py
deleted file mode 100644
index 1a039f74..00000000
--- a/vendor/pytz/zoneinfo/Asia/Samarkand.py
+++ /dev/null
@@ -1,72 +0,0 @@
-'''tzinfo timezone information for Asia/Samarkand.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Samarkand(DstTzInfo):
- '''Asia/Samarkand timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Samarkand'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,19,32,48),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,21,0,0),
-d(1991,8,31,18,0,0),
-d(1991,9,28,21,0,0),
-d(1991,12,31,19,0,0),
- ]
-
- _transition_info = [
-i(16020,0,'LMT'),
-i(14400,0,'SAMT'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(21600,0,'TAST'),
-i(21600,0,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(18000,0,'SAMT'),
-i(21600,3600,'SAMST'),
-i(21600,3600,'UZST'),
-i(18000,0,'UZT'),
-i(18000,0,'UZT'),
- ]
-
-Samarkand = Samarkand()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Seoul.py b/vendor/pytz/zoneinfo/Asia/Seoul.py
deleted file mode 100644
index 07b9c92b..00000000
--- a/vendor/pytz/zoneinfo/Asia/Seoul.py
+++ /dev/null
@@ -1,44 +0,0 @@
-'''tzinfo timezone information for Asia/Seoul.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Seoul(DstTzInfo):
- '''Asia/Seoul timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Seoul'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,11,30,15,30,0),
-d(1927,12,31,15,0,0),
-d(1931,12,31,15,30,0),
-d(1954,3,20,15,0,0),
-d(1960,5,14,16,0,0),
-d(1960,9,12,15,0,0),
-d(1961,8,9,16,0,0),
-d(1968,9,30,15,30,0),
-d(1987,5,9,15,0,0),
-d(1987,10,10,14,0,0),
-d(1988,5,7,15,0,0),
-d(1988,10,8,14,0,0),
- ]
-
- _transition_info = [
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(28800,0,'KST'),
-i(32400,3600,'KDT'),
-i(28800,0,'KST'),
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(36000,3600,'KDT'),
-i(32400,0,'KST'),
-i(36000,3600,'KDT'),
-i(32400,0,'KST'),
- ]
-
-Seoul = Seoul()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Shanghai.py b/vendor/pytz/zoneinfo/Asia/Shanghai.py
deleted file mode 100644
index 51f123b8..00000000
--- a/vendor/pytz/zoneinfo/Asia/Shanghai.py
+++ /dev/null
@@ -1,54 +0,0 @@
-'''tzinfo timezone information for Asia/Shanghai.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Shanghai(DstTzInfo):
- '''Asia/Shanghai timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Shanghai'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,15,54,8),
-d(1940,6,2,16,0,0),
-d(1940,9,30,15,0,0),
-d(1941,3,15,16,0,0),
-d(1941,9,30,15,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(29160,0,'LMT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Shanghai = Shanghai()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Singapore.py b/vendor/pytz/zoneinfo/Asia/Singapore.py
deleted file mode 100644
index 952f4c9e..00000000
--- a/vendor/pytz/zoneinfo/Asia/Singapore.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Asia/Singapore.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Singapore(DstTzInfo):
- '''Asia/Singapore timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Singapore'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,5,31,17,4,35),
-d(1932,12,31,17,0,0),
-d(1935,12,31,16,40,0),
-d(1941,8,31,16,40,0),
-d(1942,2,15,16,30,0),
-d(1945,9,11,15,0,0),
-d(1965,8,8,16,30,0),
-d(1981,12,31,16,30,0),
- ]
-
- _transition_info = [
-i(24900,0,'SMT'),
-i(25200,0,'MALT'),
-i(26400,1200,'MALST'),
-i(26400,0,'MALT'),
-i(27000,0,'MALT'),
-i(32400,0,'JST'),
-i(27000,0,'MALT'),
-i(27000,0,'SGT'),
-i(28800,0,'SGT'),
- ]
-
-Singapore = Singapore()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Taipei.py b/vendor/pytz/zoneinfo/Asia/Taipei.py
deleted file mode 100644
index ae23e777..00000000
--- a/vendor/pytz/zoneinfo/Asia/Taipei.py
+++ /dev/null
@@ -1,100 +0,0 @@
-'''tzinfo timezone information for Asia/Taipei.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Taipei(DstTzInfo):
- '''Asia/Taipei timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Taipei'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1945,4,30,16,0,0),
-d(1945,9,30,15,0,0),
-d(1946,4,30,16,0,0),
-d(1946,9,30,15,0,0),
-d(1947,4,30,16,0,0),
-d(1947,9,30,15,0,0),
-d(1948,4,30,16,0,0),
-d(1948,9,30,15,0,0),
-d(1949,4,30,16,0,0),
-d(1949,9,30,15,0,0),
-d(1950,4,30,16,0,0),
-d(1950,9,30,15,0,0),
-d(1951,4,30,16,0,0),
-d(1951,9,30,15,0,0),
-d(1952,2,29,16,0,0),
-d(1952,10,31,15,0,0),
-d(1953,3,31,16,0,0),
-d(1953,10,31,15,0,0),
-d(1954,3,31,16,0,0),
-d(1954,10,31,15,0,0),
-d(1955,3,31,16,0,0),
-d(1955,9,30,15,0,0),
-d(1956,3,31,16,0,0),
-d(1956,9,30,15,0,0),
-d(1957,3,31,16,0,0),
-d(1957,9,30,15,0,0),
-d(1958,3,31,16,0,0),
-d(1958,9,30,15,0,0),
-d(1959,3,31,16,0,0),
-d(1959,9,30,15,0,0),
-d(1960,5,31,16,0,0),
-d(1960,9,30,15,0,0),
-d(1961,5,31,16,0,0),
-d(1961,9,30,15,0,0),
-d(1974,3,31,16,0,0),
-d(1974,9,30,15,0,0),
-d(1975,3,31,16,0,0),
-d(1975,9,30,15,0,0),
-d(1980,6,29,16,0,0),
-d(1980,9,29,15,0,0),
- ]
-
- _transition_info = [
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Taipei = Taipei()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Tashkent.py b/vendor/pytz/zoneinfo/Asia/Tashkent.py
deleted file mode 100644
index 23ff12e4..00000000
--- a/vendor/pytz/zoneinfo/Asia/Tashkent.py
+++ /dev/null
@@ -1,72 +0,0 @@
-'''tzinfo timezone information for Asia/Tashkent.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tashkent(DstTzInfo):
- '''Asia/Tashkent timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Tashkent'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,19,22,48),
-d(1930,6,20,19,0,0),
-d(1981,3,31,18,0,0),
-d(1981,9,30,17,0,0),
-d(1982,3,31,18,0,0),
-d(1982,9,30,17,0,0),
-d(1983,3,31,18,0,0),
-d(1983,9,30,17,0,0),
-d(1984,3,31,18,0,0),
-d(1984,9,29,20,0,0),
-d(1985,3,30,20,0,0),
-d(1985,9,28,20,0,0),
-d(1986,3,29,20,0,0),
-d(1986,9,27,20,0,0),
-d(1987,3,28,20,0,0),
-d(1987,9,26,20,0,0),
-d(1988,3,26,20,0,0),
-d(1988,9,24,20,0,0),
-d(1989,3,25,20,0,0),
-d(1989,9,23,20,0,0),
-d(1990,3,24,20,0,0),
-d(1990,9,29,20,0,0),
-d(1991,3,30,20,0,0),
-d(1991,8,31,18,0,0),
-d(1991,9,28,21,0,0),
-d(1991,12,31,19,0,0),
- ]
-
- _transition_info = [
-i(16620,0,'LMT'),
-i(18000,0,'TAST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(25200,3600,'TASST'),
-i(21600,0,'TAST'),
-i(21600,0,'TASST'),
-i(21600,0,'UZST'),
-i(18000,0,'UZT'),
-i(18000,0,'UZT'),
- ]
-
-Tashkent = Tashkent()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Tbilisi.py b/vendor/pytz/zoneinfo/Asia/Tbilisi.py
deleted file mode 100644
index 739a7513..00000000
--- a/vendor/pytz/zoneinfo/Asia/Tbilisi.py
+++ /dev/null
@@ -1,126 +0,0 @@
-'''tzinfo timezone information for Asia/Tbilisi.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tbilisi(DstTzInfo):
- '''Asia/Tbilisi timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Tbilisi'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,21,0,44),
-d(1957,2,28,21,0,0),
-d(1981,3,31,20,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,20,0,0),
-d(1982,9,30,19,0,0),
-d(1983,3,31,20,0,0),
-d(1983,9,30,19,0,0),
-d(1984,3,31,20,0,0),
-d(1984,9,29,22,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,22,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,22,0,0),
-d(1991,3,30,22,0,0),
-d(1991,4,8,20,0,0),
-d(1991,9,28,23,0,0),
-d(1991,12,31,21,0,0),
-d(1992,3,28,21,0,0),
-d(1992,9,26,20,0,0),
-d(1993,3,27,21,0,0),
-d(1993,9,25,20,0,0),
-d(1994,3,26,21,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,20,0,0),
-d(1995,9,23,19,0,0),
-d(1996,3,30,20,0,0),
-d(1997,3,29,19,0,0),
-d(1997,10,25,19,0,0),
-d(1998,3,28,20,0,0),
-d(1998,10,24,19,0,0),
-d(1999,3,27,20,0,0),
-d(1999,10,30,19,0,0),
-d(2000,3,25,20,0,0),
-d(2000,10,28,19,0,0),
-d(2001,3,24,20,0,0),
-d(2001,10,27,19,0,0),
-d(2002,3,30,20,0,0),
-d(2002,10,26,19,0,0),
-d(2003,3,29,20,0,0),
-d(2003,10,25,19,0,0),
-d(2004,3,27,20,0,0),
-d(2004,6,26,19,0,0),
-d(2004,10,30,23,0,0),
-d(2005,3,26,23,0,0),
- ]
-
- _transition_info = [
-i(10740,0,'TBMT'),
-i(10800,0,'TBIT'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(18000,3600,'TBIST'),
-i(14400,0,'TBIT'),
-i(14400,0,'TBIST'),
-i(14400,0,'GEST'),
-i(10800,0,'GET'),
-i(10800,0,'GET'),
-i(14400,3600,'GEST'),
-i(10800,0,'GET'),
-i(14400,3600,'GEST'),
-i(10800,0,'GET'),
-i(14400,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GET'),
-i(18000,3600,'GEST'),
-i(14400,0,'GEST'),
-i(10800,0,'GET'),
-i(14400,0,'GET'),
- ]
-
-Tbilisi = Tbilisi()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Tehran.py b/vendor/pytz/zoneinfo/Asia/Tehran.py
deleted file mode 100644
index 4da64aef..00000000
--- a/vendor/pytz/zoneinfo/Asia/Tehran.py
+++ /dev/null
@@ -1,100 +0,0 @@
-'''tzinfo timezone information for Asia/Tehran.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tehran(DstTzInfo):
- '''Asia/Tehran timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Tehran'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,12,31,20,34,16),
-d(1945,12,31,20,34,16),
-d(1977,10,31,20,30,0),
-d(1978,3,20,20,0,0),
-d(1978,10,20,19,0,0),
-d(1978,12,31,20,0,0),
-d(1979,3,20,20,30,0),
-d(1979,9,18,19,30,0),
-d(1980,3,20,20,30,0),
-d(1980,9,22,19,30,0),
-d(1991,5,2,20,30,0),
-d(1991,9,21,19,30,0),
-d(1992,3,21,20,30,0),
-d(1992,9,21,19,30,0),
-d(1993,3,21,20,30,0),
-d(1993,9,21,19,30,0),
-d(1994,3,21,20,30,0),
-d(1994,9,21,19,30,0),
-d(1995,3,21,20,30,0),
-d(1995,9,21,19,30,0),
-d(1996,3,20,20,30,0),
-d(1996,9,20,19,30,0),
-d(1997,3,21,20,30,0),
-d(1997,9,21,19,30,0),
-d(1998,3,21,20,30,0),
-d(1998,9,21,19,30,0),
-d(1999,3,21,20,30,0),
-d(1999,9,21,19,30,0),
-d(2000,3,20,20,30,0),
-d(2000,9,20,19,30,0),
-d(2001,3,21,20,30,0),
-d(2001,9,21,19,30,0),
-d(2002,3,21,20,30,0),
-d(2002,9,21,19,30,0),
-d(2003,3,21,20,30,0),
-d(2003,9,21,19,30,0),
-d(2004,3,20,20,30,0),
-d(2004,9,20,19,30,0),
-d(2005,3,21,20,30,0),
-d(2005,9,21,19,30,0),
- ]
-
- _transition_info = [
-i(12360,0,'LMT'),
-i(12360,0,'TMT'),
-i(12600,0,'IRST'),
-i(14400,0,'IRST'),
-i(18000,3600,'IRDT'),
-i(14400,0,'IRST'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
- ]
-
-Tehran = Tehran()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Tel_Aviv.py b/vendor/pytz/zoneinfo/Asia/Tel_Aviv.py
deleted file mode 100644
index c02fb2da..00000000
--- a/vendor/pytz/zoneinfo/Asia/Tel_Aviv.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for Asia/Tel_Aviv.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tel_Aviv(DstTzInfo):
- '''Asia/Tel_Aviv timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Tel_Aviv'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,12,31,21,39,20),
-d(1940,5,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1943,4,1,0,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,23,0,0),
-d(1946,4,16,0,0,0),
-d(1946,10,31,21,0,0),
-d(1948,5,22,22,0,0),
-d(1948,8,31,20,0,0),
-d(1948,10,31,23,0,0),
-d(1949,4,30,22,0,0),
-d(1949,10,31,23,0,0),
-d(1950,4,15,22,0,0),
-d(1950,9,15,0,0,0),
-d(1951,3,31,22,0,0),
-d(1951,11,11,0,0,0),
-d(1952,4,20,0,0,0),
-d(1952,10,19,0,0,0),
-d(1953,4,12,0,0,0),
-d(1953,9,13,0,0,0),
-d(1954,6,12,22,0,0),
-d(1954,9,11,21,0,0),
-d(1955,6,11,0,0,0),
-d(1955,9,10,21,0,0),
-d(1956,6,2,22,0,0),
-d(1956,9,30,0,0,0),
-d(1957,4,29,0,0,0),
-d(1957,9,21,21,0,0),
-d(1974,7,6,22,0,0),
-d(1974,10,12,21,0,0),
-d(1975,4,19,22,0,0),
-d(1975,8,30,21,0,0),
-d(1985,4,13,22,0,0),
-d(1985,9,14,21,0,0),
-d(1986,5,17,22,0,0),
-d(1986,9,6,21,0,0),
-d(1987,4,14,22,0,0),
-d(1987,9,12,21,0,0),
-d(1988,4,8,22,0,0),
-d(1988,9,2,21,0,0),
-d(1989,4,29,22,0,0),
-d(1989,9,2,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,8,25,21,0,0),
-d(1991,3,23,22,0,0),
-d(1991,8,31,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,5,21,0,0),
-d(1993,4,1,22,0,0),
-d(1993,9,4,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,8,27,21,0,0),
-d(1995,3,30,22,0,0),
-d(1995,9,2,21,0,0),
-d(1996,3,14,22,0,0),
-d(1996,9,15,21,0,0),
-d(1997,3,20,22,0,0),
-d(1997,9,13,21,0,0),
-d(1998,3,19,22,0,0),
-d(1998,9,5,21,0,0),
-d(1999,4,2,0,0,0),
-d(1999,9,2,23,0,0),
-d(2000,4,14,0,0,0),
-d(2000,10,5,22,0,0),
-d(2001,4,8,23,0,0),
-d(2001,9,23,22,0,0),
-d(2002,3,28,23,0,0),
-d(2002,10,6,22,0,0),
-d(2003,3,27,23,0,0),
-d(2003,10,2,22,0,0),
-d(2004,4,6,23,0,0),
-d(2004,9,21,22,0,0),
-d(2005,4,1,0,0,0),
-d(2005,10,8,23,0,0),
-d(2006,3,31,0,0,0),
-d(2006,9,30,23,0,0),
-d(2007,3,30,0,0,0),
-d(2007,9,15,23,0,0),
-d(2008,3,28,0,0,0),
-d(2008,10,4,23,0,0),
-d(2009,3,27,0,0,0),
-d(2009,9,26,23,0,0),
-d(2010,3,26,0,0,0),
-d(2010,9,11,23,0,0),
-d(2011,4,1,0,0,0),
-d(2011,10,1,23,0,0),
-d(2012,3,30,0,0,0),
-d(2012,9,22,23,0,0),
-d(2013,3,29,0,0,0),
-d(2013,9,7,23,0,0),
-d(2014,3,28,0,0,0),
-d(2014,9,27,23,0,0),
-d(2015,3,27,0,0,0),
-d(2015,9,19,23,0,0),
-d(2016,4,1,0,0,0),
-d(2016,10,8,23,0,0),
-d(2017,3,31,0,0,0),
-d(2017,9,23,23,0,0),
-d(2018,3,30,0,0,0),
-d(2018,9,15,23,0,0),
-d(2019,3,29,0,0,0),
-d(2019,10,5,23,0,0),
-d(2020,3,27,0,0,0),
-d(2020,9,26,23,0,0),
-d(2021,3,26,0,0,0),
-d(2021,9,11,23,0,0),
-d(2022,4,1,0,0,0),
-d(2022,10,1,23,0,0),
-d(2023,3,31,0,0,0),
-d(2023,9,23,23,0,0),
-d(2024,3,29,0,0,0),
-d(2024,10,5,23,0,0),
-d(2025,3,28,0,0,0),
-d(2025,9,27,23,0,0),
-d(2026,3,27,0,0,0),
-d(2026,9,19,23,0,0),
-d(2027,3,26,0,0,0),
-d(2027,10,9,23,0,0),
-d(2028,3,31,0,0,0),
-d(2028,9,23,23,0,0),
-d(2029,3,30,0,0,0),
-d(2029,9,15,23,0,0),
-d(2030,3,29,0,0,0),
-d(2030,10,5,23,0,0),
-d(2031,3,28,0,0,0),
-d(2031,9,20,23,0,0),
-d(2032,3,26,0,0,0),
-d(2032,9,11,23,0,0),
-d(2033,4,1,0,0,0),
-d(2033,10,1,23,0,0),
-d(2034,3,31,0,0,0),
-d(2034,9,16,23,0,0),
-d(2035,3,30,0,0,0),
-d(2035,10,6,23,0,0),
-d(2036,3,28,0,0,0),
-d(2036,9,27,23,0,0),
-d(2037,3,27,0,0,0),
-d(2037,9,12,23,0,0),
- ]
-
- _transition_info = [
-i(8460,0,'JMT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(14400,7200,'IDDT'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
- ]
-
-Tel_Aviv = Tel_Aviv()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Thimbu.py b/vendor/pytz/zoneinfo/Asia/Thimbu.py
deleted file mode 100644
index adbcb013..00000000
--- a/vendor/pytz/zoneinfo/Asia/Thimbu.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Thimbu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Thimbu(DstTzInfo):
- '''Asia/Thimbu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Thimbu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1947,8,14,18,1,24),
-d(1987,9,30,18,30,0),
- ]
-
- _transition_info = [
-i(21540,0,'LMT'),
-i(19800,0,'IST'),
-i(21600,0,'BTT'),
- ]
-
-Thimbu = Thimbu()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Thimphu.py b/vendor/pytz/zoneinfo/Asia/Thimphu.py
deleted file mode 100644
index 95da5a48..00000000
--- a/vendor/pytz/zoneinfo/Asia/Thimphu.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Asia/Thimphu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Thimphu(DstTzInfo):
- '''Asia/Thimphu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Thimphu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1947,8,14,18,1,24),
-d(1987,9,30,18,30,0),
- ]
-
- _transition_info = [
-i(21540,0,'LMT'),
-i(19800,0,'IST'),
-i(21600,0,'BTT'),
- ]
-
-Thimphu = Thimphu()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Tokyo.py b/vendor/pytz/zoneinfo/Asia/Tokyo.py
deleted file mode 100644
index 887d1307..00000000
--- a/vendor/pytz/zoneinfo/Asia/Tokyo.py
+++ /dev/null
@@ -1,38 +0,0 @@
-'''tzinfo timezone information for Asia/Tokyo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tokyo(DstTzInfo):
- '''Asia/Tokyo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Tokyo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1937,12,31,15,0,0),
-d(1948,5,1,17,0,0),
-d(1948,9,10,16,0,0),
-d(1949,4,2,17,0,0),
-d(1949,9,9,16,0,0),
-d(1950,5,6,17,0,0),
-d(1950,9,8,16,0,0),
-d(1951,5,5,17,0,0),
-d(1951,9,7,16,0,0),
- ]
-
- _transition_info = [
-i(32400,0,'CJT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
- ]
-
-Tokyo = Tokyo()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Ujung_Pandang.py b/vendor/pytz/zoneinfo/Asia/Ujung_Pandang.py
deleted file mode 100644
index d4b8ba26..00000000
--- a/vendor/pytz/zoneinfo/Asia/Ujung_Pandang.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Ujung_Pandang.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ujung_Pandang(DstTzInfo):
- '''Asia/Ujung_Pandang timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Ujung_Pandang'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,16,2,24),
-d(1932,10,31,16,2,24),
-d(1942,2,8,16,0,0),
-d(1945,7,31,15,0,0),
- ]
-
- _transition_info = [
-i(28680,0,'LMT'),
-i(28680,0,'MMT'),
-i(28800,0,'CIT'),
-i(32400,0,'JST'),
-i(28800,0,'CIT'),
- ]
-
-Ujung_Pandang = Ujung_Pandang()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Ulaanbaatar.py b/vendor/pytz/zoneinfo/Asia/Ulaanbaatar.py
deleted file mode 100644
index 44837d89..00000000
--- a/vendor/pytz/zoneinfo/Asia/Ulaanbaatar.py
+++ /dev/null
@@ -1,236 +0,0 @@
-'''tzinfo timezone information for Asia/Ulaanbaatar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ulaanbaatar(DstTzInfo):
- '''Asia/Ulaanbaatar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Ulaanbaatar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,7,31,16,52,28),
-d(1977,12,31,17,0,0),
-d(1983,3,31,16,0,0),
-d(1983,9,30,15,0,0),
-d(1984,3,31,16,0,0),
-d(1984,9,29,15,0,0),
-d(1985,3,30,16,0,0),
-d(1985,9,28,15,0,0),
-d(1986,3,29,16,0,0),
-d(1986,9,27,15,0,0),
-d(1987,3,28,16,0,0),
-d(1987,9,26,15,0,0),
-d(1988,3,26,16,0,0),
-d(1988,9,24,15,0,0),
-d(1989,3,25,16,0,0),
-d(1989,9,23,15,0,0),
-d(1990,3,24,16,0,0),
-d(1990,9,29,15,0,0),
-d(1991,3,30,16,0,0),
-d(1991,9,28,15,0,0),
-d(1992,3,28,16,0,0),
-d(1992,9,26,15,0,0),
-d(1993,3,27,16,0,0),
-d(1993,9,25,15,0,0),
-d(1994,3,26,16,0,0),
-d(1994,9,24,15,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,23,15,0,0),
-d(1996,3,30,16,0,0),
-d(1996,9,28,15,0,0),
-d(1997,3,29,16,0,0),
-d(1997,9,27,15,0,0),
-d(1998,3,28,16,0,0),
-d(1998,9,26,15,0,0),
-d(2001,4,27,18,0,0),
-d(2001,9,28,17,0,0),
-d(2002,3,29,18,0,0),
-d(2002,9,27,17,0,0),
-d(2003,3,28,18,0,0),
-d(2003,9,26,17,0,0),
-d(2004,3,26,18,0,0),
-d(2004,9,24,17,0,0),
-d(2005,3,25,18,0,0),
-d(2005,9,23,17,0,0),
-d(2006,3,24,18,0,0),
-d(2006,9,29,17,0,0),
-d(2007,3,30,18,0,0),
-d(2007,9,28,17,0,0),
-d(2008,3,28,18,0,0),
-d(2008,9,26,17,0,0),
-d(2009,3,27,18,0,0),
-d(2009,9,25,17,0,0),
-d(2010,3,26,18,0,0),
-d(2010,9,24,17,0,0),
-d(2011,3,25,18,0,0),
-d(2011,9,23,17,0,0),
-d(2012,3,30,18,0,0),
-d(2012,9,28,17,0,0),
-d(2013,3,29,18,0,0),
-d(2013,9,27,17,0,0),
-d(2014,3,28,18,0,0),
-d(2014,9,26,17,0,0),
-d(2015,3,27,18,0,0),
-d(2015,9,25,17,0,0),
-d(2016,3,25,18,0,0),
-d(2016,9,23,17,0,0),
-d(2017,3,24,18,0,0),
-d(2017,9,29,17,0,0),
-d(2018,3,30,18,0,0),
-d(2018,9,28,17,0,0),
-d(2019,3,29,18,0,0),
-d(2019,9,27,17,0,0),
-d(2020,3,27,18,0,0),
-d(2020,9,25,17,0,0),
-d(2021,3,26,18,0,0),
-d(2021,9,24,17,0,0),
-d(2022,3,25,18,0,0),
-d(2022,9,23,17,0,0),
-d(2023,3,24,18,0,0),
-d(2023,9,29,17,0,0),
-d(2024,3,29,18,0,0),
-d(2024,9,27,17,0,0),
-d(2025,3,28,18,0,0),
-d(2025,9,26,17,0,0),
-d(2026,3,27,18,0,0),
-d(2026,9,25,17,0,0),
-d(2027,3,26,18,0,0),
-d(2027,9,24,17,0,0),
-d(2028,3,24,18,0,0),
-d(2028,9,29,17,0,0),
-d(2029,3,30,18,0,0),
-d(2029,9,28,17,0,0),
-d(2030,3,29,18,0,0),
-d(2030,9,27,17,0,0),
-d(2031,3,28,18,0,0),
-d(2031,9,26,17,0,0),
-d(2032,3,26,18,0,0),
-d(2032,9,24,17,0,0),
-d(2033,3,25,18,0,0),
-d(2033,9,23,17,0,0),
-d(2034,3,24,18,0,0),
-d(2034,9,29,17,0,0),
-d(2035,3,30,18,0,0),
-d(2035,9,28,17,0,0),
-d(2036,3,28,18,0,0),
-d(2036,9,26,17,0,0),
-d(2037,3,27,18,0,0),
-d(2037,9,25,17,0,0),
- ]
-
- _transition_info = [
-i(25680,0,'LMT'),
-i(25200,0,'ULAT'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
- ]
-
-Ulaanbaatar = Ulaanbaatar()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Ulan_Bator.py b/vendor/pytz/zoneinfo/Asia/Ulan_Bator.py
deleted file mode 100644
index 9770b55f..00000000
--- a/vendor/pytz/zoneinfo/Asia/Ulan_Bator.py
+++ /dev/null
@@ -1,236 +0,0 @@
-'''tzinfo timezone information for Asia/Ulan_Bator.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ulan_Bator(DstTzInfo):
- '''Asia/Ulan_Bator timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Ulan_Bator'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,7,31,16,52,28),
-d(1977,12,31,17,0,0),
-d(1983,3,31,16,0,0),
-d(1983,9,30,15,0,0),
-d(1984,3,31,16,0,0),
-d(1984,9,29,15,0,0),
-d(1985,3,30,16,0,0),
-d(1985,9,28,15,0,0),
-d(1986,3,29,16,0,0),
-d(1986,9,27,15,0,0),
-d(1987,3,28,16,0,0),
-d(1987,9,26,15,0,0),
-d(1988,3,26,16,0,0),
-d(1988,9,24,15,0,0),
-d(1989,3,25,16,0,0),
-d(1989,9,23,15,0,0),
-d(1990,3,24,16,0,0),
-d(1990,9,29,15,0,0),
-d(1991,3,30,16,0,0),
-d(1991,9,28,15,0,0),
-d(1992,3,28,16,0,0),
-d(1992,9,26,15,0,0),
-d(1993,3,27,16,0,0),
-d(1993,9,25,15,0,0),
-d(1994,3,26,16,0,0),
-d(1994,9,24,15,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,23,15,0,0),
-d(1996,3,30,16,0,0),
-d(1996,9,28,15,0,0),
-d(1997,3,29,16,0,0),
-d(1997,9,27,15,0,0),
-d(1998,3,28,16,0,0),
-d(1998,9,26,15,0,0),
-d(2001,4,27,18,0,0),
-d(2001,9,28,17,0,0),
-d(2002,3,29,18,0,0),
-d(2002,9,27,17,0,0),
-d(2003,3,28,18,0,0),
-d(2003,9,26,17,0,0),
-d(2004,3,26,18,0,0),
-d(2004,9,24,17,0,0),
-d(2005,3,25,18,0,0),
-d(2005,9,23,17,0,0),
-d(2006,3,24,18,0,0),
-d(2006,9,29,17,0,0),
-d(2007,3,30,18,0,0),
-d(2007,9,28,17,0,0),
-d(2008,3,28,18,0,0),
-d(2008,9,26,17,0,0),
-d(2009,3,27,18,0,0),
-d(2009,9,25,17,0,0),
-d(2010,3,26,18,0,0),
-d(2010,9,24,17,0,0),
-d(2011,3,25,18,0,0),
-d(2011,9,23,17,0,0),
-d(2012,3,30,18,0,0),
-d(2012,9,28,17,0,0),
-d(2013,3,29,18,0,0),
-d(2013,9,27,17,0,0),
-d(2014,3,28,18,0,0),
-d(2014,9,26,17,0,0),
-d(2015,3,27,18,0,0),
-d(2015,9,25,17,0,0),
-d(2016,3,25,18,0,0),
-d(2016,9,23,17,0,0),
-d(2017,3,24,18,0,0),
-d(2017,9,29,17,0,0),
-d(2018,3,30,18,0,0),
-d(2018,9,28,17,0,0),
-d(2019,3,29,18,0,0),
-d(2019,9,27,17,0,0),
-d(2020,3,27,18,0,0),
-d(2020,9,25,17,0,0),
-d(2021,3,26,18,0,0),
-d(2021,9,24,17,0,0),
-d(2022,3,25,18,0,0),
-d(2022,9,23,17,0,0),
-d(2023,3,24,18,0,0),
-d(2023,9,29,17,0,0),
-d(2024,3,29,18,0,0),
-d(2024,9,27,17,0,0),
-d(2025,3,28,18,0,0),
-d(2025,9,26,17,0,0),
-d(2026,3,27,18,0,0),
-d(2026,9,25,17,0,0),
-d(2027,3,26,18,0,0),
-d(2027,9,24,17,0,0),
-d(2028,3,24,18,0,0),
-d(2028,9,29,17,0,0),
-d(2029,3,30,18,0,0),
-d(2029,9,28,17,0,0),
-d(2030,3,29,18,0,0),
-d(2030,9,27,17,0,0),
-d(2031,3,28,18,0,0),
-d(2031,9,26,17,0,0),
-d(2032,3,26,18,0,0),
-d(2032,9,24,17,0,0),
-d(2033,3,25,18,0,0),
-d(2033,9,23,17,0,0),
-d(2034,3,24,18,0,0),
-d(2034,9,29,17,0,0),
-d(2035,3,30,18,0,0),
-d(2035,9,28,17,0,0),
-d(2036,3,28,18,0,0),
-d(2036,9,26,17,0,0),
-d(2037,3,27,18,0,0),
-d(2037,9,25,17,0,0),
- ]
-
- _transition_info = [
-i(25680,0,'LMT'),
-i(25200,0,'ULAT'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
-i(32400,3600,'ULAST'),
-i(28800,0,'ULAT'),
- ]
-
-Ulan_Bator = Ulan_Bator()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Urumqi.py b/vendor/pytz/zoneinfo/Asia/Urumqi.py
deleted file mode 100644
index 8d0d686f..00000000
--- a/vendor/pytz/zoneinfo/Asia/Urumqi.py
+++ /dev/null
@@ -1,48 +0,0 @@
-'''tzinfo timezone information for Asia/Urumqi.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Urumqi(DstTzInfo):
- '''Asia/Urumqi timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Urumqi'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,18,9,40),
-d(1980,4,30,18,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(21000,0,'LMT'),
-i(21600,0,'URUT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-Urumqi = Urumqi()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Vientiane.py b/vendor/pytz/zoneinfo/Asia/Vientiane.py
deleted file mode 100644
index 60f57c66..00000000
--- a/vendor/pytz/zoneinfo/Asia/Vientiane.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Asia/Vientiane.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vientiane(DstTzInfo):
- '''Asia/Vientiane timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Vientiane'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,6,8,17,9,36),
-d(1911,3,10,16,54,40),
-d(1912,4,30,17,0,0),
-d(1931,4,30,16,0,0),
- ]
-
- _transition_info = [
-i(24600,0,'LMT'),
-i(25560,0,'SMT'),
-i(25200,0,'ICT'),
-i(28800,0,'ICT'),
-i(25200,0,'ICT'),
- ]
-
-Vientiane = Vientiane()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Vladivostok.py b/vendor/pytz/zoneinfo/Asia/Vladivostok.py
deleted file mode 100644
index 95a112ce..00000000
--- a/vendor/pytz/zoneinfo/Asia/Vladivostok.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Vladivostok.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vladivostok(DstTzInfo):
- '''Asia/Vladivostok timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Vladivostok'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,11,14,15,12,16),
-d(1930,6,20,15,0,0),
-d(1981,3,31,14,0,0),
-d(1981,9,30,13,0,0),
-d(1982,3,31,14,0,0),
-d(1982,9,30,13,0,0),
-d(1983,3,31,14,0,0),
-d(1983,9,30,13,0,0),
-d(1984,3,31,14,0,0),
-d(1984,9,29,16,0,0),
-d(1985,3,30,16,0,0),
-d(1985,9,28,16,0,0),
-d(1986,3,29,16,0,0),
-d(1986,9,27,16,0,0),
-d(1987,3,28,16,0,0),
-d(1987,9,26,16,0,0),
-d(1988,3,26,16,0,0),
-d(1988,9,24,16,0,0),
-d(1989,3,25,16,0,0),
-d(1989,9,23,16,0,0),
-d(1990,3,24,16,0,0),
-d(1990,9,29,16,0,0),
-d(1991,3,30,16,0,0),
-d(1991,9,28,17,0,0),
-d(1992,1,18,17,0,0),
-d(1992,3,28,13,0,0),
-d(1992,9,26,12,0,0),
-d(1993,3,27,16,0,0),
-d(1993,9,25,16,0,0),
-d(1994,3,26,16,0,0),
-d(1994,9,24,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,23,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,10,28,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,3,25,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(31680,0,'LMT'),
-i(32400,0,'VLAT'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(36000,0,'VLASST'),
-i(32400,0,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
-i(39600,3600,'VLAST'),
-i(36000,0,'VLAT'),
- ]
-
-Vladivostok = Vladivostok()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Yakutsk.py b/vendor/pytz/zoneinfo/Asia/Yakutsk.py
deleted file mode 100644
index 5283f1fc..00000000
--- a/vendor/pytz/zoneinfo/Asia/Yakutsk.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Yakutsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yakutsk(DstTzInfo):
- '''Asia/Yakutsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Yakutsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,14,15,21,20),
-d(1930,6,20,16,0,0),
-d(1981,3,31,15,0,0),
-d(1981,9,30,14,0,0),
-d(1982,3,31,15,0,0),
-d(1982,9,30,14,0,0),
-d(1983,3,31,15,0,0),
-d(1983,9,30,14,0,0),
-d(1984,3,31,15,0,0),
-d(1984,9,29,17,0,0),
-d(1985,3,30,17,0,0),
-d(1985,9,28,17,0,0),
-d(1986,3,29,17,0,0),
-d(1986,9,27,17,0,0),
-d(1987,3,28,17,0,0),
-d(1987,9,26,17,0,0),
-d(1988,3,26,17,0,0),
-d(1988,9,24,17,0,0),
-d(1989,3,25,17,0,0),
-d(1989,9,23,17,0,0),
-d(1990,3,24,17,0,0),
-d(1990,9,29,17,0,0),
-d(1991,3,30,17,0,0),
-d(1991,9,28,18,0,0),
-d(1992,1,18,18,0,0),
-d(1992,3,28,14,0,0),
-d(1992,9,26,13,0,0),
-d(1993,3,27,17,0,0),
-d(1993,9,25,17,0,0),
-d(1994,3,26,17,0,0),
-d(1994,9,24,17,0,0),
-d(1995,3,25,17,0,0),
-d(1995,9,23,17,0,0),
-d(1996,3,30,17,0,0),
-d(1996,10,26,17,0,0),
-d(1997,3,29,17,0,0),
-d(1997,10,25,17,0,0),
-d(1998,3,28,17,0,0),
-d(1998,10,24,17,0,0),
-d(1999,3,27,17,0,0),
-d(1999,10,30,17,0,0),
-d(2000,3,25,17,0,0),
-d(2000,10,28,17,0,0),
-d(2001,3,24,17,0,0),
-d(2001,10,27,17,0,0),
-d(2002,3,30,17,0,0),
-d(2002,10,26,17,0,0),
-d(2003,3,29,17,0,0),
-d(2003,10,25,17,0,0),
-d(2004,3,27,17,0,0),
-d(2004,10,30,17,0,0),
-d(2005,3,26,17,0,0),
-d(2005,10,29,17,0,0),
-d(2006,3,25,17,0,0),
-d(2006,10,28,17,0,0),
-d(2007,3,24,17,0,0),
-d(2007,10,27,17,0,0),
-d(2008,3,29,17,0,0),
-d(2008,10,25,17,0,0),
-d(2009,3,28,17,0,0),
-d(2009,10,24,17,0,0),
-d(2010,3,27,17,0,0),
-d(2010,10,30,17,0,0),
-d(2011,3,26,17,0,0),
-d(2011,10,29,17,0,0),
-d(2012,3,24,17,0,0),
-d(2012,10,27,17,0,0),
-d(2013,3,30,17,0,0),
-d(2013,10,26,17,0,0),
-d(2014,3,29,17,0,0),
-d(2014,10,25,17,0,0),
-d(2015,3,28,17,0,0),
-d(2015,10,24,17,0,0),
-d(2016,3,26,17,0,0),
-d(2016,10,29,17,0,0),
-d(2017,3,25,17,0,0),
-d(2017,10,28,17,0,0),
-d(2018,3,24,17,0,0),
-d(2018,10,27,17,0,0),
-d(2019,3,30,17,0,0),
-d(2019,10,26,17,0,0),
-d(2020,3,28,17,0,0),
-d(2020,10,24,17,0,0),
-d(2021,3,27,17,0,0),
-d(2021,10,30,17,0,0),
-d(2022,3,26,17,0,0),
-d(2022,10,29,17,0,0),
-d(2023,3,25,17,0,0),
-d(2023,10,28,17,0,0),
-d(2024,3,30,17,0,0),
-d(2024,10,26,17,0,0),
-d(2025,3,29,17,0,0),
-d(2025,10,25,17,0,0),
-d(2026,3,28,17,0,0),
-d(2026,10,24,17,0,0),
-d(2027,3,27,17,0,0),
-d(2027,10,30,17,0,0),
-d(2028,3,25,17,0,0),
-d(2028,10,28,17,0,0),
-d(2029,3,24,17,0,0),
-d(2029,10,27,17,0,0),
-d(2030,3,30,17,0,0),
-d(2030,10,26,17,0,0),
-d(2031,3,29,17,0,0),
-d(2031,10,25,17,0,0),
-d(2032,3,27,17,0,0),
-d(2032,10,30,17,0,0),
-d(2033,3,26,17,0,0),
-d(2033,10,29,17,0,0),
-d(2034,3,25,17,0,0),
-d(2034,10,28,17,0,0),
-d(2035,3,24,17,0,0),
-d(2035,10,27,17,0,0),
-d(2036,3,29,17,0,0),
-d(2036,10,25,17,0,0),
-d(2037,3,28,17,0,0),
-d(2037,10,24,17,0,0),
- ]
-
- _transition_info = [
-i(31140,0,'LMT'),
-i(28800,0,'YAKT'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(32400,0,'YAKST'),
-i(28800,0,'YAKT'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
-i(36000,3600,'YAKST'),
-i(32400,0,'YAKT'),
- ]
-
-Yakutsk = Yakutsk()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Yekaterinburg.py b/vendor/pytz/zoneinfo/Asia/Yekaterinburg.py
deleted file mode 100644
index bc01842c..00000000
--- a/vendor/pytz/zoneinfo/Asia/Yekaterinburg.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Asia/Yekaterinburg.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yekaterinburg(DstTzInfo):
- '''Asia/Yekaterinburg timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Yekaterinburg'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,7,14,23,57,36),
-d(1930,6,20,20,0,0),
-d(1981,3,31,19,0,0),
-d(1981,9,30,18,0,0),
-d(1982,3,31,19,0,0),
-d(1982,9,30,18,0,0),
-d(1983,3,31,19,0,0),
-d(1983,9,30,18,0,0),
-d(1984,3,31,19,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,21,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,21,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,21,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,21,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,21,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,21,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,21,0,0),
-d(1991,9,28,22,0,0),
-d(1992,1,18,22,0,0),
-d(1992,3,28,18,0,0),
-d(1992,9,26,17,0,0),
-d(1993,3,27,21,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,21,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,21,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,21,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,29,21,0,0),
-d(1997,10,25,21,0,0),
-d(1998,3,28,21,0,0),
-d(1998,10,24,21,0,0),
-d(1999,3,27,21,0,0),
-d(1999,10,30,21,0,0),
-d(2000,3,25,21,0,0),
-d(2000,10,28,21,0,0),
-d(2001,3,24,21,0,0),
-d(2001,10,27,21,0,0),
-d(2002,3,30,21,0,0),
-d(2002,10,26,21,0,0),
-d(2003,3,29,21,0,0),
-d(2003,10,25,21,0,0),
-d(2004,3,27,21,0,0),
-d(2004,10,30,21,0,0),
-d(2005,3,26,21,0,0),
-d(2005,10,29,21,0,0),
-d(2006,3,25,21,0,0),
-d(2006,10,28,21,0,0),
-d(2007,3,24,21,0,0),
-d(2007,10,27,21,0,0),
-d(2008,3,29,21,0,0),
-d(2008,10,25,21,0,0),
-d(2009,3,28,21,0,0),
-d(2009,10,24,21,0,0),
-d(2010,3,27,21,0,0),
-d(2010,10,30,21,0,0),
-d(2011,3,26,21,0,0),
-d(2011,10,29,21,0,0),
-d(2012,3,24,21,0,0),
-d(2012,10,27,21,0,0),
-d(2013,3,30,21,0,0),
-d(2013,10,26,21,0,0),
-d(2014,3,29,21,0,0),
-d(2014,10,25,21,0,0),
-d(2015,3,28,21,0,0),
-d(2015,10,24,21,0,0),
-d(2016,3,26,21,0,0),
-d(2016,10,29,21,0,0),
-d(2017,3,25,21,0,0),
-d(2017,10,28,21,0,0),
-d(2018,3,24,21,0,0),
-d(2018,10,27,21,0,0),
-d(2019,3,30,21,0,0),
-d(2019,10,26,21,0,0),
-d(2020,3,28,21,0,0),
-d(2020,10,24,21,0,0),
-d(2021,3,27,21,0,0),
-d(2021,10,30,21,0,0),
-d(2022,3,26,21,0,0),
-d(2022,10,29,21,0,0),
-d(2023,3,25,21,0,0),
-d(2023,10,28,21,0,0),
-d(2024,3,30,21,0,0),
-d(2024,10,26,21,0,0),
-d(2025,3,29,21,0,0),
-d(2025,10,25,21,0,0),
-d(2026,3,28,21,0,0),
-d(2026,10,24,21,0,0),
-d(2027,3,27,21,0,0),
-d(2027,10,30,21,0,0),
-d(2028,3,25,21,0,0),
-d(2028,10,28,21,0,0),
-d(2029,3,24,21,0,0),
-d(2029,10,27,21,0,0),
-d(2030,3,30,21,0,0),
-d(2030,10,26,21,0,0),
-d(2031,3,29,21,0,0),
-d(2031,10,25,21,0,0),
-d(2032,3,27,21,0,0),
-d(2032,10,30,21,0,0),
-d(2033,3,26,21,0,0),
-d(2033,10,29,21,0,0),
-d(2034,3,25,21,0,0),
-d(2034,10,28,21,0,0),
-d(2035,3,24,21,0,0),
-d(2035,10,27,21,0,0),
-d(2036,3,29,21,0,0),
-d(2036,10,25,21,0,0),
-d(2037,3,28,21,0,0),
-d(2037,10,24,21,0,0),
- ]
-
- _transition_info = [
-i(14520,0,'LMT'),
-i(14400,0,'SVET'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(21600,3600,'SVEST'),
-i(18000,0,'SVET'),
-i(18000,0,'SVEST'),
-i(14400,0,'SVET'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
-i(21600,3600,'YEKST'),
-i(18000,0,'YEKT'),
- ]
-
-Yekaterinburg = Yekaterinburg()
-
diff --git a/vendor/pytz/zoneinfo/Asia/Yerevan.py b/vendor/pytz/zoneinfo/Asia/Yerevan.py
deleted file mode 100644
index edfd0485..00000000
--- a/vendor/pytz/zoneinfo/Asia/Yerevan.py
+++ /dev/null
@@ -1,252 +0,0 @@
-'''tzinfo timezone information for Asia/Yerevan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yerevan(DstTzInfo):
- '''Asia/Yerevan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Asia/Yerevan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,21,2,0),
-d(1957,2,28,21,0,0),
-d(1981,3,31,20,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,20,0,0),
-d(1982,9,30,19,0,0),
-d(1983,3,31,20,0,0),
-d(1983,9,30,19,0,0),
-d(1984,3,31,20,0,0),
-d(1984,9,29,22,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,22,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,22,0,0),
-d(1991,3,30,22,0,0),
-d(1991,9,22,20,0,0),
-d(1991,9,28,23,0,0),
-d(1992,3,28,20,0,0),
-d(1992,9,26,19,0,0),
-d(1993,3,27,23,0,0),
-d(1993,9,25,23,0,0),
-d(1994,3,26,23,0,0),
-d(1994,9,24,23,0,0),
-d(1995,3,25,23,0,0),
-d(1995,9,23,23,0,0),
-d(1996,12,31,20,0,0),
-d(1997,3,29,22,0,0),
-d(1997,10,25,22,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,24,22,0,0),
-d(1999,3,27,22,0,0),
-d(1999,10,30,22,0,0),
-d(2000,3,25,22,0,0),
-d(2000,10,28,22,0,0),
-d(2001,3,24,22,0,0),
-d(2001,10,27,22,0,0),
-d(2002,3,30,22,0,0),
-d(2002,10,26,22,0,0),
-d(2003,3,29,22,0,0),
-d(2003,10,25,22,0,0),
-d(2004,3,27,22,0,0),
-d(2004,10,30,22,0,0),
-d(2005,3,26,22,0,0),
-d(2005,10,29,22,0,0),
-d(2006,3,25,22,0,0),
-d(2006,10,28,22,0,0),
-d(2007,3,24,22,0,0),
-d(2007,10,27,22,0,0),
-d(2008,3,29,22,0,0),
-d(2008,10,25,22,0,0),
-d(2009,3,28,22,0,0),
-d(2009,10,24,22,0,0),
-d(2010,3,27,22,0,0),
-d(2010,10,30,22,0,0),
-d(2011,3,26,22,0,0),
-d(2011,10,29,22,0,0),
-d(2012,3,24,22,0,0),
-d(2012,10,27,22,0,0),
-d(2013,3,30,22,0,0),
-d(2013,10,26,22,0,0),
-d(2014,3,29,22,0,0),
-d(2014,10,25,22,0,0),
-d(2015,3,28,22,0,0),
-d(2015,10,24,22,0,0),
-d(2016,3,26,22,0,0),
-d(2016,10,29,22,0,0),
-d(2017,3,25,22,0,0),
-d(2017,10,28,22,0,0),
-d(2018,3,24,22,0,0),
-d(2018,10,27,22,0,0),
-d(2019,3,30,22,0,0),
-d(2019,10,26,22,0,0),
-d(2020,3,28,22,0,0),
-d(2020,10,24,22,0,0),
-d(2021,3,27,22,0,0),
-d(2021,10,30,22,0,0),
-d(2022,3,26,22,0,0),
-d(2022,10,29,22,0,0),
-d(2023,3,25,22,0,0),
-d(2023,10,28,22,0,0),
-d(2024,3,30,22,0,0),
-d(2024,10,26,22,0,0),
-d(2025,3,29,22,0,0),
-d(2025,10,25,22,0,0),
-d(2026,3,28,22,0,0),
-d(2026,10,24,22,0,0),
-d(2027,3,27,22,0,0),
-d(2027,10,30,22,0,0),
-d(2028,3,25,22,0,0),
-d(2028,10,28,22,0,0),
-d(2029,3,24,22,0,0),
-d(2029,10,27,22,0,0),
-d(2030,3,30,22,0,0),
-d(2030,10,26,22,0,0),
-d(2031,3,29,22,0,0),
-d(2031,10,25,22,0,0),
-d(2032,3,27,22,0,0),
-d(2032,10,30,22,0,0),
-d(2033,3,26,22,0,0),
-d(2033,10,29,22,0,0),
-d(2034,3,25,22,0,0),
-d(2034,10,28,22,0,0),
-d(2035,3,24,22,0,0),
-d(2035,10,27,22,0,0),
-d(2036,3,29,22,0,0),
-d(2036,10,25,22,0,0),
-d(2037,3,28,22,0,0),
-d(2037,10,24,22,0,0),
- ]
-
- _transition_info = [
-i(10680,0,'LMT'),
-i(10800,0,'YERT'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(18000,3600,'YERST'),
-i(14400,0,'YERT'),
-i(14400,0,'YERST'),
-i(14400,0,'AMST'),
-i(10800,0,'AMT'),
-i(14400,3600,'AMST'),
-i(10800,0,'AMT'),
-i(14400,3600,'AMST'),
-i(10800,0,'AMT'),
-i(14400,3600,'AMST'),
-i(10800,0,'AMT'),
-i(14400,3600,'AMST'),
-i(14400,0,'AMT'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
-i(18000,3600,'AMST'),
-i(14400,0,'AMT'),
- ]
-
-Yerevan = Yerevan()
-
diff --git a/vendor/pytz/zoneinfo/Asia/__init__.py b/vendor/pytz/zoneinfo/Asia/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Atlantic/Azores.py b/vendor/pytz/zoneinfo/Atlantic/Azores.py
deleted file mode 100644
index b2864aa0..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Azores.py
+++ /dev/null
@@ -1,460 +0,0 @@
-'''tzinfo timezone information for Atlantic/Azores.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Azores(DstTzInfo):
- '''Atlantic/Azores timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Azores'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,24,1,54,32),
-d(1916,6,18,1,0,0),
-d(1916,11,1,2,0,0),
-d(1917,3,1,1,0,0),
-d(1917,10,15,1,0,0),
-d(1918,3,2,1,0,0),
-d(1918,10,15,1,0,0),
-d(1919,3,1,1,0,0),
-d(1919,10,15,1,0,0),
-d(1920,3,1,1,0,0),
-d(1920,10,15,1,0,0),
-d(1921,3,1,1,0,0),
-d(1921,10,15,1,0,0),
-d(1924,4,17,1,0,0),
-d(1924,10,15,1,0,0),
-d(1926,4,18,1,0,0),
-d(1926,10,3,1,0,0),
-d(1927,4,10,1,0,0),
-d(1927,10,2,1,0,0),
-d(1928,4,15,1,0,0),
-d(1928,10,7,1,0,0),
-d(1929,4,21,1,0,0),
-d(1929,10,6,1,0,0),
-d(1931,4,19,1,0,0),
-d(1931,10,4,1,0,0),
-d(1932,4,3,1,0,0),
-d(1932,10,2,1,0,0),
-d(1934,4,8,1,0,0),
-d(1934,10,7,1,0,0),
-d(1935,3,31,1,0,0),
-d(1935,10,6,1,0,0),
-d(1936,4,19,1,0,0),
-d(1936,10,4,1,0,0),
-d(1937,4,4,1,0,0),
-d(1937,10,3,1,0,0),
-d(1938,3,27,1,0,0),
-d(1938,10,2,1,0,0),
-d(1939,4,16,1,0,0),
-d(1939,11,19,1,0,0),
-d(1940,2,25,1,0,0),
-d(1940,10,6,1,0,0),
-d(1941,4,6,1,0,0),
-d(1941,10,6,1,0,0),
-d(1942,3,15,1,0,0),
-d(1942,4,26,0,0,0),
-d(1942,8,16,0,0,0),
-d(1942,10,25,1,0,0),
-d(1943,3,14,1,0,0),
-d(1943,4,18,0,0,0),
-d(1943,8,29,0,0,0),
-d(1943,10,31,1,0,0),
-d(1944,3,12,1,0,0),
-d(1944,4,23,0,0,0),
-d(1944,8,27,0,0,0),
-d(1944,10,29,1,0,0),
-d(1945,3,11,1,0,0),
-d(1945,4,22,0,0,0),
-d(1945,8,26,0,0,0),
-d(1945,10,28,1,0,0),
-d(1946,4,7,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,4,6,4,0,0),
-d(1947,10,5,4,0,0),
-d(1948,4,4,4,0,0),
-d(1948,10,3,4,0,0),
-d(1949,4,3,4,0,0),
-d(1949,10,2,4,0,0),
-d(1951,4,1,4,0,0),
-d(1951,10,7,4,0,0),
-d(1952,4,6,4,0,0),
-d(1952,10,5,4,0,0),
-d(1953,4,5,4,0,0),
-d(1953,10,4,4,0,0),
-d(1954,4,4,4,0,0),
-d(1954,10,3,4,0,0),
-d(1955,4,3,4,0,0),
-d(1955,10,2,4,0,0),
-d(1956,4,1,4,0,0),
-d(1956,10,7,4,0,0),
-d(1957,4,7,4,0,0),
-d(1957,10,6,4,0,0),
-d(1958,4,6,4,0,0),
-d(1958,10,5,4,0,0),
-d(1959,4,5,4,0,0),
-d(1959,10,4,4,0,0),
-d(1960,4,3,4,0,0),
-d(1960,10,2,4,0,0),
-d(1961,4,2,4,0,0),
-d(1961,10,1,4,0,0),
-d(1962,4,1,4,0,0),
-d(1962,10,7,4,0,0),
-d(1963,4,7,4,0,0),
-d(1963,10,6,4,0,0),
-d(1964,4,5,4,0,0),
-d(1964,10,4,4,0,0),
-d(1965,4,4,4,0,0),
-d(1965,10,3,4,0,0),
-d(1966,4,3,4,0,0),
-d(1977,3,27,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,2,0,0),
-d(1980,3,30,1,0,0),
-d(1980,9,28,2,0,0),
-d(1981,3,29,2,0,0),
-d(1981,9,27,2,0,0),
-d(1982,3,28,2,0,0),
-d(1982,9,26,2,0,0),
-d(1983,3,27,3,0,0),
-d(1983,9,25,2,0,0),
-d(1984,3,25,2,0,0),
-d(1984,9,30,2,0,0),
-d(1985,3,31,2,0,0),
-d(1985,9,29,2,0,0),
-d(1986,3,30,2,0,0),
-d(1986,9,28,2,0,0),
-d(1987,3,29,2,0,0),
-d(1987,9,27,2,0,0),
-d(1988,3,27,2,0,0),
-d(1988,9,25,2,0,0),
-d(1989,3,26,2,0,0),
-d(1989,9,24,2,0,0),
-d(1990,3,25,2,0,0),
-d(1990,9,30,2,0,0),
-d(1991,3,31,2,0,0),
-d(1991,9,29,2,0,0),
-d(1992,3,29,2,0,0),
-d(1992,9,27,2,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-6900,0,'HMT'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(0,7200,'AZOMT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(0,7200,'AZOMT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(0,7200,'AZOMT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(0,7200,'AZOMT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,3600,'AZOST'),
-i(-7200,0,'AZOT'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(0,0,'WET'),
-i(0,0,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
-i(0,3600,'AZOST'),
-i(-3600,0,'AZOT'),
- ]
-
-Azores = Azores()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Bermuda.py b/vendor/pytz/zoneinfo/Atlantic/Bermuda.py
deleted file mode 100644
index 7ef08fd3..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Bermuda.py
+++ /dev/null
@@ -1,278 +0,0 @@
-'''tzinfo timezone information for Atlantic/Bermuda.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bermuda(DstTzInfo):
- '''Atlantic/Bermuda timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Bermuda'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1930,1,1,6,19,4),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,5,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,5,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,5,0,0),
-d(1998,4,5,6,0,0),
-d(1998,10,25,5,0,0),
-d(1999,4,4,6,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,6,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,6,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,6,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,6,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,6,0,0),
-d(2004,10,31,5,0,0),
-d(2005,4,3,6,0,0),
-d(2005,10,30,5,0,0),
-d(2006,4,2,6,0,0),
-d(2006,10,29,5,0,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-15540,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Bermuda = Bermuda()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Canary.py b/vendor/pytz/zoneinfo/Atlantic/Canary.py
deleted file mode 100644
index e605028e..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Canary.py
+++ /dev/null
@@ -1,256 +0,0 @@
-'''tzinfo timezone information for Atlantic/Canary.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Canary(DstTzInfo):
- '''Atlantic/Canary timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Canary'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,3,1,1,1,36),
-d(1946,9,30,2,0,0),
-d(1980,4,6,0,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-3720,0,'LMT'),
-i(-3600,0,'CANT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-Canary = Canary()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Cape_Verde.py b/vendor/pytz/zoneinfo/Atlantic/Cape_Verde.py
deleted file mode 100644
index 8cb51e71..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Cape_Verde.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Atlantic/Cape_Verde.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cape_Verde(DstTzInfo):
- '''Atlantic/Cape_Verde timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Cape_Verde'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1907,1,1,1,34,4),
-d(1942,9,1,2,0,0),
-d(1945,10,15,1,0,0),
-d(1975,11,25,4,0,0),
- ]
-
- _transition_info = [
-i(-5640,0,'LMT'),
-i(-7200,0,'CVT'),
-i(-3600,3600,'CVST'),
-i(-7200,0,'CVT'),
-i(-3600,0,'CVT'),
- ]
-
-Cape_Verde = Cape_Verde()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Faeroe.py b/vendor/pytz/zoneinfo/Atlantic/Faeroe.py
deleted file mode 100644
index 4eb16fa3..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Faeroe.py
+++ /dev/null
@@ -1,250 +0,0 @@
-'''tzinfo timezone information for Atlantic/Faeroe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Faeroe(DstTzInfo):
- '''Atlantic/Faeroe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Faeroe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,1,11,0,27,4),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-1620,0,'LMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-Faeroe = Faeroe()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Jan_Mayen.py b/vendor/pytz/zoneinfo/Atlantic/Jan_Mayen.py
deleted file mode 100644
index 6ba69901..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Jan_Mayen.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Atlantic/Jan_Mayen.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jan_Mayen(DstTzInfo):
- '''Atlantic/Jan_Mayen timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Jan_Mayen'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,22,0,0,0),
-d(1916,9,29,22,0,0),
-d(1940,8,10,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,10,1,1,0,0),
-d(1959,3,15,1,0,0),
-d(1959,9,20,1,0,0),
-d(1960,3,20,1,0,0),
-d(1960,9,18,1,0,0),
-d(1961,3,19,1,0,0),
-d(1961,9,17,1,0,0),
-d(1962,3,18,1,0,0),
-d(1962,9,16,1,0,0),
-d(1963,3,17,1,0,0),
-d(1963,9,15,1,0,0),
-d(1964,3,15,1,0,0),
-d(1964,9,20,1,0,0),
-d(1965,4,25,1,0,0),
-d(1965,9,19,1,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Jan_Mayen = Jan_Mayen()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Madeira.py b/vendor/pytz/zoneinfo/Atlantic/Madeira.py
deleted file mode 100644
index ace6fc01..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Madeira.py
+++ /dev/null
@@ -1,460 +0,0 @@
-'''tzinfo timezone information for Atlantic/Madeira.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Madeira(DstTzInfo):
- '''Atlantic/Madeira timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Madeira'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,24,1,7,36),
-d(1916,6,18,0,0,0),
-d(1916,11,1,1,0,0),
-d(1917,3,1,0,0,0),
-d(1917,10,15,0,0,0),
-d(1918,3,2,0,0,0),
-d(1918,10,15,0,0,0),
-d(1919,3,1,0,0,0),
-d(1919,10,15,0,0,0),
-d(1920,3,1,0,0,0),
-d(1920,10,15,0,0,0),
-d(1921,3,1,0,0,0),
-d(1921,10,15,0,0,0),
-d(1924,4,17,0,0,0),
-d(1924,10,15,0,0,0),
-d(1926,4,18,0,0,0),
-d(1926,10,3,0,0,0),
-d(1927,4,10,0,0,0),
-d(1927,10,2,0,0,0),
-d(1928,4,15,0,0,0),
-d(1928,10,7,0,0,0),
-d(1929,4,21,0,0,0),
-d(1929,10,6,0,0,0),
-d(1931,4,19,0,0,0),
-d(1931,10,4,0,0,0),
-d(1932,4,3,0,0,0),
-d(1932,10,2,0,0,0),
-d(1934,4,8,0,0,0),
-d(1934,10,7,0,0,0),
-d(1935,3,31,0,0,0),
-d(1935,10,6,0,0,0),
-d(1936,4,19,0,0,0),
-d(1936,10,4,0,0,0),
-d(1937,4,4,0,0,0),
-d(1937,10,3,0,0,0),
-d(1938,3,27,0,0,0),
-d(1938,10,2,0,0,0),
-d(1939,4,16,0,0,0),
-d(1939,11,19,0,0,0),
-d(1940,2,25,0,0,0),
-d(1940,10,6,0,0,0),
-d(1941,4,6,0,0,0),
-d(1941,10,6,0,0,0),
-d(1942,3,15,0,0,0),
-d(1942,4,25,23,0,0),
-d(1942,8,15,23,0,0),
-d(1942,10,25,0,0,0),
-d(1943,3,14,0,0,0),
-d(1943,4,17,23,0,0),
-d(1943,8,28,23,0,0),
-d(1943,10,31,0,0,0),
-d(1944,3,12,0,0,0),
-d(1944,4,22,23,0,0),
-d(1944,8,26,23,0,0),
-d(1944,10,29,0,0,0),
-d(1945,3,11,0,0,0),
-d(1945,4,21,23,0,0),
-d(1945,8,25,23,0,0),
-d(1945,10,28,0,0,0),
-d(1946,4,7,0,0,0),
-d(1946,10,6,0,0,0),
-d(1947,4,6,3,0,0),
-d(1947,10,5,3,0,0),
-d(1948,4,4,3,0,0),
-d(1948,10,3,3,0,0),
-d(1949,4,3,3,0,0),
-d(1949,10,2,3,0,0),
-d(1951,4,1,3,0,0),
-d(1951,10,7,3,0,0),
-d(1952,4,6,3,0,0),
-d(1952,10,5,3,0,0),
-d(1953,4,5,3,0,0),
-d(1953,10,4,3,0,0),
-d(1954,4,4,3,0,0),
-d(1954,10,3,3,0,0),
-d(1955,4,3,3,0,0),
-d(1955,10,2,3,0,0),
-d(1956,4,1,3,0,0),
-d(1956,10,7,3,0,0),
-d(1957,4,7,3,0,0),
-d(1957,10,6,3,0,0),
-d(1958,4,6,3,0,0),
-d(1958,10,5,3,0,0),
-d(1959,4,5,3,0,0),
-d(1959,10,4,3,0,0),
-d(1960,4,3,3,0,0),
-d(1960,10,2,3,0,0),
-d(1961,4,2,3,0,0),
-d(1961,10,1,3,0,0),
-d(1962,4,1,3,0,0),
-d(1962,10,7,3,0,0),
-d(1963,4,7,3,0,0),
-d(1963,10,6,3,0,0),
-d(1964,4,5,3,0,0),
-d(1964,10,4,3,0,0),
-d(1965,4,4,3,0,0),
-d(1965,10,3,3,0,0),
-d(1966,4,3,3,0,0),
-d(1977,3,27,0,0,0),
-d(1977,9,25,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,1,0,0,0),
-d(1979,9,30,1,0,0),
-d(1980,3,30,0,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,2,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-4080,0,'FMT'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(3600,7200,'MADMT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(3600,7200,'MADMT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(3600,7200,'MADMT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(3600,7200,'MADMT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,3600,'MADST'),
-i(-3600,0,'MADT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-Madeira = Madeira()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Reykjavik.py b/vendor/pytz/zoneinfo/Atlantic/Reykjavik.py
deleted file mode 100644
index 0d9922b4..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Reykjavik.py
+++ /dev/null
@@ -1,148 +0,0 @@
-'''tzinfo timezone information for Atlantic/Reykjavik.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Reykjavik(DstTzInfo):
- '''Atlantic/Reykjavik timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Reykjavik'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,1,1,1,27,48),
-d(1917,2,20,0,0,0),
-d(1917,10,21,1,0,0),
-d(1918,2,20,0,0,0),
-d(1918,11,16,1,0,0),
-d(1939,4,30,0,0,0),
-d(1939,11,29,2,0,0),
-d(1940,2,25,3,0,0),
-d(1940,11,3,2,0,0),
-d(1941,3,2,2,0,0),
-d(1941,11,2,2,0,0),
-d(1942,3,8,2,0,0),
-d(1942,10,25,2,0,0),
-d(1943,3,7,2,0,0),
-d(1943,10,24,2,0,0),
-d(1944,3,5,2,0,0),
-d(1944,10,22,2,0,0),
-d(1945,3,4,2,0,0),
-d(1945,10,28,2,0,0),
-d(1946,3,3,2,0,0),
-d(1946,10,27,2,0,0),
-d(1947,4,6,2,0,0),
-d(1947,10,26,2,0,0),
-d(1948,4,4,2,0,0),
-d(1948,10,24,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,2,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,1,2,0,0),
-d(1951,10,28,2,0,0),
-d(1952,4,6,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,5,2,0,0),
-d(1953,10,25,2,0,0),
-d(1954,4,4,2,0,0),
-d(1954,10,24,2,0,0),
-d(1955,4,3,2,0,0),
-d(1955,10,23,2,0,0),
-d(1956,4,1,2,0,0),
-d(1956,10,28,2,0,0),
-d(1957,4,7,2,0,0),
-d(1957,10,27,2,0,0),
-d(1958,4,6,2,0,0),
-d(1958,10,26,2,0,0),
-d(1959,4,5,2,0,0),
-d(1959,10,25,2,0,0),
-d(1960,4,3,2,0,0),
-d(1960,10,23,2,0,0),
-d(1961,4,2,2,0,0),
-d(1961,10,22,2,0,0),
-d(1962,4,1,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,4,7,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,4,5,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,4,4,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,4,3,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,4,2,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,4,7,2,0,0),
- ]
-
- _transition_info = [
-i(-5280,0,'RMT'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,0,'GMT'),
- ]
-
-Reykjavik = Reykjavik()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/South_Georgia.py b/vendor/pytz/zoneinfo/Atlantic/South_Georgia.py
deleted file mode 100644
index 73e393cb..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/South_Georgia.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Atlantic/South_Georgia.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class South_Georgia(StaticTzInfo):
- '''Atlantic/South_Georgia timezone definition. See datetime.tzinfo for details'''
- zone = 'Atlantic/South_Georgia'
- _utcoffset = timedelta(seconds=-7200)
- _tzname = 'GST'
-
-South_Georgia = South_Georgia()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/St_Helena.py b/vendor/pytz/zoneinfo/Atlantic/St_Helena.py
deleted file mode 100644
index 3d372836..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/St_Helena.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Atlantic/St_Helena.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class St_Helena(DstTzInfo):
- '''Atlantic/St_Helena timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/St_Helena'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1951,1,1,0,22,48),
- ]
-
- _transition_info = [
-i(-1380,0,'JMT'),
-i(0,0,'GMT'),
- ]
-
-St_Helena = St_Helena()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/Stanley.py b/vendor/pytz/zoneinfo/Atlantic/Stanley.py
deleted file mode 100644
index 3e1ccfcd..00000000
--- a/vendor/pytz/zoneinfo/Atlantic/Stanley.py
+++ /dev/null
@@ -1,266 +0,0 @@
-'''tzinfo timezone information for Atlantic/Stanley.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Stanley(DstTzInfo):
- '''Atlantic/Stanley timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Atlantic/Stanley'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,3,12,3,51,24),
-d(1937,9,26,4,0,0),
-d(1938,3,20,3,0,0),
-d(1938,9,25,4,0,0),
-d(1939,3,19,3,0,0),
-d(1939,10,1,4,0,0),
-d(1940,3,24,3,0,0),
-d(1940,9,29,4,0,0),
-d(1941,3,23,3,0,0),
-d(1941,9,28,4,0,0),
-d(1942,3,22,3,0,0),
-d(1942,9,27,4,0,0),
-d(1943,1,1,3,0,0),
-d(1983,5,1,4,0,0),
-d(1983,9,25,3,0,0),
-d(1984,4,29,2,0,0),
-d(1984,9,16,3,0,0),
-d(1985,4,28,2,0,0),
-d(1985,9,15,3,0,0),
-d(1986,4,20,3,0,0),
-d(1986,9,14,4,0,0),
-d(1987,4,19,3,0,0),
-d(1987,9,13,4,0,0),
-d(1988,4,17,3,0,0),
-d(1988,9,11,4,0,0),
-d(1989,4,16,3,0,0),
-d(1989,9,10,4,0,0),
-d(1990,4,22,3,0,0),
-d(1990,9,9,4,0,0),
-d(1991,4,21,3,0,0),
-d(1991,9,15,4,0,0),
-d(1992,4,19,3,0,0),
-d(1992,9,13,4,0,0),
-d(1993,4,18,3,0,0),
-d(1993,9,12,4,0,0),
-d(1994,4,17,3,0,0),
-d(1994,9,11,4,0,0),
-d(1995,4,16,3,0,0),
-d(1995,9,10,4,0,0),
-d(1996,4,21,3,0,0),
-d(1996,9,15,4,0,0),
-d(1997,4,20,3,0,0),
-d(1997,9,14,4,0,0),
-d(1998,4,19,3,0,0),
-d(1998,9,13,4,0,0),
-d(1999,4,18,3,0,0),
-d(1999,9,12,4,0,0),
-d(2000,4,16,3,0,0),
-d(2000,9,10,4,0,0),
-d(2001,4,15,5,0,0),
-d(2001,9,2,6,0,0),
-d(2002,4,21,5,0,0),
-d(2002,9,1,6,0,0),
-d(2003,4,20,5,0,0),
-d(2003,9,7,6,0,0),
-d(2004,4,18,5,0,0),
-d(2004,9,5,6,0,0),
-d(2005,4,17,5,0,0),
-d(2005,9,4,6,0,0),
-d(2006,4,16,5,0,0),
-d(2006,9,3,6,0,0),
-d(2007,4,15,5,0,0),
-d(2007,9,2,6,0,0),
-d(2008,4,20,5,0,0),
-d(2008,9,7,6,0,0),
-d(2009,4,19,5,0,0),
-d(2009,9,6,6,0,0),
-d(2010,4,18,5,0,0),
-d(2010,9,5,6,0,0),
-d(2011,4,17,5,0,0),
-d(2011,9,4,6,0,0),
-d(2012,4,15,5,0,0),
-d(2012,9,2,6,0,0),
-d(2013,4,21,5,0,0),
-d(2013,9,1,6,0,0),
-d(2014,4,20,5,0,0),
-d(2014,9,7,6,0,0),
-d(2015,4,19,5,0,0),
-d(2015,9,6,6,0,0),
-d(2016,4,17,5,0,0),
-d(2016,9,4,6,0,0),
-d(2017,4,16,5,0,0),
-d(2017,9,3,6,0,0),
-d(2018,4,15,5,0,0),
-d(2018,9,2,6,0,0),
-d(2019,4,21,5,0,0),
-d(2019,9,1,6,0,0),
-d(2020,4,19,5,0,0),
-d(2020,9,6,6,0,0),
-d(2021,4,18,5,0,0),
-d(2021,9,5,6,0,0),
-d(2022,4,17,5,0,0),
-d(2022,9,4,6,0,0),
-d(2023,4,16,5,0,0),
-d(2023,9,3,6,0,0),
-d(2024,4,21,5,0,0),
-d(2024,9,1,6,0,0),
-d(2025,4,20,5,0,0),
-d(2025,9,7,6,0,0),
-d(2026,4,19,5,0,0),
-d(2026,9,6,6,0,0),
-d(2027,4,18,5,0,0),
-d(2027,9,5,6,0,0),
-d(2028,4,16,5,0,0),
-d(2028,9,3,6,0,0),
-d(2029,4,15,5,0,0),
-d(2029,9,2,6,0,0),
-d(2030,4,21,5,0,0),
-d(2030,9,1,6,0,0),
-d(2031,4,20,5,0,0),
-d(2031,9,7,6,0,0),
-d(2032,4,18,5,0,0),
-d(2032,9,5,6,0,0),
-d(2033,4,17,5,0,0),
-d(2033,9,4,6,0,0),
-d(2034,4,16,5,0,0),
-d(2034,9,3,6,0,0),
-d(2035,4,15,5,0,0),
-d(2035,9,2,6,0,0),
-d(2036,4,20,5,0,0),
-d(2036,9,7,6,0,0),
-d(2037,4,19,5,0,0),
-d(2037,9,6,6,0,0),
- ]
-
- _transition_info = [
-i(-13860,0,'SMT'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,0,'FKT'),
-i(-7200,3600,'FKST'),
-i(-10800,0,'FKT'),
-i(-7200,3600,'FKST'),
-i(-10800,0,'FKT'),
-i(-10800,0,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
-i(-14400,0,'FKT'),
-i(-10800,3600,'FKST'),
- ]
-
-Stanley = Stanley()
-
diff --git a/vendor/pytz/zoneinfo/Atlantic/__init__.py b/vendor/pytz/zoneinfo/Atlantic/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Australia/ACT.py b/vendor/pytz/zoneinfo/Australia/ACT.py
deleted file mode 100644
index 26b80526..00000000
--- a/vendor/pytz/zoneinfo/Australia/ACT.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/ACT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class ACT(DstTzInfo):
- '''Australia/ACT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/ACT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,4,3,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,4,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-ACT = ACT()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Adelaide.py b/vendor/pytz/zoneinfo/Australia/Adelaide.py
deleted file mode 100644
index 3b4056f5..00000000
--- a/vendor/pytz/zoneinfo/Australia/Adelaide.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Adelaide.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Adelaide(DstTzInfo):
- '''Australia/Adelaide timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Adelaide'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
-d(1971,10,30,16,30,0),
-d(1972,2,26,16,30,0),
-d(1972,10,28,16,30,0),
-d(1973,3,3,16,30,0),
-d(1973,10,27,16,30,0),
-d(1974,3,2,16,30,0),
-d(1974,10,26,16,30,0),
-d(1975,3,1,16,30,0),
-d(1975,10,25,16,30,0),
-d(1976,3,6,16,30,0),
-d(1976,10,30,16,30,0),
-d(1977,3,5,16,30,0),
-d(1977,10,29,16,30,0),
-d(1978,3,4,16,30,0),
-d(1978,10,28,16,30,0),
-d(1979,3,3,16,30,0),
-d(1979,10,27,16,30,0),
-d(1980,3,1,16,30,0),
-d(1980,10,25,16,30,0),
-d(1981,2,28,16,30,0),
-d(1981,10,24,16,30,0),
-d(1982,3,6,16,30,0),
-d(1982,10,30,16,30,0),
-d(1983,3,5,16,30,0),
-d(1983,10,29,16,30,0),
-d(1984,3,3,16,30,0),
-d(1984,10,27,16,30,0),
-d(1985,3,2,16,30,0),
-d(1985,10,26,16,30,0),
-d(1986,3,15,16,30,0),
-d(1986,10,18,16,30,0),
-d(1987,3,14,16,30,0),
-d(1987,10,24,16,30,0),
-d(1988,3,19,16,30,0),
-d(1988,10,29,16,30,0),
-d(1989,3,18,16,30,0),
-d(1989,10,28,16,30,0),
-d(1990,3,17,16,30,0),
-d(1990,10,27,16,30,0),
-d(1991,3,2,16,30,0),
-d(1991,10,26,16,30,0),
-d(1992,3,21,16,30,0),
-d(1992,10,24,16,30,0),
-d(1993,3,6,16,30,0),
-d(1993,10,30,16,30,0),
-d(1994,3,19,16,30,0),
-d(1994,10,29,16,30,0),
-d(1995,3,25,16,30,0),
-d(1995,10,28,16,30,0),
-d(1996,3,30,16,30,0),
-d(1996,10,26,16,30,0),
-d(1997,3,29,16,30,0),
-d(1997,10,25,16,30,0),
-d(1998,3,28,16,30,0),
-d(1998,10,24,16,30,0),
-d(1999,3,27,16,30,0),
-d(1999,10,30,16,30,0),
-d(2000,3,25,16,30,0),
-d(2000,10,28,16,30,0),
-d(2001,3,24,16,30,0),
-d(2001,10,27,16,30,0),
-d(2002,3,30,16,30,0),
-d(2002,10,26,16,30,0),
-d(2003,3,29,16,30,0),
-d(2003,10,25,16,30,0),
-d(2004,3,27,16,30,0),
-d(2004,10,30,16,30,0),
-d(2005,3,26,16,30,0),
-d(2005,10,29,16,30,0),
-d(2006,4,1,16,30,0),
-d(2006,10,28,16,30,0),
-d(2007,3,24,16,30,0),
-d(2007,10,27,16,30,0),
-d(2008,3,29,16,30,0),
-d(2008,10,25,16,30,0),
-d(2009,3,28,16,30,0),
-d(2009,10,24,16,30,0),
-d(2010,3,27,16,30,0),
-d(2010,10,30,16,30,0),
-d(2011,3,26,16,30,0),
-d(2011,10,29,16,30,0),
-d(2012,3,24,16,30,0),
-d(2012,10,27,16,30,0),
-d(2013,3,30,16,30,0),
-d(2013,10,26,16,30,0),
-d(2014,3,29,16,30,0),
-d(2014,10,25,16,30,0),
-d(2015,3,28,16,30,0),
-d(2015,10,24,16,30,0),
-d(2016,3,26,16,30,0),
-d(2016,10,29,16,30,0),
-d(2017,3,25,16,30,0),
-d(2017,10,28,16,30,0),
-d(2018,3,24,16,30,0),
-d(2018,10,27,16,30,0),
-d(2019,3,30,16,30,0),
-d(2019,10,26,16,30,0),
-d(2020,3,28,16,30,0),
-d(2020,10,24,16,30,0),
-d(2021,3,27,16,30,0),
-d(2021,10,30,16,30,0),
-d(2022,3,26,16,30,0),
-d(2022,10,29,16,30,0),
-d(2023,3,25,16,30,0),
-d(2023,10,28,16,30,0),
-d(2024,3,30,16,30,0),
-d(2024,10,26,16,30,0),
-d(2025,3,29,16,30,0),
-d(2025,10,25,16,30,0),
-d(2026,3,28,16,30,0),
-d(2026,10,24,16,30,0),
-d(2027,3,27,16,30,0),
-d(2027,10,30,16,30,0),
-d(2028,3,25,16,30,0),
-d(2028,10,28,16,30,0),
-d(2029,3,24,16,30,0),
-d(2029,10,27,16,30,0),
-d(2030,3,30,16,30,0),
-d(2030,10,26,16,30,0),
-d(2031,3,29,16,30,0),
-d(2031,10,25,16,30,0),
-d(2032,3,27,16,30,0),
-d(2032,10,30,16,30,0),
-d(2033,3,26,16,30,0),
-d(2033,10,29,16,30,0),
-d(2034,3,25,16,30,0),
-d(2034,10,28,16,30,0),
-d(2035,3,24,16,30,0),
-d(2035,10,27,16,30,0),
-d(2036,3,29,16,30,0),
-d(2036,10,25,16,30,0),
-d(2037,3,28,16,30,0),
-d(2037,10,24,16,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
- ]
-
-Adelaide = Adelaide()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Brisbane.py b/vendor/pytz/zoneinfo/Australia/Brisbane.py
deleted file mode 100644
index 31303d9b..00000000
--- a/vendor/pytz/zoneinfo/Australia/Brisbane.py
+++ /dev/null
@@ -1,52 +0,0 @@
-'''tzinfo timezone information for Australia/Brisbane.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Brisbane(DstTzInfo):
- '''Australia/Brisbane timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Brisbane'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
- ]
-
-Brisbane = Brisbane()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Broken_Hill.py b/vendor/pytz/zoneinfo/Australia/Broken_Hill.py
deleted file mode 100644
index dfd7164f..00000000
--- a/vendor/pytz/zoneinfo/Australia/Broken_Hill.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for Australia/Broken_Hill.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Broken_Hill(DstTzInfo):
- '''Australia/Broken_Hill timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Broken_Hill'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
-d(1971,10,30,16,30,0),
-d(1972,2,26,16,30,0),
-d(1972,10,28,16,30,0),
-d(1973,3,3,16,30,0),
-d(1973,10,27,16,30,0),
-d(1974,3,2,16,30,0),
-d(1974,10,26,16,30,0),
-d(1975,3,1,16,30,0),
-d(1975,10,25,16,30,0),
-d(1976,3,6,16,30,0),
-d(1976,10,30,16,30,0),
-d(1977,3,5,16,30,0),
-d(1977,10,29,16,30,0),
-d(1978,3,4,16,30,0),
-d(1978,10,28,16,30,0),
-d(1979,3,3,16,30,0),
-d(1979,10,27,16,30,0),
-d(1980,3,1,16,30,0),
-d(1980,10,25,16,30,0),
-d(1981,2,28,16,30,0),
-d(1981,10,24,16,30,0),
-d(1982,4,3,16,30,0),
-d(1982,10,30,16,30,0),
-d(1983,3,5,16,30,0),
-d(1983,10,29,16,30,0),
-d(1984,3,3,16,30,0),
-d(1984,10,27,16,30,0),
-d(1985,3,2,16,30,0),
-d(1985,10,26,16,30,0),
-d(1986,3,15,16,30,0),
-d(1986,10,18,16,30,0),
-d(1987,3,14,16,30,0),
-d(1987,10,24,16,30,0),
-d(1988,3,19,16,30,0),
-d(1988,10,29,16,30,0),
-d(1989,3,18,16,30,0),
-d(1989,10,28,16,30,0),
-d(1990,3,3,16,30,0),
-d(1990,10,27,16,30,0),
-d(1991,3,2,16,30,0),
-d(1991,10,26,16,30,0),
-d(1992,2,29,16,30,0),
-d(1992,10,24,16,30,0),
-d(1993,3,6,16,30,0),
-d(1993,10,30,16,30,0),
-d(1994,3,5,16,30,0),
-d(1994,10,29,16,30,0),
-d(1995,3,4,16,30,0),
-d(1995,10,28,16,30,0),
-d(1996,3,30,16,30,0),
-d(1996,10,26,16,30,0),
-d(1997,3,29,16,30,0),
-d(1997,10,25,16,30,0),
-d(1998,3,28,16,30,0),
-d(1998,10,24,16,30,0),
-d(1999,3,27,16,30,0),
-d(1999,10,30,16,30,0),
-d(1999,12,31,13,30,0),
-d(2000,3,25,16,30,0),
-d(2000,10,28,16,30,0),
-d(2001,3,24,16,30,0),
-d(2001,10,27,16,30,0),
-d(2002,3,30,16,30,0),
-d(2002,10,26,16,30,0),
-d(2003,3,29,16,30,0),
-d(2003,10,25,16,30,0),
-d(2004,3,27,16,30,0),
-d(2004,10,30,16,30,0),
-d(2005,3,26,16,30,0),
-d(2005,10,29,16,30,0),
-d(2006,4,1,16,30,0),
-d(2006,10,28,16,30,0),
-d(2007,3,24,16,30,0),
-d(2007,10,27,16,30,0),
-d(2008,3,29,16,30,0),
-d(2008,10,25,16,30,0),
-d(2009,3,28,16,30,0),
-d(2009,10,24,16,30,0),
-d(2010,3,27,16,30,0),
-d(2010,10,30,16,30,0),
-d(2011,3,26,16,30,0),
-d(2011,10,29,16,30,0),
-d(2012,3,24,16,30,0),
-d(2012,10,27,16,30,0),
-d(2013,3,30,16,30,0),
-d(2013,10,26,16,30,0),
-d(2014,3,29,16,30,0),
-d(2014,10,25,16,30,0),
-d(2015,3,28,16,30,0),
-d(2015,10,24,16,30,0),
-d(2016,3,26,16,30,0),
-d(2016,10,29,16,30,0),
-d(2017,3,25,16,30,0),
-d(2017,10,28,16,30,0),
-d(2018,3,24,16,30,0),
-d(2018,10,27,16,30,0),
-d(2019,3,30,16,30,0),
-d(2019,10,26,16,30,0),
-d(2020,3,28,16,30,0),
-d(2020,10,24,16,30,0),
-d(2021,3,27,16,30,0),
-d(2021,10,30,16,30,0),
-d(2022,3,26,16,30,0),
-d(2022,10,29,16,30,0),
-d(2023,3,25,16,30,0),
-d(2023,10,28,16,30,0),
-d(2024,3,30,16,30,0),
-d(2024,10,26,16,30,0),
-d(2025,3,29,16,30,0),
-d(2025,10,25,16,30,0),
-d(2026,3,28,16,30,0),
-d(2026,10,24,16,30,0),
-d(2027,3,27,16,30,0),
-d(2027,10,30,16,30,0),
-d(2028,3,25,16,30,0),
-d(2028,10,28,16,30,0),
-d(2029,3,24,16,30,0),
-d(2029,10,27,16,30,0),
-d(2030,3,30,16,30,0),
-d(2030,10,26,16,30,0),
-d(2031,3,29,16,30,0),
-d(2031,10,25,16,30,0),
-d(2032,3,27,16,30,0),
-d(2032,10,30,16,30,0),
-d(2033,3,26,16,30,0),
-d(2033,10,29,16,30,0),
-d(2034,3,25,16,30,0),
-d(2034,10,28,16,30,0),
-d(2035,3,24,16,30,0),
-d(2035,10,27,16,30,0),
-d(2036,3,29,16,30,0),
-d(2036,10,25,16,30,0),
-d(2037,3,28,16,30,0),
-d(2037,10,24,16,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
- ]
-
-Broken_Hill = Broken_Hill()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Canberra.py b/vendor/pytz/zoneinfo/Australia/Canberra.py
deleted file mode 100644
index 492137fa..00000000
--- a/vendor/pytz/zoneinfo/Australia/Canberra.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Canberra.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Canberra(DstTzInfo):
- '''Australia/Canberra timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Canberra'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,4,3,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,4,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Canberra = Canberra()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Currie.py b/vendor/pytz/zoneinfo/Australia/Currie.py
deleted file mode 100644
index 604b2f75..00000000
--- a/vendor/pytz/zoneinfo/Australia/Currie.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Currie.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Currie(DstTzInfo):
- '''Australia/Currie timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Currie'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,9,30,16,0,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,3,27,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,26,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,1,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,17,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,30,16,0,0),
-d(1991,10,5,16,0,0),
-d(1992,3,28,16,0,0),
-d(1992,10,3,16,0,0),
-d(1993,3,27,16,0,0),
-d(1993,10,2,16,0,0),
-d(1994,3,26,16,0,0),
-d(1994,10,1,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,30,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,5,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,4,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,3,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,2,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,6,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,5,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,4,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,2,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,1,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,9,30,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,6,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,4,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,3,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,2,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,1,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,6,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,5,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,4,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,3,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,1,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,9,30,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,6,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,5,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,3,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,2,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,1,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,9,30,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,5,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,4,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,3,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,2,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,9,30,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,6,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,5,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,4,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,2,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,1,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,9,30,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,6,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,4,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,3,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Currie = Currie()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Darwin.py b/vendor/pytz/zoneinfo/Australia/Darwin.py
deleted file mode 100644
index d5113c80..00000000
--- a/vendor/pytz/zoneinfo/Australia/Darwin.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Australia/Darwin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Darwin(DstTzInfo):
- '''Australia/Darwin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Darwin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
- ]
-
-Darwin = Darwin()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Hobart.py b/vendor/pytz/zoneinfo/Australia/Hobart.py
deleted file mode 100644
index 63637312..00000000
--- a/vendor/pytz/zoneinfo/Australia/Hobart.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for Australia/Hobart.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hobart(DstTzInfo):
- '''Australia/Hobart timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Hobart'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,9,30,16,0,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1967,9,30,16,0,0),
-d(1968,3,30,16,0,0),
-d(1968,10,26,16,0,0),
-d(1969,3,8,16,0,0),
-d(1969,10,25,16,0,0),
-d(1970,3,7,16,0,0),
-d(1970,10,24,16,0,0),
-d(1971,3,13,16,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,3,27,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,26,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,1,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,17,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,30,16,0,0),
-d(1991,10,5,16,0,0),
-d(1992,3,28,16,0,0),
-d(1992,10,3,16,0,0),
-d(1993,3,27,16,0,0),
-d(1993,10,2,16,0,0),
-d(1994,3,26,16,0,0),
-d(1994,10,1,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,30,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,5,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,4,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,3,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,2,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,6,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,5,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,4,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,2,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,1,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,9,30,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,6,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,4,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,3,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,2,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,1,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,6,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,5,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,4,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,3,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,1,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,9,30,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,6,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,5,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,3,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,2,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,1,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,9,30,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,5,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,4,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,3,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,2,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,9,30,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,6,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,5,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,4,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,2,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,1,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,9,30,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,6,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,4,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,3,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Hobart = Hobart()
-
diff --git a/vendor/pytz/zoneinfo/Australia/LHI.py b/vendor/pytz/zoneinfo/Australia/LHI.py
deleted file mode 100644
index 9eabe245..00000000
--- a/vendor/pytz/zoneinfo/Australia/LHI.py
+++ /dev/null
@@ -1,248 +0,0 @@
-'''tzinfo timezone information for Australia/LHI.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class LHI(DstTzInfo):
- '''Australia/LHI timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/LHI'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,15,30,0),
-d(1982,3,6,14,30,0),
-d(1982,10,30,15,30,0),
-d(1983,3,5,14,30,0),
-d(1983,10,29,15,30,0),
-d(1984,3,3,14,30,0),
-d(1984,10,27,15,30,0),
-d(1985,3,2,14,30,0),
-d(1985,10,26,15,30,0),
-d(1986,3,15,15,0,0),
-d(1986,10,18,15,30,0),
-d(1987,3,14,15,0,0),
-d(1987,10,24,15,30,0),
-d(1988,3,19,15,0,0),
-d(1988,10,29,15,30,0),
-d(1989,3,18,15,0,0),
-d(1989,10,28,15,30,0),
-d(1990,3,3,15,0,0),
-d(1990,10,27,15,30,0),
-d(1991,3,2,15,0,0),
-d(1991,10,26,15,30,0),
-d(1992,2,29,15,0,0),
-d(1992,10,24,15,30,0),
-d(1993,3,6,15,0,0),
-d(1993,10,30,15,30,0),
-d(1994,3,5,15,0,0),
-d(1994,10,29,15,30,0),
-d(1995,3,4,15,0,0),
-d(1995,10,28,15,30,0),
-d(1996,3,30,15,0,0),
-d(1996,10,26,15,30,0),
-d(1997,3,29,15,0,0),
-d(1997,10,25,15,30,0),
-d(1998,3,28,15,0,0),
-d(1998,10,24,15,30,0),
-d(1999,3,27,15,0,0),
-d(1999,10,30,15,30,0),
-d(2000,3,25,15,0,0),
-d(2000,8,26,15,30,0),
-d(2001,3,24,15,0,0),
-d(2001,10,27,15,30,0),
-d(2002,3,30,15,0,0),
-d(2002,10,26,15,30,0),
-d(2003,3,29,15,0,0),
-d(2003,10,25,15,30,0),
-d(2004,3,27,15,0,0),
-d(2004,10,30,15,30,0),
-d(2005,3,26,15,0,0),
-d(2005,10,29,15,30,0),
-d(2006,4,1,15,0,0),
-d(2006,10,28,15,30,0),
-d(2007,3,24,15,0,0),
-d(2007,10,27,15,30,0),
-d(2008,3,29,15,0,0),
-d(2008,10,25,15,30,0),
-d(2009,3,28,15,0,0),
-d(2009,10,24,15,30,0),
-d(2010,3,27,15,0,0),
-d(2010,10,30,15,30,0),
-d(2011,3,26,15,0,0),
-d(2011,10,29,15,30,0),
-d(2012,3,24,15,0,0),
-d(2012,10,27,15,30,0),
-d(2013,3,30,15,0,0),
-d(2013,10,26,15,30,0),
-d(2014,3,29,15,0,0),
-d(2014,10,25,15,30,0),
-d(2015,3,28,15,0,0),
-d(2015,10,24,15,30,0),
-d(2016,3,26,15,0,0),
-d(2016,10,29,15,30,0),
-d(2017,3,25,15,0,0),
-d(2017,10,28,15,30,0),
-d(2018,3,24,15,0,0),
-d(2018,10,27,15,30,0),
-d(2019,3,30,15,0,0),
-d(2019,10,26,15,30,0),
-d(2020,3,28,15,0,0),
-d(2020,10,24,15,30,0),
-d(2021,3,27,15,0,0),
-d(2021,10,30,15,30,0),
-d(2022,3,26,15,0,0),
-d(2022,10,29,15,30,0),
-d(2023,3,25,15,0,0),
-d(2023,10,28,15,30,0),
-d(2024,3,30,15,0,0),
-d(2024,10,26,15,30,0),
-d(2025,3,29,15,0,0),
-d(2025,10,25,15,30,0),
-d(2026,3,28,15,0,0),
-d(2026,10,24,15,30,0),
-d(2027,3,27,15,0,0),
-d(2027,10,30,15,30,0),
-d(2028,3,25,15,0,0),
-d(2028,10,28,15,30,0),
-d(2029,3,24,15,0,0),
-d(2029,10,27,15,30,0),
-d(2030,3,30,15,0,0),
-d(2030,10,26,15,30,0),
-d(2031,3,29,15,0,0),
-d(2031,10,25,15,30,0),
-d(2032,3,27,15,0,0),
-d(2032,10,30,15,30,0),
-d(2033,3,26,15,0,0),
-d(2033,10,29,15,30,0),
-d(2034,3,25,15,0,0),
-d(2034,10,28,15,30,0),
-d(2035,3,24,15,0,0),
-d(2035,10,27,15,30,0),
-d(2036,3,29,15,0,0),
-d(2036,10,25,15,30,0),
-d(2037,3,28,15,0,0),
-d(2037,10,24,15,30,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
- ]
-
-LHI = LHI()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Lindeman.py b/vendor/pytz/zoneinfo/Australia/Lindeman.py
deleted file mode 100644
index 8b43a9e4..00000000
--- a/vendor/pytz/zoneinfo/Australia/Lindeman.py
+++ /dev/null
@@ -1,62 +0,0 @@
-'''tzinfo timezone information for Australia/Lindeman.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lindeman(DstTzInfo):
- '''Australia/Lindeman timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Lindeman'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,6,30,14,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
- ]
-
-Lindeman = Lindeman()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Lord_Howe.py b/vendor/pytz/zoneinfo/Australia/Lord_Howe.py
deleted file mode 100644
index 95acf6bc..00000000
--- a/vendor/pytz/zoneinfo/Australia/Lord_Howe.py
+++ /dev/null
@@ -1,248 +0,0 @@
-'''tzinfo timezone information for Australia/Lord_Howe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lord_Howe(DstTzInfo):
- '''Australia/Lord_Howe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Lord_Howe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,15,30,0),
-d(1982,3,6,14,30,0),
-d(1982,10,30,15,30,0),
-d(1983,3,5,14,30,0),
-d(1983,10,29,15,30,0),
-d(1984,3,3,14,30,0),
-d(1984,10,27,15,30,0),
-d(1985,3,2,14,30,0),
-d(1985,10,26,15,30,0),
-d(1986,3,15,15,0,0),
-d(1986,10,18,15,30,0),
-d(1987,3,14,15,0,0),
-d(1987,10,24,15,30,0),
-d(1988,3,19,15,0,0),
-d(1988,10,29,15,30,0),
-d(1989,3,18,15,0,0),
-d(1989,10,28,15,30,0),
-d(1990,3,3,15,0,0),
-d(1990,10,27,15,30,0),
-d(1991,3,2,15,0,0),
-d(1991,10,26,15,30,0),
-d(1992,2,29,15,0,0),
-d(1992,10,24,15,30,0),
-d(1993,3,6,15,0,0),
-d(1993,10,30,15,30,0),
-d(1994,3,5,15,0,0),
-d(1994,10,29,15,30,0),
-d(1995,3,4,15,0,0),
-d(1995,10,28,15,30,0),
-d(1996,3,30,15,0,0),
-d(1996,10,26,15,30,0),
-d(1997,3,29,15,0,0),
-d(1997,10,25,15,30,0),
-d(1998,3,28,15,0,0),
-d(1998,10,24,15,30,0),
-d(1999,3,27,15,0,0),
-d(1999,10,30,15,30,0),
-d(2000,3,25,15,0,0),
-d(2000,8,26,15,30,0),
-d(2001,3,24,15,0,0),
-d(2001,10,27,15,30,0),
-d(2002,3,30,15,0,0),
-d(2002,10,26,15,30,0),
-d(2003,3,29,15,0,0),
-d(2003,10,25,15,30,0),
-d(2004,3,27,15,0,0),
-d(2004,10,30,15,30,0),
-d(2005,3,26,15,0,0),
-d(2005,10,29,15,30,0),
-d(2006,4,1,15,0,0),
-d(2006,10,28,15,30,0),
-d(2007,3,24,15,0,0),
-d(2007,10,27,15,30,0),
-d(2008,3,29,15,0,0),
-d(2008,10,25,15,30,0),
-d(2009,3,28,15,0,0),
-d(2009,10,24,15,30,0),
-d(2010,3,27,15,0,0),
-d(2010,10,30,15,30,0),
-d(2011,3,26,15,0,0),
-d(2011,10,29,15,30,0),
-d(2012,3,24,15,0,0),
-d(2012,10,27,15,30,0),
-d(2013,3,30,15,0,0),
-d(2013,10,26,15,30,0),
-d(2014,3,29,15,0,0),
-d(2014,10,25,15,30,0),
-d(2015,3,28,15,0,0),
-d(2015,10,24,15,30,0),
-d(2016,3,26,15,0,0),
-d(2016,10,29,15,30,0),
-d(2017,3,25,15,0,0),
-d(2017,10,28,15,30,0),
-d(2018,3,24,15,0,0),
-d(2018,10,27,15,30,0),
-d(2019,3,30,15,0,0),
-d(2019,10,26,15,30,0),
-d(2020,3,28,15,0,0),
-d(2020,10,24,15,30,0),
-d(2021,3,27,15,0,0),
-d(2021,10,30,15,30,0),
-d(2022,3,26,15,0,0),
-d(2022,10,29,15,30,0),
-d(2023,3,25,15,0,0),
-d(2023,10,28,15,30,0),
-d(2024,3,30,15,0,0),
-d(2024,10,26,15,30,0),
-d(2025,3,29,15,0,0),
-d(2025,10,25,15,30,0),
-d(2026,3,28,15,0,0),
-d(2026,10,24,15,30,0),
-d(2027,3,27,15,0,0),
-d(2027,10,30,15,30,0),
-d(2028,3,25,15,0,0),
-d(2028,10,28,15,30,0),
-d(2029,3,24,15,0,0),
-d(2029,10,27,15,30,0),
-d(2030,3,30,15,0,0),
-d(2030,10,26,15,30,0),
-d(2031,3,29,15,0,0),
-d(2031,10,25,15,30,0),
-d(2032,3,27,15,0,0),
-d(2032,10,30,15,30,0),
-d(2033,3,26,15,0,0),
-d(2033,10,29,15,30,0),
-d(2034,3,25,15,0,0),
-d(2034,10,28,15,30,0),
-d(2035,3,24,15,0,0),
-d(2035,10,27,15,30,0),
-d(2036,3,29,15,0,0),
-d(2036,10,25,15,30,0),
-d(2037,3,28,15,0,0),
-d(2037,10,24,15,30,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(41400,3600,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
-i(37800,0,'LHST'),
-i(39600,1800,'LHST'),
- ]
-
-Lord_Howe = Lord_Howe()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Melbourne.py b/vendor/pytz/zoneinfo/Australia/Melbourne.py
deleted file mode 100644
index a6cde240..00000000
--- a/vendor/pytz/zoneinfo/Australia/Melbourne.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Melbourne.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Melbourne(DstTzInfo):
- '''Australia/Melbourne timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Melbourne'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,3,6,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,17,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,17,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Melbourne = Melbourne()
-
diff --git a/vendor/pytz/zoneinfo/Australia/NSW.py b/vendor/pytz/zoneinfo/Australia/NSW.py
deleted file mode 100644
index 6a821dfb..00000000
--- a/vendor/pytz/zoneinfo/Australia/NSW.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/NSW.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class NSW(DstTzInfo):
- '''Australia/NSW timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/NSW'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,4,3,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,4,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-NSW = NSW()
-
diff --git a/vendor/pytz/zoneinfo/Australia/North.py b/vendor/pytz/zoneinfo/Australia/North.py
deleted file mode 100644
index 5ce0f278..00000000
--- a/vendor/pytz/zoneinfo/Australia/North.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Australia/North.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class North(DstTzInfo):
- '''Australia/North timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/North'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
- ]
-
-North = North()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Perth.py b/vendor/pytz/zoneinfo/Australia/Perth.py
deleted file mode 100644
index 6da6f97f..00000000
--- a/vendor/pytz/zoneinfo/Australia/Perth.py
+++ /dev/null
@@ -1,56 +0,0 @@
-'''tzinfo timezone information for Australia/Perth.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Perth(DstTzInfo):
- '''Australia/Perth timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Perth'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,16,1,0),
-d(1917,3,24,17,0,0),
-d(1941,12,31,18,0,0),
-d(1942,3,28,17,0,0),
-d(1942,9,26,18,0,0),
-d(1943,3,27,17,0,0),
-d(1974,10,26,18,0,0),
-d(1975,3,1,18,0,0),
-d(1983,10,29,18,0,0),
-d(1984,3,3,18,0,0),
-d(1991,11,16,18,0,0),
-d(1992,2,29,18,0,0),
-d(2006,12,2,18,0,0),
-d(2007,3,24,18,0,0),
-d(2007,10,27,18,0,0),
-d(2008,3,29,18,0,0),
-d(2008,10,25,18,0,0),
-d(2009,3,28,18,0,0),
- ]
-
- _transition_info = [
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
- ]
-
-Perth = Perth()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Queensland.py b/vendor/pytz/zoneinfo/Australia/Queensland.py
deleted file mode 100644
index 248d5f54..00000000
--- a/vendor/pytz/zoneinfo/Australia/Queensland.py
+++ /dev/null
@@ -1,52 +0,0 @@
-'''tzinfo timezone information for Australia/Queensland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Queensland(DstTzInfo):
- '''Australia/Queensland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Queensland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
- ]
-
-Queensland = Queensland()
-
diff --git a/vendor/pytz/zoneinfo/Australia/South.py b/vendor/pytz/zoneinfo/Australia/South.py
deleted file mode 100644
index 040489b2..00000000
--- a/vendor/pytz/zoneinfo/Australia/South.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/South.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class South(DstTzInfo):
- '''Australia/South timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/South'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
-d(1971,10,30,16,30,0),
-d(1972,2,26,16,30,0),
-d(1972,10,28,16,30,0),
-d(1973,3,3,16,30,0),
-d(1973,10,27,16,30,0),
-d(1974,3,2,16,30,0),
-d(1974,10,26,16,30,0),
-d(1975,3,1,16,30,0),
-d(1975,10,25,16,30,0),
-d(1976,3,6,16,30,0),
-d(1976,10,30,16,30,0),
-d(1977,3,5,16,30,0),
-d(1977,10,29,16,30,0),
-d(1978,3,4,16,30,0),
-d(1978,10,28,16,30,0),
-d(1979,3,3,16,30,0),
-d(1979,10,27,16,30,0),
-d(1980,3,1,16,30,0),
-d(1980,10,25,16,30,0),
-d(1981,2,28,16,30,0),
-d(1981,10,24,16,30,0),
-d(1982,3,6,16,30,0),
-d(1982,10,30,16,30,0),
-d(1983,3,5,16,30,0),
-d(1983,10,29,16,30,0),
-d(1984,3,3,16,30,0),
-d(1984,10,27,16,30,0),
-d(1985,3,2,16,30,0),
-d(1985,10,26,16,30,0),
-d(1986,3,15,16,30,0),
-d(1986,10,18,16,30,0),
-d(1987,3,14,16,30,0),
-d(1987,10,24,16,30,0),
-d(1988,3,19,16,30,0),
-d(1988,10,29,16,30,0),
-d(1989,3,18,16,30,0),
-d(1989,10,28,16,30,0),
-d(1990,3,17,16,30,0),
-d(1990,10,27,16,30,0),
-d(1991,3,2,16,30,0),
-d(1991,10,26,16,30,0),
-d(1992,3,21,16,30,0),
-d(1992,10,24,16,30,0),
-d(1993,3,6,16,30,0),
-d(1993,10,30,16,30,0),
-d(1994,3,19,16,30,0),
-d(1994,10,29,16,30,0),
-d(1995,3,25,16,30,0),
-d(1995,10,28,16,30,0),
-d(1996,3,30,16,30,0),
-d(1996,10,26,16,30,0),
-d(1997,3,29,16,30,0),
-d(1997,10,25,16,30,0),
-d(1998,3,28,16,30,0),
-d(1998,10,24,16,30,0),
-d(1999,3,27,16,30,0),
-d(1999,10,30,16,30,0),
-d(2000,3,25,16,30,0),
-d(2000,10,28,16,30,0),
-d(2001,3,24,16,30,0),
-d(2001,10,27,16,30,0),
-d(2002,3,30,16,30,0),
-d(2002,10,26,16,30,0),
-d(2003,3,29,16,30,0),
-d(2003,10,25,16,30,0),
-d(2004,3,27,16,30,0),
-d(2004,10,30,16,30,0),
-d(2005,3,26,16,30,0),
-d(2005,10,29,16,30,0),
-d(2006,4,1,16,30,0),
-d(2006,10,28,16,30,0),
-d(2007,3,24,16,30,0),
-d(2007,10,27,16,30,0),
-d(2008,3,29,16,30,0),
-d(2008,10,25,16,30,0),
-d(2009,3,28,16,30,0),
-d(2009,10,24,16,30,0),
-d(2010,3,27,16,30,0),
-d(2010,10,30,16,30,0),
-d(2011,3,26,16,30,0),
-d(2011,10,29,16,30,0),
-d(2012,3,24,16,30,0),
-d(2012,10,27,16,30,0),
-d(2013,3,30,16,30,0),
-d(2013,10,26,16,30,0),
-d(2014,3,29,16,30,0),
-d(2014,10,25,16,30,0),
-d(2015,3,28,16,30,0),
-d(2015,10,24,16,30,0),
-d(2016,3,26,16,30,0),
-d(2016,10,29,16,30,0),
-d(2017,3,25,16,30,0),
-d(2017,10,28,16,30,0),
-d(2018,3,24,16,30,0),
-d(2018,10,27,16,30,0),
-d(2019,3,30,16,30,0),
-d(2019,10,26,16,30,0),
-d(2020,3,28,16,30,0),
-d(2020,10,24,16,30,0),
-d(2021,3,27,16,30,0),
-d(2021,10,30,16,30,0),
-d(2022,3,26,16,30,0),
-d(2022,10,29,16,30,0),
-d(2023,3,25,16,30,0),
-d(2023,10,28,16,30,0),
-d(2024,3,30,16,30,0),
-d(2024,10,26,16,30,0),
-d(2025,3,29,16,30,0),
-d(2025,10,25,16,30,0),
-d(2026,3,28,16,30,0),
-d(2026,10,24,16,30,0),
-d(2027,3,27,16,30,0),
-d(2027,10,30,16,30,0),
-d(2028,3,25,16,30,0),
-d(2028,10,28,16,30,0),
-d(2029,3,24,16,30,0),
-d(2029,10,27,16,30,0),
-d(2030,3,30,16,30,0),
-d(2030,10,26,16,30,0),
-d(2031,3,29,16,30,0),
-d(2031,10,25,16,30,0),
-d(2032,3,27,16,30,0),
-d(2032,10,30,16,30,0),
-d(2033,3,26,16,30,0),
-d(2033,10,29,16,30,0),
-d(2034,3,25,16,30,0),
-d(2034,10,28,16,30,0),
-d(2035,3,24,16,30,0),
-d(2035,10,27,16,30,0),
-d(2036,3,29,16,30,0),
-d(2036,10,25,16,30,0),
-d(2037,3,28,16,30,0),
-d(2037,10,24,16,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
- ]
-
-South = South()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Sydney.py b/vendor/pytz/zoneinfo/Australia/Sydney.py
deleted file mode 100644
index 0aba0178..00000000
--- a/vendor/pytz/zoneinfo/Australia/Sydney.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Sydney.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sydney(DstTzInfo):
- '''Australia/Sydney timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Sydney'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,4,3,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,3,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,4,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Sydney = Sydney()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Tasmania.py b/vendor/pytz/zoneinfo/Australia/Tasmania.py
deleted file mode 100644
index a16d293d..00000000
--- a/vendor/pytz/zoneinfo/Australia/Tasmania.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for Australia/Tasmania.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tasmania(DstTzInfo):
- '''Australia/Tasmania timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Tasmania'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,9,30,16,0,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1967,9,30,16,0,0),
-d(1968,3,30,16,0,0),
-d(1968,10,26,16,0,0),
-d(1969,3,8,16,0,0),
-d(1969,10,25,16,0,0),
-d(1970,3,7,16,0,0),
-d(1970,10,24,16,0,0),
-d(1971,3,13,16,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,3,27,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,26,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,1,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,24,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,17,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,30,16,0,0),
-d(1991,10,5,16,0,0),
-d(1992,3,28,16,0,0),
-d(1992,10,3,16,0,0),
-d(1993,3,27,16,0,0),
-d(1993,10,2,16,0,0),
-d(1994,3,26,16,0,0),
-d(1994,10,1,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,9,30,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,5,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,4,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,3,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,2,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,6,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,5,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,4,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,2,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,1,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,9,30,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,6,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,4,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,3,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,2,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,1,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,6,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,5,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,4,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,3,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,1,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,9,30,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,6,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,5,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,3,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,2,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,1,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,9,30,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,5,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,4,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,3,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,2,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,9,30,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,6,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,5,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,4,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,2,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,1,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,9,30,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,6,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,4,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,3,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Tasmania = Tasmania()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Victoria.py b/vendor/pytz/zoneinfo/Australia/Victoria.py
deleted file mode 100644
index 7ce55b5d..00000000
--- a/vendor/pytz/zoneinfo/Australia/Victoria.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Australia/Victoria.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Victoria(DstTzInfo):
- '''Australia/Victoria timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Victoria'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,1,0),
-d(1917,3,24,15,0,0),
-d(1941,12,31,16,0,0),
-d(1942,3,28,15,0,0),
-d(1942,9,26,16,0,0),
-d(1943,3,27,15,0,0),
-d(1943,10,2,16,0,0),
-d(1944,3,25,15,0,0),
-d(1971,10,30,16,0,0),
-d(1972,2,26,16,0,0),
-d(1972,10,28,16,0,0),
-d(1973,3,3,16,0,0),
-d(1973,10,27,16,0,0),
-d(1974,3,2,16,0,0),
-d(1974,10,26,16,0,0),
-d(1975,3,1,16,0,0),
-d(1975,10,25,16,0,0),
-d(1976,3,6,16,0,0),
-d(1976,10,30,16,0,0),
-d(1977,3,5,16,0,0),
-d(1977,10,29,16,0,0),
-d(1978,3,4,16,0,0),
-d(1978,10,28,16,0,0),
-d(1979,3,3,16,0,0),
-d(1979,10,27,16,0,0),
-d(1980,3,1,16,0,0),
-d(1980,10,25,16,0,0),
-d(1981,2,28,16,0,0),
-d(1981,10,24,16,0,0),
-d(1982,3,6,16,0,0),
-d(1982,10,30,16,0,0),
-d(1983,3,5,16,0,0),
-d(1983,10,29,16,0,0),
-d(1984,3,3,16,0,0),
-d(1984,10,27,16,0,0),
-d(1985,3,2,16,0,0),
-d(1985,10,26,16,0,0),
-d(1986,3,15,16,0,0),
-d(1986,10,18,16,0,0),
-d(1987,3,14,16,0,0),
-d(1987,10,17,16,0,0),
-d(1988,3,19,16,0,0),
-d(1988,10,29,16,0,0),
-d(1989,3,18,16,0,0),
-d(1989,10,28,16,0,0),
-d(1990,3,17,16,0,0),
-d(1990,10,27,16,0,0),
-d(1991,3,2,16,0,0),
-d(1991,10,26,16,0,0),
-d(1992,2,29,16,0,0),
-d(1992,10,24,16,0,0),
-d(1993,3,6,16,0,0),
-d(1993,10,30,16,0,0),
-d(1994,3,5,16,0,0),
-d(1994,10,29,16,0,0),
-d(1995,3,25,16,0,0),
-d(1995,10,28,16,0,0),
-d(1996,3,30,16,0,0),
-d(1996,10,26,16,0,0),
-d(1997,3,29,16,0,0),
-d(1997,10,25,16,0,0),
-d(1998,3,28,16,0,0),
-d(1998,10,24,16,0,0),
-d(1999,3,27,16,0,0),
-d(1999,10,30,16,0,0),
-d(2000,3,25,16,0,0),
-d(2000,8,26,16,0,0),
-d(2001,3,24,16,0,0),
-d(2001,10,27,16,0,0),
-d(2002,3,30,16,0,0),
-d(2002,10,26,16,0,0),
-d(2003,3,29,16,0,0),
-d(2003,10,25,16,0,0),
-d(2004,3,27,16,0,0),
-d(2004,10,30,16,0,0),
-d(2005,3,26,16,0,0),
-d(2005,10,29,16,0,0),
-d(2006,4,1,16,0,0),
-d(2006,10,28,16,0,0),
-d(2007,3,24,16,0,0),
-d(2007,10,27,16,0,0),
-d(2008,3,29,16,0,0),
-d(2008,10,25,16,0,0),
-d(2009,3,28,16,0,0),
-d(2009,10,24,16,0,0),
-d(2010,3,27,16,0,0),
-d(2010,10,30,16,0,0),
-d(2011,3,26,16,0,0),
-d(2011,10,29,16,0,0),
-d(2012,3,24,16,0,0),
-d(2012,10,27,16,0,0),
-d(2013,3,30,16,0,0),
-d(2013,10,26,16,0,0),
-d(2014,3,29,16,0,0),
-d(2014,10,25,16,0,0),
-d(2015,3,28,16,0,0),
-d(2015,10,24,16,0,0),
-d(2016,3,26,16,0,0),
-d(2016,10,29,16,0,0),
-d(2017,3,25,16,0,0),
-d(2017,10,28,16,0,0),
-d(2018,3,24,16,0,0),
-d(2018,10,27,16,0,0),
-d(2019,3,30,16,0,0),
-d(2019,10,26,16,0,0),
-d(2020,3,28,16,0,0),
-d(2020,10,24,16,0,0),
-d(2021,3,27,16,0,0),
-d(2021,10,30,16,0,0),
-d(2022,3,26,16,0,0),
-d(2022,10,29,16,0,0),
-d(2023,3,25,16,0,0),
-d(2023,10,28,16,0,0),
-d(2024,3,30,16,0,0),
-d(2024,10,26,16,0,0),
-d(2025,3,29,16,0,0),
-d(2025,10,25,16,0,0),
-d(2026,3,28,16,0,0),
-d(2026,10,24,16,0,0),
-d(2027,3,27,16,0,0),
-d(2027,10,30,16,0,0),
-d(2028,3,25,16,0,0),
-d(2028,10,28,16,0,0),
-d(2029,3,24,16,0,0),
-d(2029,10,27,16,0,0),
-d(2030,3,30,16,0,0),
-d(2030,10,26,16,0,0),
-d(2031,3,29,16,0,0),
-d(2031,10,25,16,0,0),
-d(2032,3,27,16,0,0),
-d(2032,10,30,16,0,0),
-d(2033,3,26,16,0,0),
-d(2033,10,29,16,0,0),
-d(2034,3,25,16,0,0),
-d(2034,10,28,16,0,0),
-d(2035,3,24,16,0,0),
-d(2035,10,27,16,0,0),
-d(2036,3,29,16,0,0),
-d(2036,10,25,16,0,0),
-d(2037,3,28,16,0,0),
-d(2037,10,24,16,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
-i(36000,0,'EST'),
-i(39600,3600,'EST'),
- ]
-
-Victoria = Victoria()
-
diff --git a/vendor/pytz/zoneinfo/Australia/West.py b/vendor/pytz/zoneinfo/Australia/West.py
deleted file mode 100644
index 90dc4d7a..00000000
--- a/vendor/pytz/zoneinfo/Australia/West.py
+++ /dev/null
@@ -1,56 +0,0 @@
-'''tzinfo timezone information for Australia/West.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class West(DstTzInfo):
- '''Australia/West timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/West'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,16,1,0),
-d(1917,3,24,17,0,0),
-d(1941,12,31,18,0,0),
-d(1942,3,28,17,0,0),
-d(1942,9,26,18,0,0),
-d(1943,3,27,17,0,0),
-d(1974,10,26,18,0,0),
-d(1975,3,1,18,0,0),
-d(1983,10,29,18,0,0),
-d(1984,3,3,18,0,0),
-d(1991,11,16,18,0,0),
-d(1992,2,29,18,0,0),
-d(2006,12,2,18,0,0),
-d(2007,3,24,18,0,0),
-d(2007,10,27,18,0,0),
-d(2008,3,29,18,0,0),
-d(2008,10,25,18,0,0),
-d(2009,3,28,18,0,0),
- ]
-
- _transition_info = [
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
-i(32400,3600,'WST'),
-i(28800,0,'WST'),
- ]
-
-West = West()
-
diff --git a/vendor/pytz/zoneinfo/Australia/Yancowinna.py b/vendor/pytz/zoneinfo/Australia/Yancowinna.py
deleted file mode 100644
index 5a0883e9..00000000
--- a/vendor/pytz/zoneinfo/Australia/Yancowinna.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for Australia/Yancowinna.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yancowinna(DstTzInfo):
- '''Australia/Yancowinna timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Australia/Yancowinna'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,14,31,0),
-d(1917,3,24,15,30,0),
-d(1941,12,31,16,30,0),
-d(1942,3,28,15,30,0),
-d(1942,9,26,16,30,0),
-d(1943,3,27,15,30,0),
-d(1943,10,2,16,30,0),
-d(1944,3,25,15,30,0),
-d(1971,10,30,16,30,0),
-d(1972,2,26,16,30,0),
-d(1972,10,28,16,30,0),
-d(1973,3,3,16,30,0),
-d(1973,10,27,16,30,0),
-d(1974,3,2,16,30,0),
-d(1974,10,26,16,30,0),
-d(1975,3,1,16,30,0),
-d(1975,10,25,16,30,0),
-d(1976,3,6,16,30,0),
-d(1976,10,30,16,30,0),
-d(1977,3,5,16,30,0),
-d(1977,10,29,16,30,0),
-d(1978,3,4,16,30,0),
-d(1978,10,28,16,30,0),
-d(1979,3,3,16,30,0),
-d(1979,10,27,16,30,0),
-d(1980,3,1,16,30,0),
-d(1980,10,25,16,30,0),
-d(1981,2,28,16,30,0),
-d(1981,10,24,16,30,0),
-d(1982,4,3,16,30,0),
-d(1982,10,30,16,30,0),
-d(1983,3,5,16,30,0),
-d(1983,10,29,16,30,0),
-d(1984,3,3,16,30,0),
-d(1984,10,27,16,30,0),
-d(1985,3,2,16,30,0),
-d(1985,10,26,16,30,0),
-d(1986,3,15,16,30,0),
-d(1986,10,18,16,30,0),
-d(1987,3,14,16,30,0),
-d(1987,10,24,16,30,0),
-d(1988,3,19,16,30,0),
-d(1988,10,29,16,30,0),
-d(1989,3,18,16,30,0),
-d(1989,10,28,16,30,0),
-d(1990,3,3,16,30,0),
-d(1990,10,27,16,30,0),
-d(1991,3,2,16,30,0),
-d(1991,10,26,16,30,0),
-d(1992,2,29,16,30,0),
-d(1992,10,24,16,30,0),
-d(1993,3,6,16,30,0),
-d(1993,10,30,16,30,0),
-d(1994,3,5,16,30,0),
-d(1994,10,29,16,30,0),
-d(1995,3,4,16,30,0),
-d(1995,10,28,16,30,0),
-d(1996,3,30,16,30,0),
-d(1996,10,26,16,30,0),
-d(1997,3,29,16,30,0),
-d(1997,10,25,16,30,0),
-d(1998,3,28,16,30,0),
-d(1998,10,24,16,30,0),
-d(1999,3,27,16,30,0),
-d(1999,10,30,16,30,0),
-d(1999,12,31,13,30,0),
-d(2000,3,25,16,30,0),
-d(2000,10,28,16,30,0),
-d(2001,3,24,16,30,0),
-d(2001,10,27,16,30,0),
-d(2002,3,30,16,30,0),
-d(2002,10,26,16,30,0),
-d(2003,3,29,16,30,0),
-d(2003,10,25,16,30,0),
-d(2004,3,27,16,30,0),
-d(2004,10,30,16,30,0),
-d(2005,3,26,16,30,0),
-d(2005,10,29,16,30,0),
-d(2006,4,1,16,30,0),
-d(2006,10,28,16,30,0),
-d(2007,3,24,16,30,0),
-d(2007,10,27,16,30,0),
-d(2008,3,29,16,30,0),
-d(2008,10,25,16,30,0),
-d(2009,3,28,16,30,0),
-d(2009,10,24,16,30,0),
-d(2010,3,27,16,30,0),
-d(2010,10,30,16,30,0),
-d(2011,3,26,16,30,0),
-d(2011,10,29,16,30,0),
-d(2012,3,24,16,30,0),
-d(2012,10,27,16,30,0),
-d(2013,3,30,16,30,0),
-d(2013,10,26,16,30,0),
-d(2014,3,29,16,30,0),
-d(2014,10,25,16,30,0),
-d(2015,3,28,16,30,0),
-d(2015,10,24,16,30,0),
-d(2016,3,26,16,30,0),
-d(2016,10,29,16,30,0),
-d(2017,3,25,16,30,0),
-d(2017,10,28,16,30,0),
-d(2018,3,24,16,30,0),
-d(2018,10,27,16,30,0),
-d(2019,3,30,16,30,0),
-d(2019,10,26,16,30,0),
-d(2020,3,28,16,30,0),
-d(2020,10,24,16,30,0),
-d(2021,3,27,16,30,0),
-d(2021,10,30,16,30,0),
-d(2022,3,26,16,30,0),
-d(2022,10,29,16,30,0),
-d(2023,3,25,16,30,0),
-d(2023,10,28,16,30,0),
-d(2024,3,30,16,30,0),
-d(2024,10,26,16,30,0),
-d(2025,3,29,16,30,0),
-d(2025,10,25,16,30,0),
-d(2026,3,28,16,30,0),
-d(2026,10,24,16,30,0),
-d(2027,3,27,16,30,0),
-d(2027,10,30,16,30,0),
-d(2028,3,25,16,30,0),
-d(2028,10,28,16,30,0),
-d(2029,3,24,16,30,0),
-d(2029,10,27,16,30,0),
-d(2030,3,30,16,30,0),
-d(2030,10,26,16,30,0),
-d(2031,3,29,16,30,0),
-d(2031,10,25,16,30,0),
-d(2032,3,27,16,30,0),
-d(2032,10,30,16,30,0),
-d(2033,3,26,16,30,0),
-d(2033,10,29,16,30,0),
-d(2034,3,25,16,30,0),
-d(2034,10,28,16,30,0),
-d(2035,3,24,16,30,0),
-d(2035,10,27,16,30,0),
-d(2036,3,29,16,30,0),
-d(2036,10,25,16,30,0),
-d(2037,3,28,16,30,0),
-d(2037,10,24,16,30,0),
- ]
-
- _transition_info = [
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
-i(34200,0,'CST'),
-i(37800,3600,'CST'),
- ]
-
-Yancowinna = Yancowinna()
-
diff --git a/vendor/pytz/zoneinfo/Australia/__init__.py b/vendor/pytz/zoneinfo/Australia/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Brazil/Acre.py b/vendor/pytz/zoneinfo/Brazil/Acre.py
deleted file mode 100644
index e1f86e97..00000000
--- a/vendor/pytz/zoneinfo/Brazil/Acre.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for Brazil/Acre.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Acre(DstTzInfo):
- '''Brazil/Acre timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Brazil/Acre'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,31,12),
-d(1931,10,3,16,0,0),
-d(1932,4,1,4,0,0),
-d(1932,10,3,5,0,0),
-d(1933,4,1,4,0,0),
-d(1949,12,1,5,0,0),
-d(1950,4,16,5,0,0),
-d(1950,12,1,5,0,0),
-d(1951,4,1,4,0,0),
-d(1951,12,1,5,0,0),
-d(1952,4,1,4,0,0),
-d(1952,12,1,5,0,0),
-d(1953,3,1,4,0,0),
-d(1963,12,9,5,0,0),
-d(1964,3,1,4,0,0),
-d(1965,1,31,5,0,0),
-d(1965,3,31,4,0,0),
-d(1965,12,1,5,0,0),
-d(1966,3,1,4,0,0),
-d(1966,11,1,5,0,0),
-d(1967,3,1,4,0,0),
-d(1967,11,1,5,0,0),
-d(1968,3,1,4,0,0),
-d(1985,11,2,5,0,0),
-d(1986,3,15,4,0,0),
-d(1986,10,25,5,0,0),
-d(1987,2,14,4,0,0),
-d(1987,10,25,5,0,0),
-d(1988,2,7,4,0,0),
- ]
-
- _transition_info = [
-i(-16260,0,'LMT'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
-i(-14400,3600,'ACST'),
-i(-18000,0,'ACT'),
- ]
-
-Acre = Acre()
-
diff --git a/vendor/pytz/zoneinfo/Brazil/DeNoronha.py b/vendor/pytz/zoneinfo/Brazil/DeNoronha.py
deleted file mode 100644
index 240aac55..00000000
--- a/vendor/pytz/zoneinfo/Brazil/DeNoronha.py
+++ /dev/null
@@ -1,98 +0,0 @@
-'''tzinfo timezone information for Brazil/DeNoronha.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class DeNoronha(DstTzInfo):
- '''Brazil/DeNoronha timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Brazil/DeNoronha'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,2,9,40),
-d(1931,10,3,13,0,0),
-d(1932,4,1,1,0,0),
-d(1932,10,3,2,0,0),
-d(1933,4,1,1,0,0),
-d(1949,12,1,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,12,1,2,0,0),
-d(1951,4,1,1,0,0),
-d(1951,12,1,2,0,0),
-d(1952,4,1,1,0,0),
-d(1952,12,1,2,0,0),
-d(1953,3,1,1,0,0),
-d(1963,12,9,2,0,0),
-d(1964,3,1,1,0,0),
-d(1965,1,31,2,0,0),
-d(1965,3,31,1,0,0),
-d(1965,12,1,2,0,0),
-d(1966,3,1,1,0,0),
-d(1966,11,1,2,0,0),
-d(1967,3,1,1,0,0),
-d(1967,11,1,2,0,0),
-d(1968,3,1,1,0,0),
-d(1985,11,2,2,0,0),
-d(1986,3,15,1,0,0),
-d(1986,10,25,2,0,0),
-d(1987,2,14,1,0,0),
-d(1987,10,25,2,0,0),
-d(1988,2,7,1,0,0),
-d(1988,10,16,2,0,0),
-d(1989,1,29,1,0,0),
-d(1989,10,15,2,0,0),
-d(1990,2,11,1,0,0),
-d(1999,10,3,2,0,0),
-d(2000,2,27,1,0,0),
-d(2000,10,8,2,0,0),
-d(2000,10,15,1,0,0),
-d(2001,10,14,2,0,0),
-d(2002,2,17,1,0,0),
- ]
-
- _transition_info = [
-i(-7800,0,'LMT'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
-i(-3600,3600,'FNST'),
-i(-7200,0,'FNT'),
- ]
-
-DeNoronha = DeNoronha()
-
diff --git a/vendor/pytz/zoneinfo/Brazil/East.py b/vendor/pytz/zoneinfo/Brazil/East.py
deleted file mode 100644
index 0e0c7122..00000000
--- a/vendor/pytz/zoneinfo/Brazil/East.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for Brazil/East.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class East(DstTzInfo):
- '''Brazil/East timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Brazil/East'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,3,6,28),
-d(1931,10,3,14,0,0),
-d(1932,4,1,2,0,0),
-d(1932,10,3,3,0,0),
-d(1933,4,1,2,0,0),
-d(1949,12,1,3,0,0),
-d(1950,4,16,3,0,0),
-d(1950,12,1,3,0,0),
-d(1951,4,1,2,0,0),
-d(1951,12,1,3,0,0),
-d(1952,4,1,2,0,0),
-d(1952,12,1,3,0,0),
-d(1953,3,1,2,0,0),
-d(1963,10,23,3,0,0),
-d(1964,3,1,2,0,0),
-d(1965,1,31,3,0,0),
-d(1965,3,31,2,0,0),
-d(1965,12,1,3,0,0),
-d(1966,3,1,2,0,0),
-d(1966,11,1,3,0,0),
-d(1967,3,1,2,0,0),
-d(1967,11,1,3,0,0),
-d(1968,3,1,2,0,0),
-d(1985,11,2,3,0,0),
-d(1986,3,15,2,0,0),
-d(1986,10,25,3,0,0),
-d(1987,2,14,2,0,0),
-d(1987,10,25,3,0,0),
-d(1988,2,7,2,0,0),
-d(1988,10,16,3,0,0),
-d(1989,1,29,2,0,0),
-d(1989,10,15,3,0,0),
-d(1990,2,11,2,0,0),
-d(1990,10,21,3,0,0),
-d(1991,2,17,2,0,0),
-d(1991,10,20,3,0,0),
-d(1992,2,9,2,0,0),
-d(1992,10,25,3,0,0),
-d(1993,1,31,2,0,0),
-d(1993,10,17,3,0,0),
-d(1994,2,20,2,0,0),
-d(1994,10,16,3,0,0),
-d(1995,2,19,2,0,0),
-d(1995,10,15,3,0,0),
-d(1996,2,11,2,0,0),
-d(1996,10,6,3,0,0),
-d(1997,2,16,2,0,0),
-d(1997,10,6,3,0,0),
-d(1998,3,1,2,0,0),
-d(1998,10,11,3,0,0),
-d(1999,2,21,2,0,0),
-d(1999,10,3,3,0,0),
-d(2000,2,27,2,0,0),
-d(2000,10,8,3,0,0),
-d(2001,2,18,2,0,0),
-d(2001,10,14,3,0,0),
-d(2002,2,17,2,0,0),
-d(2002,11,3,3,0,0),
-d(2003,2,16,2,0,0),
-d(2003,10,19,3,0,0),
-d(2004,2,15,2,0,0),
-d(2004,11,2,3,0,0),
-d(2005,2,20,2,0,0),
-d(2005,10,16,3,0,0),
-d(2006,2,19,2,0,0),
-d(2006,11,5,3,0,0),
-d(2007,2,25,2,0,0),
-d(2007,11,4,3,0,0),
-d(2008,2,24,2,0,0),
-d(2008,11,2,3,0,0),
-d(2009,2,22,2,0,0),
-d(2009,11,1,3,0,0),
-d(2010,2,28,2,0,0),
-d(2010,11,7,3,0,0),
-d(2011,2,27,2,0,0),
-d(2011,11,6,3,0,0),
-d(2012,2,26,2,0,0),
-d(2012,11,4,3,0,0),
-d(2013,2,24,2,0,0),
-d(2013,11,3,3,0,0),
-d(2014,2,23,2,0,0),
-d(2014,11,2,3,0,0),
-d(2015,2,22,2,0,0),
-d(2015,11,1,3,0,0),
-d(2016,2,28,2,0,0),
-d(2016,11,6,3,0,0),
-d(2017,2,26,2,0,0),
-d(2017,11,5,3,0,0),
-d(2018,2,25,2,0,0),
-d(2018,11,4,3,0,0),
-d(2019,2,24,2,0,0),
-d(2019,11,3,3,0,0),
-d(2020,2,23,2,0,0),
-d(2020,11,1,3,0,0),
-d(2021,2,28,2,0,0),
-d(2021,11,7,3,0,0),
-d(2022,2,27,2,0,0),
-d(2022,11,6,3,0,0),
-d(2023,2,26,2,0,0),
-d(2023,11,5,3,0,0),
-d(2024,2,25,2,0,0),
-d(2024,11,3,3,0,0),
-d(2025,2,23,2,0,0),
-d(2025,11,2,3,0,0),
-d(2026,2,22,2,0,0),
-d(2026,11,1,3,0,0),
-d(2027,2,28,2,0,0),
-d(2027,11,7,3,0,0),
-d(2028,2,27,2,0,0),
-d(2028,11,5,3,0,0),
-d(2029,2,25,2,0,0),
-d(2029,11,4,3,0,0),
-d(2030,2,24,2,0,0),
-d(2030,11,3,3,0,0),
-d(2031,2,23,2,0,0),
-d(2031,11,2,3,0,0),
-d(2032,2,29,2,0,0),
-d(2032,11,7,3,0,0),
-d(2033,2,27,2,0,0),
-d(2033,11,6,3,0,0),
-d(2034,2,26,2,0,0),
-d(2034,11,5,3,0,0),
-d(2035,2,25,2,0,0),
-d(2035,11,4,3,0,0),
-d(2036,2,24,2,0,0),
-d(2036,11,2,3,0,0),
-d(2037,2,22,2,0,0),
-d(2037,11,1,3,0,0),
- ]
-
- _transition_info = [
-i(-11160,0,'LMT'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
-i(-10800,0,'BRT'),
-i(-7200,3600,'BRST'),
- ]
-
-East = East()
-
diff --git a/vendor/pytz/zoneinfo/Brazil/West.py b/vendor/pytz/zoneinfo/Brazil/West.py
deleted file mode 100644
index b18d9313..00000000
--- a/vendor/pytz/zoneinfo/Brazil/West.py
+++ /dev/null
@@ -1,82 +0,0 @@
-'''tzinfo timezone information for Brazil/West.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class West(DstTzInfo):
- '''Brazil/West timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Brazil/West'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,1,1,4,0,4),
-d(1931,10,3,15,0,0),
-d(1932,4,1,3,0,0),
-d(1932,10,3,4,0,0),
-d(1933,4,1,3,0,0),
-d(1949,12,1,4,0,0),
-d(1950,4,16,4,0,0),
-d(1950,12,1,4,0,0),
-d(1951,4,1,3,0,0),
-d(1951,12,1,4,0,0),
-d(1952,4,1,3,0,0),
-d(1952,12,1,4,0,0),
-d(1953,3,1,3,0,0),
-d(1963,12,9,4,0,0),
-d(1964,3,1,3,0,0),
-d(1965,1,31,4,0,0),
-d(1965,3,31,3,0,0),
-d(1965,12,1,4,0,0),
-d(1966,3,1,3,0,0),
-d(1966,11,1,4,0,0),
-d(1967,3,1,3,0,0),
-d(1967,11,1,4,0,0),
-d(1968,3,1,3,0,0),
-d(1985,11,2,4,0,0),
-d(1986,3,15,3,0,0),
-d(1986,10,25,4,0,0),
-d(1987,2,14,3,0,0),
-d(1987,10,25,4,0,0),
-d(1988,2,7,3,0,0),
-d(1993,10,17,4,0,0),
-d(1994,2,20,3,0,0),
- ]
-
- _transition_info = [
-i(-14400,0,'LMT'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
-i(-10800,3600,'AMST'),
-i(-14400,0,'AMT'),
- ]
-
-West = West()
-
diff --git a/vendor/pytz/zoneinfo/Brazil/__init__.py b/vendor/pytz/zoneinfo/Brazil/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/CET.py b/vendor/pytz/zoneinfo/CET.py
deleted file mode 100644
index 6de05954..00000000
--- a/vendor/pytz/zoneinfo/CET.py
+++ /dev/null
@@ -1,288 +0,0 @@
-'''tzinfo timezone information for CET.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class CET(DstTzInfo):
- '''CET timezone definition. See datetime.tzinfo for details'''
-
- zone = 'CET'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-CET = CET()
-
diff --git a/vendor/pytz/zoneinfo/CST6CDT.py b/vendor/pytz/zoneinfo/CST6CDT.py
deleted file mode 100644
index ba53cff0..00000000
--- a/vendor/pytz/zoneinfo/CST6CDT.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for CST6CDT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class CST6CDT(DstTzInfo):
- '''CST6CDT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'CST6CDT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-CST6CDT = CST6CDT()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Atlantic.py b/vendor/pytz/zoneinfo/Canada/Atlantic.py
deleted file mode 100644
index 22c41c59..00000000
--- a/vendor/pytz/zoneinfo/Canada/Atlantic.py
+++ /dev/null
@@ -1,476 +0,0 @@
-'''tzinfo timezone information for Canada/Atlantic.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Atlantic(DstTzInfo):
- '''Canada/Atlantic timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Atlantic'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1902,6,15,4,14,24),
-d(1916,4,1,4,0,0),
-d(1916,10,1,3,0,0),
-d(1918,4,14,6,0,0),
-d(1918,10,31,5,0,0),
-d(1920,5,9,4,0,0),
-d(1920,8,29,3,0,0),
-d(1921,5,6,4,0,0),
-d(1921,9,5,3,0,0),
-d(1922,4,30,4,0,0),
-d(1922,9,5,3,0,0),
-d(1923,5,6,4,0,0),
-d(1923,9,4,3,0,0),
-d(1924,5,4,4,0,0),
-d(1924,9,15,3,0,0),
-d(1925,5,3,4,0,0),
-d(1925,9,28,3,0,0),
-d(1926,5,16,4,0,0),
-d(1926,9,13,3,0,0),
-d(1927,5,1,4,0,0),
-d(1927,9,26,3,0,0),
-d(1928,5,13,4,0,0),
-d(1928,9,9,3,0,0),
-d(1929,5,12,4,0,0),
-d(1929,9,3,3,0,0),
-d(1930,5,11,4,0,0),
-d(1930,9,15,3,0,0),
-d(1931,5,10,4,0,0),
-d(1931,9,28,3,0,0),
-d(1932,5,1,4,0,0),
-d(1932,9,26,3,0,0),
-d(1933,4,30,4,0,0),
-d(1933,10,2,3,0,0),
-d(1934,5,20,4,0,0),
-d(1934,9,16,3,0,0),
-d(1935,6,2,4,0,0),
-d(1935,9,30,3,0,0),
-d(1936,6,1,4,0,0),
-d(1936,9,14,3,0,0),
-d(1937,5,2,4,0,0),
-d(1937,9,27,3,0,0),
-d(1938,5,1,4,0,0),
-d(1938,9,26,3,0,0),
-d(1939,5,28,4,0,0),
-d(1939,9,25,3,0,0),
-d(1940,5,5,4,0,0),
-d(1940,9,30,3,0,0),
-d(1941,5,4,4,0,0),
-d(1941,9,29,3,0,0),
-d(1942,2,9,6,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,5,0,0),
-d(1946,4,28,6,0,0),
-d(1946,9,29,5,0,0),
-d(1947,4,27,6,0,0),
-d(1947,9,28,5,0,0),
-d(1948,4,25,6,0,0),
-d(1948,9,26,5,0,0),
-d(1949,4,24,6,0,0),
-d(1949,9,25,5,0,0),
-d(1951,4,29,6,0,0),
-d(1951,9,30,5,0,0),
-d(1952,4,27,6,0,0),
-d(1952,9,28,5,0,0),
-d(1953,4,26,6,0,0),
-d(1953,9,27,5,0,0),
-d(1954,4,25,6,0,0),
-d(1954,9,26,5,0,0),
-d(1956,4,29,6,0,0),
-d(1956,9,30,5,0,0),
-d(1957,4,28,6,0,0),
-d(1957,9,29,5,0,0),
-d(1958,4,27,6,0,0),
-d(1958,9,28,5,0,0),
-d(1959,4,26,6,0,0),
-d(1959,9,27,5,0,0),
-d(1962,4,29,6,0,0),
-d(1962,10,28,5,0,0),
-d(1963,4,28,6,0,0),
-d(1963,10,27,5,0,0),
-d(1964,4,26,6,0,0),
-d(1964,10,25,5,0,0),
-d(1965,4,25,6,0,0),
-d(1965,10,31,5,0,0),
-d(1966,4,24,6,0,0),
-d(1966,10,30,5,0,0),
-d(1967,4,30,6,0,0),
-d(1967,10,29,5,0,0),
-d(1968,4,28,6,0,0),
-d(1968,10,27,5,0,0),
-d(1969,4,27,6,0,0),
-d(1969,10,26,5,0,0),
-d(1970,4,26,6,0,0),
-d(1970,10,25,5,0,0),
-d(1971,4,25,6,0,0),
-d(1971,10,31,5,0,0),
-d(1972,4,30,6,0,0),
-d(1972,10,29,5,0,0),
-d(1973,4,29,6,0,0),
-d(1973,10,28,5,0,0),
-d(1974,4,28,6,0,0),
-d(1974,10,27,5,0,0),
-d(1975,4,27,6,0,0),
-d(1975,10,26,5,0,0),
-d(1976,4,25,6,0,0),
-d(1976,10,31,5,0,0),
-d(1977,4,24,6,0,0),
-d(1977,10,30,5,0,0),
-d(1978,4,30,6,0,0),
-d(1978,10,29,5,0,0),
-d(1979,4,29,6,0,0),
-d(1979,10,28,5,0,0),
-d(1980,4,27,6,0,0),
-d(1980,10,26,5,0,0),
-d(1981,4,26,6,0,0),
-d(1981,10,25,5,0,0),
-d(1982,4,25,6,0,0),
-d(1982,10,31,5,0,0),
-d(1983,4,24,6,0,0),
-d(1983,10,30,5,0,0),
-d(1984,4,29,6,0,0),
-d(1984,10,28,5,0,0),
-d(1985,4,28,6,0,0),
-d(1985,10,27,5,0,0),
-d(1986,4,27,6,0,0),
-d(1986,10,26,5,0,0),
-d(1987,4,5,6,0,0),
-d(1987,10,25,5,0,0),
-d(1988,4,3,6,0,0),
-d(1988,10,30,5,0,0),
-d(1989,4,2,6,0,0),
-d(1989,10,29,5,0,0),
-d(1990,4,1,6,0,0),
-d(1990,10,28,5,0,0),
-d(1991,4,7,6,0,0),
-d(1991,10,27,5,0,0),
-d(1992,4,5,6,0,0),
-d(1992,10,25,5,0,0),
-d(1993,4,4,6,0,0),
-d(1993,10,31,5,0,0),
-d(1994,4,3,6,0,0),
-d(1994,10,30,5,0,0),
-d(1995,4,2,6,0,0),
-d(1995,10,29,5,0,0),
-d(1996,4,7,6,0,0),
-d(1996,10,27,5,0,0),
-d(1997,4,6,6,0,0),
-d(1997,10,26,5,0,0),
-d(1998,4,5,6,0,0),
-d(1998,10,25,5,0,0),
-d(1999,4,4,6,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,6,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,6,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,6,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,6,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,6,0,0),
-d(2004,10,31,5,0,0),
-d(2005,4,3,6,0,0),
-d(2005,10,30,5,0,0),
-d(2006,4,2,6,0,0),
-d(2006,10,29,5,0,0),
-d(2007,3,11,6,0,0),
-d(2007,11,4,5,0,0),
-d(2008,3,9,6,0,0),
-d(2008,11,2,5,0,0),
-d(2009,3,8,6,0,0),
-d(2009,11,1,5,0,0),
-d(2010,3,14,6,0,0),
-d(2010,11,7,5,0,0),
-d(2011,3,13,6,0,0),
-d(2011,11,6,5,0,0),
-d(2012,3,11,6,0,0),
-d(2012,11,4,5,0,0),
-d(2013,3,10,6,0,0),
-d(2013,11,3,5,0,0),
-d(2014,3,9,6,0,0),
-d(2014,11,2,5,0,0),
-d(2015,3,8,6,0,0),
-d(2015,11,1,5,0,0),
-d(2016,3,13,6,0,0),
-d(2016,11,6,5,0,0),
-d(2017,3,12,6,0,0),
-d(2017,11,5,5,0,0),
-d(2018,3,11,6,0,0),
-d(2018,11,4,5,0,0),
-d(2019,3,10,6,0,0),
-d(2019,11,3,5,0,0),
-d(2020,3,8,6,0,0),
-d(2020,11,1,5,0,0),
-d(2021,3,14,6,0,0),
-d(2021,11,7,5,0,0),
-d(2022,3,13,6,0,0),
-d(2022,11,6,5,0,0),
-d(2023,3,12,6,0,0),
-d(2023,11,5,5,0,0),
-d(2024,3,10,6,0,0),
-d(2024,11,3,5,0,0),
-d(2025,3,9,6,0,0),
-d(2025,11,2,5,0,0),
-d(2026,3,8,6,0,0),
-d(2026,11,1,5,0,0),
-d(2027,3,14,6,0,0),
-d(2027,11,7,5,0,0),
-d(2028,3,12,6,0,0),
-d(2028,11,5,5,0,0),
-d(2029,3,11,6,0,0),
-d(2029,11,4,5,0,0),
-d(2030,3,10,6,0,0),
-d(2030,11,3,5,0,0),
-d(2031,3,9,6,0,0),
-d(2031,11,2,5,0,0),
-d(2032,3,14,6,0,0),
-d(2032,11,7,5,0,0),
-d(2033,3,13,6,0,0),
-d(2033,11,6,5,0,0),
-d(2034,3,12,6,0,0),
-d(2034,11,5,5,0,0),
-d(2035,3,11,6,0,0),
-d(2035,11,4,5,0,0),
-d(2036,3,9,6,0,0),
-d(2036,11,2,5,0,0),
-d(2037,3,8,6,0,0),
-d(2037,11,1,5,0,0),
- ]
-
- _transition_info = [
-i(-15240,0,'LMT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'AWT'),
-i(-10800,3600,'APT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
-i(-10800,3600,'ADT'),
-i(-14400,0,'AST'),
- ]
-
-Atlantic = Atlantic()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Central.py b/vendor/pytz/zoneinfo/Canada/Central.py
deleted file mode 100644
index f268839e..00000000
--- a/vendor/pytz/zoneinfo/Canada/Central.py
+++ /dev/null
@@ -1,392 +0,0 @@
-'''tzinfo timezone information for Canada/Central.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Central(DstTzInfo):
- '''Canada/Central timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Central'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,23,6,0,0),
-d(1916,9,17,5,0,0),
-d(1918,4,14,8,0,0),
-d(1918,10,31,7,0,0),
-d(1937,5,16,8,0,0),
-d(1937,9,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,5,12,8,0,0),
-d(1946,10,13,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,5,1,8,0,0),
-d(1950,9,30,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,9,25,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,9,30,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,9,25,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,9,22,7,0,0),
-d(1966,4,24,8,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,8,0,0),
-d(1974,4,28,8,0,0),
-d(1974,10,27,8,0,0),
-d(1975,4,27,8,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,8,0,0),
-d(2006,1,1,6,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Central = Central()
-
diff --git a/vendor/pytz/zoneinfo/Canada/East_minus_Saskatchewan.py b/vendor/pytz/zoneinfo/Canada/East_minus_Saskatchewan.py
deleted file mode 100644
index 950907d8..00000000
--- a/vendor/pytz/zoneinfo/Canada/East_minus_Saskatchewan.py
+++ /dev/null
@@ -1,126 +0,0 @@
-'''tzinfo timezone information for Canada/East_minus_Saskatchewan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class East_minus_Saskatchewan(DstTzInfo):
- '''Canada/East_minus_Saskatchewan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/East_minus_Saskatchewan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,9,1,6,58,36),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1930,5,4,7,0,0),
-d(1930,10,5,6,0,0),
-d(1931,5,3,7,0,0),
-d(1931,10,4,6,0,0),
-d(1932,5,1,7,0,0),
-d(1932,10,2,6,0,0),
-d(1933,5,7,7,0,0),
-d(1933,10,1,6,0,0),
-d(1934,5,6,7,0,0),
-d(1934,10,7,6,0,0),
-d(1937,4,11,7,0,0),
-d(1937,10,10,6,0,0),
-d(1938,4,10,7,0,0),
-d(1938,10,2,6,0,0),
-d(1939,4,9,7,0,0),
-d(1939,10,8,6,0,0),
-d(1940,4,14,7,0,0),
-d(1940,10,13,6,0,0),
-d(1941,4,13,7,0,0),
-d(1941,10,12,6,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1946,4,14,9,0,0),
-d(1946,10,13,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1948,4,25,9,0,0),
-d(1948,9,26,8,0,0),
-d(1949,4,24,9,0,0),
-d(1949,9,25,8,0,0),
-d(1950,4,30,9,0,0),
-d(1950,9,24,8,0,0),
-d(1951,4,29,9,0,0),
-d(1951,9,30,8,0,0),
-d(1952,4,27,9,0,0),
-d(1952,9,28,8,0,0),
-d(1953,4,26,9,0,0),
-d(1953,9,27,8,0,0),
-d(1954,4,25,9,0,0),
-d(1954,9,26,8,0,0),
-d(1955,4,24,9,0,0),
-d(1955,9,25,8,0,0),
-d(1956,4,29,9,0,0),
-d(1956,9,30,8,0,0),
-d(1957,4,28,9,0,0),
-d(1957,9,29,8,0,0),
-d(1959,4,26,9,0,0),
-d(1959,10,25,8,0,0),
-d(1960,4,24,9,0,0),
- ]
-
- _transition_info = [
-i(-25140,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
- ]
-
-East_minus_Saskatchewan = East_minus_Saskatchewan()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Eastern.py b/vendor/pytz/zoneinfo/Canada/Eastern.py
deleted file mode 100644
index 4c30c5f9..00000000
--- a/vendor/pytz/zoneinfo/Canada/Eastern.py
+++ /dev/null
@@ -1,484 +0,0 @@
-'''tzinfo timezone information for Canada/Eastern.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Eastern(DstTzInfo):
- '''Canada/Eastern timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Eastern'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,7,0,0),
-d(1918,10,31,6,0,0),
-d(1919,3,31,4,30,0),
-d(1919,10,26,4,0,0),
-d(1920,5,2,7,0,0),
-d(1920,9,26,4,0,0),
-d(1921,5,15,7,0,0),
-d(1921,9,15,6,0,0),
-d(1922,5,14,7,0,0),
-d(1922,9,17,6,0,0),
-d(1923,5,13,7,0,0),
-d(1923,9,16,6,0,0),
-d(1924,5,4,7,0,0),
-d(1924,9,21,6,0,0),
-d(1925,5,3,7,0,0),
-d(1925,9,20,6,0,0),
-d(1926,5,2,7,0,0),
-d(1926,9,19,6,0,0),
-d(1927,5,1,7,0,0),
-d(1927,9,25,6,0,0),
-d(1928,4,29,7,0,0),
-d(1928,9,30,6,0,0),
-d(1929,4,28,7,0,0),
-d(1929,9,29,6,0,0),
-d(1930,4,27,7,0,0),
-d(1930,9,28,6,0,0),
-d(1931,4,26,7,0,0),
-d(1931,9,27,6,0,0),
-d(1932,5,1,7,0,0),
-d(1932,9,25,6,0,0),
-d(1933,4,30,7,0,0),
-d(1933,10,1,6,0,0),
-d(1934,4,29,7,0,0),
-d(1934,9,30,6,0,0),
-d(1935,4,28,7,0,0),
-d(1935,9,29,6,0,0),
-d(1936,4,26,7,0,0),
-d(1936,9,27,6,0,0),
-d(1937,4,25,7,0,0),
-d(1937,9,26,6,0,0),
-d(1938,4,24,7,0,0),
-d(1938,9,25,6,0,0),
-d(1939,4,30,7,0,0),
-d(1939,9,24,6,0,0),
-d(1940,4,28,7,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,5,0,0),
-d(1947,9,28,4,0,0),
-d(1948,4,25,5,0,0),
-d(1948,9,26,4,0,0),
-d(1949,4,24,5,0,0),
-d(1949,11,27,4,0,0),
-d(1950,4,30,7,0,0),
-d(1950,11,26,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,9,25,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,9,30,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Eastern = Eastern()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Mountain.py b/vendor/pytz/zoneinfo/Canada/Mountain.py
deleted file mode 100644
index 91afe383..00000000
--- a/vendor/pytz/zoneinfo/Canada/Mountain.py
+++ /dev/null
@@ -1,328 +0,0 @@
-'''tzinfo timezone information for Canada/Mountain.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mountain(DstTzInfo):
- '''Canada/Mountain timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Mountain'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,9,1,7,33,52),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1919,4,13,9,0,0),
-d(1919,5,27,8,0,0),
-d(1920,4,25,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,4,24,9,0,0),
-d(1921,9,25,8,0,0),
-d(1922,4,30,9,0,0),
-d(1922,9,24,8,0,0),
-d(1923,4,29,9,0,0),
-d(1923,9,30,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,4,28,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,4,27,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-27240,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Mountain = Mountain()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Newfoundland.py b/vendor/pytz/zoneinfo/Canada/Newfoundland.py
deleted file mode 100644
index 2829f601..00000000
--- a/vendor/pytz/zoneinfo/Canada/Newfoundland.py
+++ /dev/null
@@ -1,496 +0,0 @@
-'''tzinfo timezone information for Canada/Newfoundland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Newfoundland(DstTzInfo):
- '''Canada/Newfoundland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Newfoundland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,4,8,5,30,52),
-d(1917,9,17,4,30,52),
-d(1918,4,14,5,30,52),
-d(1918,10,31,4,30,52),
-d(1919,5,6,2,30,52),
-d(1919,8,13,1,30,52),
-d(1920,5,3,2,30,52),
-d(1920,11,1,1,30,52),
-d(1921,5,2,2,30,52),
-d(1921,10,31,1,30,52),
-d(1922,5,8,2,30,52),
-d(1922,10,30,1,30,52),
-d(1923,5,7,2,30,52),
-d(1923,10,29,1,30,52),
-d(1924,5,5,2,30,52),
-d(1924,10,27,1,30,52),
-d(1925,5,4,2,30,52),
-d(1925,10,26,1,30,52),
-d(1926,5,3,2,30,52),
-d(1926,11,1,1,30,52),
-d(1927,5,2,2,30,52),
-d(1927,10,31,1,30,52),
-d(1928,5,7,2,30,52),
-d(1928,10,29,1,30,52),
-d(1929,5,6,2,30,52),
-d(1929,10,28,1,30,52),
-d(1930,5,5,2,30,52),
-d(1930,10,27,1,30,52),
-d(1931,5,4,2,30,52),
-d(1931,10,26,1,30,52),
-d(1932,5,2,2,30,52),
-d(1932,10,31,1,30,52),
-d(1933,5,8,2,30,52),
-d(1933,10,30,1,30,52),
-d(1934,5,7,2,30,52),
-d(1934,10,29,1,30,52),
-d(1935,3,30,3,30,52),
-d(1935,5,6,2,30,0),
-d(1935,10,28,1,30,0),
-d(1936,5,11,3,30,0),
-d(1936,10,5,2,30,0),
-d(1937,5,10,3,30,0),
-d(1937,10,4,2,30,0),
-d(1938,5,9,3,30,0),
-d(1938,10,3,2,30,0),
-d(1939,5,15,3,30,0),
-d(1939,10,2,2,30,0),
-d(1940,5,13,3,30,0),
-d(1940,10,7,2,30,0),
-d(1941,5,12,3,30,0),
-d(1941,10,6,2,30,0),
-d(1942,5,11,3,30,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,4,30,0),
-d(1946,5,12,5,30,0),
-d(1946,10,6,4,30,0),
-d(1947,5,11,5,30,0),
-d(1947,10,5,4,30,0),
-d(1948,5,9,5,30,0),
-d(1948,10,3,4,30,0),
-d(1949,5,8,5,30,0),
-d(1949,10,2,4,30,0),
-d(1950,5,14,5,30,0),
-d(1950,10,8,4,30,0),
-d(1951,4,29,5,30,0),
-d(1951,9,30,4,30,0),
-d(1952,4,27,5,30,0),
-d(1952,9,28,4,30,0),
-d(1953,4,26,5,30,0),
-d(1953,9,27,4,30,0),
-d(1954,4,25,5,30,0),
-d(1954,9,26,4,30,0),
-d(1955,4,24,5,30,0),
-d(1955,9,25,4,30,0),
-d(1956,4,29,5,30,0),
-d(1956,9,30,4,30,0),
-d(1957,4,28,5,30,0),
-d(1957,9,29,4,30,0),
-d(1958,4,27,5,30,0),
-d(1958,9,28,4,30,0),
-d(1959,4,26,5,30,0),
-d(1959,9,27,4,30,0),
-d(1960,4,24,5,30,0),
-d(1960,10,30,4,30,0),
-d(1961,4,30,5,30,0),
-d(1961,10,29,4,30,0),
-d(1962,4,29,5,30,0),
-d(1962,10,28,4,30,0),
-d(1963,4,28,5,30,0),
-d(1963,10,27,4,30,0),
-d(1964,4,26,5,30,0),
-d(1964,10,25,4,30,0),
-d(1965,4,25,5,30,0),
-d(1965,10,31,4,30,0),
-d(1966,4,24,5,30,0),
-d(1966,10,30,4,30,0),
-d(1967,4,30,5,30,0),
-d(1967,10,29,4,30,0),
-d(1968,4,28,5,30,0),
-d(1968,10,27,4,30,0),
-d(1969,4,27,5,30,0),
-d(1969,10,26,4,30,0),
-d(1970,4,26,5,30,0),
-d(1970,10,25,4,30,0),
-d(1971,4,25,5,30,0),
-d(1971,10,31,4,30,0),
-d(1972,4,30,5,30,0),
-d(1972,10,29,4,30,0),
-d(1973,4,29,5,30,0),
-d(1973,10,28,4,30,0),
-d(1974,4,28,5,30,0),
-d(1974,10,27,4,30,0),
-d(1975,4,27,5,30,0),
-d(1975,10,26,4,30,0),
-d(1976,4,25,5,30,0),
-d(1976,10,31,4,30,0),
-d(1977,4,24,5,30,0),
-d(1977,10,30,4,30,0),
-d(1978,4,30,5,30,0),
-d(1978,10,29,4,30,0),
-d(1979,4,29,5,30,0),
-d(1979,10,28,4,30,0),
-d(1980,4,27,5,30,0),
-d(1980,10,26,4,30,0),
-d(1981,4,26,5,30,0),
-d(1981,10,25,4,30,0),
-d(1982,4,25,5,30,0),
-d(1982,10,31,4,30,0),
-d(1983,4,24,5,30,0),
-d(1983,10,30,4,30,0),
-d(1984,4,29,5,30,0),
-d(1984,10,28,4,30,0),
-d(1985,4,28,5,30,0),
-d(1985,10,27,4,30,0),
-d(1986,4,27,5,30,0),
-d(1986,10,26,4,30,0),
-d(1987,4,5,3,31,0),
-d(1987,10,25,2,31,0),
-d(1988,4,3,3,31,0),
-d(1988,10,30,1,31,0),
-d(1989,4,2,3,31,0),
-d(1989,10,29,2,31,0),
-d(1990,4,1,3,31,0),
-d(1990,10,28,2,31,0),
-d(1991,4,7,3,31,0),
-d(1991,10,27,2,31,0),
-d(1992,4,5,3,31,0),
-d(1992,10,25,2,31,0),
-d(1993,4,4,3,31,0),
-d(1993,10,31,2,31,0),
-d(1994,4,3,3,31,0),
-d(1994,10,30,2,31,0),
-d(1995,4,2,3,31,0),
-d(1995,10,29,2,31,0),
-d(1996,4,7,3,31,0),
-d(1996,10,27,2,31,0),
-d(1997,4,6,3,31,0),
-d(1997,10,26,2,31,0),
-d(1998,4,5,3,31,0),
-d(1998,10,25,2,31,0),
-d(1999,4,4,3,31,0),
-d(1999,10,31,2,31,0),
-d(2000,4,2,3,31,0),
-d(2000,10,29,2,31,0),
-d(2001,4,1,3,31,0),
-d(2001,10,28,2,31,0),
-d(2002,4,7,3,31,0),
-d(2002,10,27,2,31,0),
-d(2003,4,6,3,31,0),
-d(2003,10,26,2,31,0),
-d(2004,4,4,3,31,0),
-d(2004,10,31,2,31,0),
-d(2005,4,3,3,31,0),
-d(2005,10,30,2,31,0),
-d(2006,4,2,3,31,0),
-d(2006,10,29,2,31,0),
-d(2007,3,11,3,31,0),
-d(2007,11,4,2,31,0),
-d(2008,3,9,3,31,0),
-d(2008,11,2,2,31,0),
-d(2009,3,8,3,31,0),
-d(2009,11,1,2,31,0),
-d(2010,3,14,3,31,0),
-d(2010,11,7,2,31,0),
-d(2011,3,13,3,31,0),
-d(2011,11,6,2,31,0),
-d(2012,3,11,3,31,0),
-d(2012,11,4,2,31,0),
-d(2013,3,10,3,31,0),
-d(2013,11,3,2,31,0),
-d(2014,3,9,3,31,0),
-d(2014,11,2,2,31,0),
-d(2015,3,8,3,31,0),
-d(2015,11,1,2,31,0),
-d(2016,3,13,3,31,0),
-d(2016,11,6,2,31,0),
-d(2017,3,12,3,31,0),
-d(2017,11,5,2,31,0),
-d(2018,3,11,3,31,0),
-d(2018,11,4,2,31,0),
-d(2019,3,10,3,31,0),
-d(2019,11,3,2,31,0),
-d(2020,3,8,3,31,0),
-d(2020,11,1,2,31,0),
-d(2021,3,14,3,31,0),
-d(2021,11,7,2,31,0),
-d(2022,3,13,3,31,0),
-d(2022,11,6,2,31,0),
-d(2023,3,12,3,31,0),
-d(2023,11,5,2,31,0),
-d(2024,3,10,3,31,0),
-d(2024,11,3,2,31,0),
-d(2025,3,9,3,31,0),
-d(2025,11,2,2,31,0),
-d(2026,3,8,3,31,0),
-d(2026,11,1,2,31,0),
-d(2027,3,14,3,31,0),
-d(2027,11,7,2,31,0),
-d(2028,3,12,3,31,0),
-d(2028,11,5,2,31,0),
-d(2029,3,11,3,31,0),
-d(2029,11,4,2,31,0),
-d(2030,3,10,3,31,0),
-d(2030,11,3,2,31,0),
-d(2031,3,9,3,31,0),
-d(2031,11,2,2,31,0),
-d(2032,3,14,3,31,0),
-d(2032,11,7,2,31,0),
-d(2033,3,13,3,31,0),
-d(2033,11,6,2,31,0),
-d(2034,3,12,3,31,0),
-d(2034,11,5,2,31,0),
-d(2035,3,11,3,31,0),
-d(2035,11,4,2,31,0),
-d(2036,3,9,3,31,0),
-d(2036,11,2,2,31,0),
-d(2037,3,8,3,31,0),
-d(2037,11,1,2,31,0),
- ]
-
- _transition_info = [
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-9060,3600,'NDT'),
-i(-12660,0,'NST'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NWT'),
-i(-9000,3600,'NPT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-5400,7200,'NDDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
-i(-9000,3600,'NDT'),
-i(-12600,0,'NST'),
- ]
-
-Newfoundland = Newfoundland()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Pacific.py b/vendor/pytz/zoneinfo/Canada/Pacific.py
deleted file mode 100644
index 1fd0d950..00000000
--- a/vendor/pytz/zoneinfo/Canada/Pacific.py
+++ /dev/null
@@ -1,398 +0,0 @@
-'''tzinfo timezone information for Canada/Pacific.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pacific(DstTzInfo):
- '''Canada/Pacific timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Pacific'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,10,0,0),
-d(1918,10,31,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1946,4,28,10,0,0),
-d(1946,10,13,9,0,0),
-d(1947,4,27,10,0,0),
-d(1947,9,28,9,0,0),
-d(1948,4,25,10,0,0),
-d(1948,9,26,9,0,0),
-d(1949,4,24,10,0,0),
-d(1949,9,25,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,4,28,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,4,27,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Pacific = Pacific()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Saskatchewan.py b/vendor/pytz/zoneinfo/Canada/Saskatchewan.py
deleted file mode 100644
index 33c7cc09..00000000
--- a/vendor/pytz/zoneinfo/Canada/Saskatchewan.py
+++ /dev/null
@@ -1,126 +0,0 @@
-'''tzinfo timezone information for Canada/Saskatchewan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Saskatchewan(DstTzInfo):
- '''Canada/Saskatchewan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Saskatchewan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,9,1,6,58,36),
-d(1918,4,14,9,0,0),
-d(1918,10,31,8,0,0),
-d(1930,5,4,7,0,0),
-d(1930,10,5,6,0,0),
-d(1931,5,3,7,0,0),
-d(1931,10,4,6,0,0),
-d(1932,5,1,7,0,0),
-d(1932,10,2,6,0,0),
-d(1933,5,7,7,0,0),
-d(1933,10,1,6,0,0),
-d(1934,5,6,7,0,0),
-d(1934,10,7,6,0,0),
-d(1937,4,11,7,0,0),
-d(1937,10,10,6,0,0),
-d(1938,4,10,7,0,0),
-d(1938,10,2,6,0,0),
-d(1939,4,9,7,0,0),
-d(1939,10,8,6,0,0),
-d(1940,4,14,7,0,0),
-d(1940,10,13,6,0,0),
-d(1941,4,13,7,0,0),
-d(1941,10,12,6,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1946,4,14,9,0,0),
-d(1946,10,13,8,0,0),
-d(1947,4,27,9,0,0),
-d(1947,9,28,8,0,0),
-d(1948,4,25,9,0,0),
-d(1948,9,26,8,0,0),
-d(1949,4,24,9,0,0),
-d(1949,9,25,8,0,0),
-d(1950,4,30,9,0,0),
-d(1950,9,24,8,0,0),
-d(1951,4,29,9,0,0),
-d(1951,9,30,8,0,0),
-d(1952,4,27,9,0,0),
-d(1952,9,28,8,0,0),
-d(1953,4,26,9,0,0),
-d(1953,9,27,8,0,0),
-d(1954,4,25,9,0,0),
-d(1954,9,26,8,0,0),
-d(1955,4,24,9,0,0),
-d(1955,9,25,8,0,0),
-d(1956,4,29,9,0,0),
-d(1956,9,30,8,0,0),
-d(1957,4,28,9,0,0),
-d(1957,9,29,8,0,0),
-d(1959,4,26,9,0,0),
-d(1959,10,25,8,0,0),
-d(1960,4,24,9,0,0),
- ]
-
- _transition_info = [
-i(-25140,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
- ]
-
-Saskatchewan = Saskatchewan()
-
diff --git a/vendor/pytz/zoneinfo/Canada/Yukon.py b/vendor/pytz/zoneinfo/Canada/Yukon.py
deleted file mode 100644
index a69a95d6..00000000
--- a/vendor/pytz/zoneinfo/Canada/Yukon.py
+++ /dev/null
@@ -1,272 +0,0 @@
-'''tzinfo timezone information for Canada/Yukon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Yukon(DstTzInfo):
- '''Canada/Yukon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Canada/Yukon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,14,11,0,0),
-d(1918,10,27,10,0,0),
-d(1919,5,25,11,0,0),
-d(1919,11,1,8,0,0),
-d(1942,2,9,11,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,10,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,9,0,0),
-d(1966,7,1,11,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YDT'),
-i(-32400,0,'YST'),
-i(-28800,3600,'YWT'),
-i(-28800,3600,'YPT'),
-i(-32400,0,'YST'),
-i(-25200,7200,'YDDT'),
-i(-32400,0,'YST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Yukon = Yukon()
-
diff --git a/vendor/pytz/zoneinfo/Canada/__init__.py b/vendor/pytz/zoneinfo/Canada/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Chile/Continental.py b/vendor/pytz/zoneinfo/Chile/Continental.py
deleted file mode 100644
index b240aa54..00000000
--- a/vendor/pytz/zoneinfo/Chile/Continental.py
+++ /dev/null
@@ -1,336 +0,0 @@
-'''tzinfo timezone information for Chile/Continental.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Continental(DstTzInfo):
- '''Chile/Continental timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Chile/Continental'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,1,1,4,42,46),
-d(1916,7,1,5,0,0),
-d(1918,9,1,4,42,46),
-d(1919,7,1,4,0,0),
-d(1927,9,1,4,42,46),
-d(1928,4,1,4,0,0),
-d(1928,9,1,5,0,0),
-d(1929,4,1,4,0,0),
-d(1929,9,1,5,0,0),
-d(1930,4,1,4,0,0),
-d(1930,9,1,5,0,0),
-d(1931,4,1,4,0,0),
-d(1931,9,1,5,0,0),
-d(1932,4,1,4,0,0),
-d(1932,9,1,5,0,0),
-d(1942,6,1,4,0,0),
-d(1942,8,1,5,0,0),
-d(1946,9,1,3,0,0),
-d(1947,5,22,5,0,0),
-d(1968,11,3,4,0,0),
-d(1969,3,30,3,0,0),
-d(1969,11,23,4,0,0),
-d(1970,3,29,3,0,0),
-d(1970,10,11,4,0,0),
-d(1971,3,14,3,0,0),
-d(1971,10,10,4,0,0),
-d(1972,3,12,3,0,0),
-d(1972,10,15,4,0,0),
-d(1973,3,11,3,0,0),
-d(1973,9,30,4,0,0),
-d(1974,3,10,3,0,0),
-d(1974,10,13,4,0,0),
-d(1975,3,9,3,0,0),
-d(1975,10,12,4,0,0),
-d(1976,3,14,3,0,0),
-d(1976,10,10,4,0,0),
-d(1977,3,13,3,0,0),
-d(1977,10,9,4,0,0),
-d(1978,3,12,3,0,0),
-d(1978,10,15,4,0,0),
-d(1979,3,11,3,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,9,3,0,0),
-d(1980,10,12,4,0,0),
-d(1981,3,15,3,0,0),
-d(1981,10,11,4,0,0),
-d(1982,3,14,3,0,0),
-d(1982,10,10,4,0,0),
-d(1983,3,13,3,0,0),
-d(1983,10,9,4,0,0),
-d(1984,3,11,3,0,0),
-d(1984,10,14,4,0,0),
-d(1985,3,10,3,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,9,3,0,0),
-d(1986,10,12,4,0,0),
-d(1987,4,12,3,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,13,3,0,0),
-d(1988,10,2,4,0,0),
-d(1989,3,12,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,3,18,3,0,0),
-d(1990,9,16,4,0,0),
-d(1991,3,10,3,0,0),
-d(1991,10,13,4,0,0),
-d(1992,3,15,3,0,0),
-d(1992,10,11,4,0,0),
-d(1993,3,14,3,0,0),
-d(1993,10,10,4,0,0),
-d(1994,3,13,3,0,0),
-d(1994,10,9,4,0,0),
-d(1995,3,12,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,3,10,3,0,0),
-d(1996,10,13,4,0,0),
-d(1997,3,30,3,0,0),
-d(1997,10,12,4,0,0),
-d(1998,3,15,3,0,0),
-d(1998,9,27,4,0,0),
-d(1999,4,4,3,0,0),
-d(1999,10,10,4,0,0),
-d(2000,3,12,3,0,0),
-d(2000,10,15,4,0,0),
-d(2001,3,11,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,3,10,3,0,0),
-d(2002,10,13,4,0,0),
-d(2003,3,9,3,0,0),
-d(2003,10,12,4,0,0),
-d(2004,3,14,3,0,0),
-d(2004,10,10,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,9,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,14,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,12,4,0,0),
-d(2009,3,15,3,0,0),
-d(2009,10,11,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,10,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,9,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,14,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,13,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,12,4,0,0),
-d(2015,3,15,3,0,0),
-d(2015,10,11,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,9,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,14,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,13,4,0,0),
-d(2020,3,15,3,0,0),
-d(2020,10,11,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,10,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,9,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,13,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,12,4,0,0),
-d(2026,3,15,3,0,0),
-d(2026,10,11,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,10,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,14,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,13,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,12,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,10,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,9,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,14,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,12,4,0,0),
-d(2037,3,15,3,0,0),
-d(2037,10,11,4,0,0),
- ]
-
- _transition_info = [
-i(-16980,0,'SMT'),
-i(-18000,0,'CLT'),
-i(-16980,0,'SMT'),
-i(-14400,0,'CLT'),
-i(-16980,0,'SMT'),
-i(-14400,2580,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,3600,'CLST'),
-i(-18000,0,'CLT'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
-i(-14400,0,'CLT'),
-i(-10800,3600,'CLST'),
- ]
-
-Continental = Continental()
-
diff --git a/vendor/pytz/zoneinfo/Chile/EasterIsland.py b/vendor/pytz/zoneinfo/Chile/EasterIsland.py
deleted file mode 100644
index fc17b262..00000000
--- a/vendor/pytz/zoneinfo/Chile/EasterIsland.py
+++ /dev/null
@@ -1,308 +0,0 @@
-'''tzinfo timezone information for Chile/EasterIsland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class EasterIsland(DstTzInfo):
- '''Chile/EasterIsland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Chile/EasterIsland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1932,9,1,7,17,28),
-d(1942,6,1,4,0,0),
-d(1942,8,1,5,0,0),
-d(1946,9,1,3,0,0),
-d(1968,11,3,4,0,0),
-d(1969,3,30,3,0,0),
-d(1969,11,23,4,0,0),
-d(1970,3,29,3,0,0),
-d(1970,10,11,4,0,0),
-d(1971,3,14,3,0,0),
-d(1971,10,10,4,0,0),
-d(1972,3,12,3,0,0),
-d(1972,10,15,4,0,0),
-d(1973,3,11,3,0,0),
-d(1973,9,30,4,0,0),
-d(1974,3,10,3,0,0),
-d(1974,10,13,4,0,0),
-d(1975,3,9,3,0,0),
-d(1975,10,12,4,0,0),
-d(1976,3,14,3,0,0),
-d(1976,10,10,4,0,0),
-d(1977,3,13,3,0,0),
-d(1977,10,9,4,0,0),
-d(1978,3,12,3,0,0),
-d(1978,10,15,4,0,0),
-d(1979,3,11,3,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,9,3,0,0),
-d(1980,10,12,4,0,0),
-d(1981,3,15,3,0,0),
-d(1981,10,11,4,0,0),
-d(1982,1,19,3,0,0),
-d(1982,3,14,3,0,0),
-d(1982,10,10,4,0,0),
-d(1983,3,13,3,0,0),
-d(1983,10,9,4,0,0),
-d(1984,3,11,3,0,0),
-d(1984,10,14,4,0,0),
-d(1985,3,10,3,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,9,3,0,0),
-d(1986,10,12,4,0,0),
-d(1987,4,12,3,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,13,3,0,0),
-d(1988,10,2,4,0,0),
-d(1989,3,12,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,3,18,3,0,0),
-d(1990,9,16,4,0,0),
-d(1991,3,10,3,0,0),
-d(1991,10,13,4,0,0),
-d(1992,3,15,3,0,0),
-d(1992,10,11,4,0,0),
-d(1993,3,14,3,0,0),
-d(1993,10,10,4,0,0),
-d(1994,3,13,3,0,0),
-d(1994,10,9,4,0,0),
-d(1995,3,12,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,3,10,3,0,0),
-d(1996,10,13,4,0,0),
-d(1997,3,30,3,0,0),
-d(1997,10,12,4,0,0),
-d(1998,3,15,3,0,0),
-d(1998,9,27,4,0,0),
-d(1999,4,4,3,0,0),
-d(1999,10,10,4,0,0),
-d(2000,3,12,3,0,0),
-d(2000,10,15,4,0,0),
-d(2001,3,11,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,3,10,3,0,0),
-d(2002,10,13,4,0,0),
-d(2003,3,9,3,0,0),
-d(2003,10,12,4,0,0),
-d(2004,3,14,3,0,0),
-d(2004,10,10,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,9,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,14,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,12,4,0,0),
-d(2009,3,15,3,0,0),
-d(2009,10,11,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,10,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,9,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,14,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,13,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,12,4,0,0),
-d(2015,3,15,3,0,0),
-d(2015,10,11,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,9,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,14,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,13,4,0,0),
-d(2020,3,15,3,0,0),
-d(2020,10,11,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,10,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,9,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,13,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,12,4,0,0),
-d(2026,3,15,3,0,0),
-d(2026,10,11,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,10,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,14,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,13,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,12,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,10,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,9,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,14,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,12,4,0,0),
-d(2037,3,15,3,0,0),
-d(2037,10,11,4,0,0),
- ]
-
- _transition_info = [
-i(-26220,0,'MMT'),
-i(-21600,4620,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-18000,7200,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
- ]
-
-EasterIsland = EasterIsland()
-
diff --git a/vendor/pytz/zoneinfo/Chile/__init__.py b/vendor/pytz/zoneinfo/Chile/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Cuba.py b/vendor/pytz/zoneinfo/Cuba.py
deleted file mode 100644
index 5665bc4b..00000000
--- a/vendor/pytz/zoneinfo/Cuba.py
+++ /dev/null
@@ -1,330 +0,0 @@
-'''tzinfo timezone information for Cuba.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Cuba(DstTzInfo):
- '''Cuba timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Cuba'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1925,7,19,17,29,36),
-d(1928,6,10,5,0,0),
-d(1928,10,10,4,0,0),
-d(1940,6,2,5,0,0),
-d(1940,9,1,4,0,0),
-d(1941,6,1,5,0,0),
-d(1941,9,7,4,0,0),
-d(1942,6,7,5,0,0),
-d(1942,9,6,4,0,0),
-d(1945,6,3,5,0,0),
-d(1945,9,2,4,0,0),
-d(1946,6,2,5,0,0),
-d(1946,9,1,4,0,0),
-d(1965,6,1,5,0,0),
-d(1965,9,30,4,0,0),
-d(1966,5,29,5,0,0),
-d(1966,10,2,4,0,0),
-d(1967,4,8,5,0,0),
-d(1967,9,10,4,0,0),
-d(1968,4,14,5,0,0),
-d(1968,9,8,4,0,0),
-d(1969,4,27,5,0,0),
-d(1969,10,26,4,0,0),
-d(1970,4,26,5,0,0),
-d(1970,10,25,4,0,0),
-d(1971,4,25,5,0,0),
-d(1971,10,31,4,0,0),
-d(1972,4,30,5,0,0),
-d(1972,10,8,4,0,0),
-d(1973,4,29,5,0,0),
-d(1973,10,8,4,0,0),
-d(1974,4,28,5,0,0),
-d(1974,10,8,4,0,0),
-d(1975,4,27,5,0,0),
-d(1975,10,26,4,0,0),
-d(1976,4,25,5,0,0),
-d(1976,10,31,4,0,0),
-d(1977,4,24,5,0,0),
-d(1977,10,30,4,0,0),
-d(1978,5,7,5,0,0),
-d(1978,10,8,4,0,0),
-d(1979,3,18,5,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,16,5,0,0),
-d(1980,10,12,4,0,0),
-d(1981,5,10,5,0,0),
-d(1981,10,11,4,0,0),
-d(1982,5,9,5,0,0),
-d(1982,10,10,4,0,0),
-d(1983,5,8,5,0,0),
-d(1983,10,9,4,0,0),
-d(1984,5,6,5,0,0),
-d(1984,10,14,4,0,0),
-d(1985,5,5,5,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,16,5,0,0),
-d(1986,10,12,4,0,0),
-d(1987,3,15,5,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,20,5,0,0),
-d(1988,10,9,4,0,0),
-d(1989,3,19,5,0,0),
-d(1989,10,8,4,0,0),
-d(1990,4,1,5,0,0),
-d(1990,10,14,4,0,0),
-d(1991,4,7,5,0,0),
-d(1991,10,13,5,0,0),
-d(1992,4,5,5,0,0),
-d(1992,10,11,5,0,0),
-d(1993,4,4,5,0,0),
-d(1993,10,10,5,0,0),
-d(1994,4,3,5,0,0),
-d(1994,10,9,5,0,0),
-d(1995,4,2,5,0,0),
-d(1995,10,8,5,0,0),
-d(1996,4,7,5,0,0),
-d(1996,10,6,5,0,0),
-d(1997,4,6,5,0,0),
-d(1997,10,12,5,0,0),
-d(1998,3,29,5,0,0),
-d(1998,10,25,5,0,0),
-d(1999,3,28,5,0,0),
-d(1999,10,31,5,0,0),
-d(2000,4,2,5,0,0),
-d(2000,10,29,5,0,0),
-d(2001,4,1,5,0,0),
-d(2001,10,28,5,0,0),
-d(2002,4,7,5,0,0),
-d(2002,10,27,5,0,0),
-d(2003,4,6,5,0,0),
-d(2003,10,26,5,0,0),
-d(2004,4,4,5,0,0),
-d(2006,10,29,5,0,0),
-d(2007,4,1,5,0,0),
-d(2007,10,28,5,0,0),
-d(2008,4,6,5,0,0),
-d(2008,10,26,5,0,0),
-d(2009,4,5,5,0,0),
-d(2009,10,25,5,0,0),
-d(2010,4,4,5,0,0),
-d(2010,10,31,5,0,0),
-d(2011,4,3,5,0,0),
-d(2011,10,30,5,0,0),
-d(2012,4,1,5,0,0),
-d(2012,10,28,5,0,0),
-d(2013,4,7,5,0,0),
-d(2013,10,27,5,0,0),
-d(2014,4,6,5,0,0),
-d(2014,10,26,5,0,0),
-d(2015,4,5,5,0,0),
-d(2015,10,25,5,0,0),
-d(2016,4,3,5,0,0),
-d(2016,10,30,5,0,0),
-d(2017,4,2,5,0,0),
-d(2017,10,29,5,0,0),
-d(2018,4,1,5,0,0),
-d(2018,10,28,5,0,0),
-d(2019,4,7,5,0,0),
-d(2019,10,27,5,0,0),
-d(2020,4,5,5,0,0),
-d(2020,10,25,5,0,0),
-d(2021,4,4,5,0,0),
-d(2021,10,31,5,0,0),
-d(2022,4,3,5,0,0),
-d(2022,10,30,5,0,0),
-d(2023,4,2,5,0,0),
-d(2023,10,29,5,0,0),
-d(2024,4,7,5,0,0),
-d(2024,10,27,5,0,0),
-d(2025,4,6,5,0,0),
-d(2025,10,26,5,0,0),
-d(2026,4,5,5,0,0),
-d(2026,10,25,5,0,0),
-d(2027,4,4,5,0,0),
-d(2027,10,31,5,0,0),
-d(2028,4,2,5,0,0),
-d(2028,10,29,5,0,0),
-d(2029,4,1,5,0,0),
-d(2029,10,28,5,0,0),
-d(2030,4,7,5,0,0),
-d(2030,10,27,5,0,0),
-d(2031,4,6,5,0,0),
-d(2031,10,26,5,0,0),
-d(2032,4,4,5,0,0),
-d(2032,10,31,5,0,0),
-d(2033,4,3,5,0,0),
-d(2033,10,30,5,0,0),
-d(2034,4,2,5,0,0),
-d(2034,10,29,5,0,0),
-d(2035,4,1,5,0,0),
-d(2035,10,28,5,0,0),
-d(2036,4,6,5,0,0),
-d(2036,10,26,5,0,0),
-d(2037,4,5,5,0,0),
-d(2037,10,25,5,0,0),
- ]
-
- _transition_info = [
-i(-19800,0,'HMT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
-i(-14400,3600,'CDT'),
-i(-18000,0,'CST'),
- ]
-
-Cuba = Cuba()
-
diff --git a/vendor/pytz/zoneinfo/EET.py b/vendor/pytz/zoneinfo/EET.py
deleted file mode 100644
index 9f22313f..00000000
--- a/vendor/pytz/zoneinfo/EET.py
+++ /dev/null
@@ -1,264 +0,0 @@
-'''tzinfo timezone information for EET.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class EET(DstTzInfo):
- '''EET timezone definition. See datetime.tzinfo for details'''
-
- zone = 'EET'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-EET = EET()
-
diff --git a/vendor/pytz/zoneinfo/EST.py b/vendor/pytz/zoneinfo/EST.py
deleted file mode 100644
index cf965783..00000000
--- a/vendor/pytz/zoneinfo/EST.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for EST.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class EST(StaticTzInfo):
- '''EST timezone definition. See datetime.tzinfo for details'''
- zone = 'EST'
- _utcoffset = timedelta(seconds=-18000)
- _tzname = 'EST'
-
-EST = EST()
-
diff --git a/vendor/pytz/zoneinfo/EST5EDT.py b/vendor/pytz/zoneinfo/EST5EDT.py
deleted file mode 100644
index f84da28c..00000000
--- a/vendor/pytz/zoneinfo/EST5EDT.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for EST5EDT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class EST5EDT(DstTzInfo):
- '''EST5EDT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'EST5EDT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,7,0,0),
-d(1918,10,27,6,0,0),
-d(1919,3,30,7,0,0),
-d(1919,10,26,6,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-EST5EDT = EST5EDT()
-
diff --git a/vendor/pytz/zoneinfo/Egypt.py b/vendor/pytz/zoneinfo/Egypt.py
deleted file mode 100644
index 99c41c8d..00000000
--- a/vendor/pytz/zoneinfo/Egypt.py
+++ /dev/null
@@ -1,368 +0,0 @@
-'''tzinfo timezone information for Egypt.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Egypt(DstTzInfo):
- '''Egypt timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Egypt'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,7,14,22,0,0),
-d(1940,9,30,21,0,0),
-d(1941,4,14,22,0,0),
-d(1941,9,15,21,0,0),
-d(1942,3,31,22,0,0),
-d(1942,10,26,21,0,0),
-d(1943,3,31,22,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,21,0,0),
-d(1957,5,9,22,0,0),
-d(1957,9,30,21,0,0),
-d(1958,4,30,22,0,0),
-d(1958,9,30,21,0,0),
-d(1959,4,30,23,0,0),
-d(1959,9,30,0,0,0),
-d(1960,4,30,23,0,0),
-d(1960,9,30,0,0,0),
-d(1961,4,30,23,0,0),
-d(1961,9,30,0,0,0),
-d(1962,4,30,23,0,0),
-d(1962,9,30,0,0,0),
-d(1963,4,30,23,0,0),
-d(1963,9,30,0,0,0),
-d(1964,4,30,23,0,0),
-d(1964,9,30,0,0,0),
-d(1965,4,30,23,0,0),
-d(1965,9,30,0,0,0),
-d(1966,4,30,23,0,0),
-d(1966,10,1,0,0,0),
-d(1967,4,30,23,0,0),
-d(1967,10,1,0,0,0),
-d(1968,4,30,23,0,0),
-d(1968,10,1,0,0,0),
-d(1969,4,30,23,0,0),
-d(1969,10,1,0,0,0),
-d(1970,4,30,23,0,0),
-d(1970,10,1,0,0,0),
-d(1971,4,30,23,0,0),
-d(1971,10,1,0,0,0),
-d(1972,4,30,23,0,0),
-d(1972,10,1,0,0,0),
-d(1973,4,30,23,0,0),
-d(1973,10,1,0,0,0),
-d(1974,4,30,23,0,0),
-d(1974,10,1,0,0,0),
-d(1975,4,30,23,0,0),
-d(1975,10,1,0,0,0),
-d(1976,4,30,23,0,0),
-d(1976,10,1,0,0,0),
-d(1977,4,30,23,0,0),
-d(1977,10,1,0,0,0),
-d(1978,4,30,23,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,30,23,0,0),
-d(1979,10,1,0,0,0),
-d(1980,4,30,23,0,0),
-d(1980,10,1,0,0,0),
-d(1981,4,30,23,0,0),
-d(1981,10,1,0,0,0),
-d(1982,7,24,23,0,0),
-d(1982,10,1,0,0,0),
-d(1983,7,11,23,0,0),
-d(1983,10,1,0,0,0),
-d(1984,4,30,23,0,0),
-d(1984,10,1,0,0,0),
-d(1985,4,30,23,0,0),
-d(1985,10,1,0,0,0),
-d(1986,4,30,23,0,0),
-d(1986,10,1,0,0,0),
-d(1987,4,30,23,0,0),
-d(1987,10,1,0,0,0),
-d(1988,4,30,23,0,0),
-d(1988,10,1,0,0,0),
-d(1989,5,5,23,0,0),
-d(1989,10,1,0,0,0),
-d(1990,4,30,23,0,0),
-d(1990,10,1,0,0,0),
-d(1991,4,30,23,0,0),
-d(1991,10,1,0,0,0),
-d(1992,4,30,23,0,0),
-d(1992,10,1,0,0,0),
-d(1993,4,30,23,0,0),
-d(1993,10,1,0,0,0),
-d(1994,4,30,23,0,0),
-d(1994,10,1,0,0,0),
-d(1995,4,27,22,0,0),
-d(1995,9,28,21,0,0),
-d(1996,4,25,22,0,0),
-d(1996,9,26,21,0,0),
-d(1997,4,24,22,0,0),
-d(1997,9,25,21,0,0),
-d(1998,4,23,22,0,0),
-d(1998,9,24,21,0,0),
-d(1999,4,29,22,0,0),
-d(1999,9,30,21,0,0),
-d(2000,4,27,22,0,0),
-d(2000,9,28,21,0,0),
-d(2001,4,26,22,0,0),
-d(2001,9,27,21,0,0),
-d(2002,4,25,22,0,0),
-d(2002,9,26,21,0,0),
-d(2003,4,24,22,0,0),
-d(2003,9,25,21,0,0),
-d(2004,4,29,22,0,0),
-d(2004,9,30,21,0,0),
-d(2005,4,28,22,0,0),
-d(2005,9,29,21,0,0),
-d(2006,4,27,22,0,0),
-d(2006,9,21,21,0,0),
-d(2007,4,26,22,0,0),
-d(2007,9,27,21,0,0),
-d(2008,4,24,22,0,0),
-d(2008,9,25,21,0,0),
-d(2009,4,23,22,0,0),
-d(2009,9,24,21,0,0),
-d(2010,4,29,22,0,0),
-d(2010,9,30,21,0,0),
-d(2011,4,28,22,0,0),
-d(2011,9,29,21,0,0),
-d(2012,4,26,22,0,0),
-d(2012,9,27,21,0,0),
-d(2013,4,25,22,0,0),
-d(2013,9,26,21,0,0),
-d(2014,4,24,22,0,0),
-d(2014,9,25,21,0,0),
-d(2015,4,23,22,0,0),
-d(2015,9,24,21,0,0),
-d(2016,4,28,22,0,0),
-d(2016,9,29,21,0,0),
-d(2017,4,27,22,0,0),
-d(2017,9,28,21,0,0),
-d(2018,4,26,22,0,0),
-d(2018,9,27,21,0,0),
-d(2019,4,25,22,0,0),
-d(2019,9,26,21,0,0),
-d(2020,4,23,22,0,0),
-d(2020,9,24,21,0,0),
-d(2021,4,29,22,0,0),
-d(2021,9,30,21,0,0),
-d(2022,4,28,22,0,0),
-d(2022,9,29,21,0,0),
-d(2023,4,27,22,0,0),
-d(2023,9,28,21,0,0),
-d(2024,4,25,22,0,0),
-d(2024,9,26,21,0,0),
-d(2025,4,24,22,0,0),
-d(2025,9,25,21,0,0),
-d(2026,4,23,22,0,0),
-d(2026,9,24,21,0,0),
-d(2027,4,29,22,0,0),
-d(2027,9,30,21,0,0),
-d(2028,4,27,22,0,0),
-d(2028,9,28,21,0,0),
-d(2029,4,26,22,0,0),
-d(2029,9,27,21,0,0),
-d(2030,4,25,22,0,0),
-d(2030,9,26,21,0,0),
-d(2031,4,24,22,0,0),
-d(2031,9,25,21,0,0),
-d(2032,4,29,22,0,0),
-d(2032,9,30,21,0,0),
-d(2033,4,28,22,0,0),
-d(2033,9,29,21,0,0),
-d(2034,4,27,22,0,0),
-d(2034,9,28,21,0,0),
-d(2035,4,26,22,0,0),
-d(2035,9,27,21,0,0),
-d(2036,4,24,22,0,0),
-d(2036,9,25,21,0,0),
-d(2037,4,23,22,0,0),
-d(2037,9,24,21,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Egypt = Egypt()
-
diff --git a/vendor/pytz/zoneinfo/Eire.py b/vendor/pytz/zoneinfo/Eire.py
deleted file mode 100644
index eb7f4abe..00000000
--- a/vendor/pytz/zoneinfo/Eire.py
+++ /dev/null
@@ -1,478 +0,0 @@
-'''tzinfo timezone information for Eire.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Eire(DstTzInfo):
- '''Eire timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Eire'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,25,21),
-d(1916,10,1,2,25,21),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1921,12,6,0,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,16,2,0,0),
-d(1947,11,2,1,0,0),
-d(1948,4,18,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-1500,0,'DMT'),
-i(2100,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(3600,0,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
- ]
-
-Eire = Eire()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT.py b/vendor/pytz/zoneinfo/Etc/GMT.py
deleted file mode 100644
index b91f301f..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT(StaticTzInfo):
- '''Etc/GMT timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT = GMT()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT0.py b/vendor/pytz/zoneinfo/Etc/GMT0.py
deleted file mode 100644
index ce857ca0..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT0(StaticTzInfo):
- '''Etc/GMT0 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT0 = GMT0()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_0.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_0.py
deleted file mode 100644
index fb143c9a..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_0(StaticTzInfo):
- '''Etc/GMT_minus_0 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT_minus_0 = GMT_minus_0()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_1.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_1.py
deleted file mode 100644
index b280ae98..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_1.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_1.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_1(StaticTzInfo):
- '''Etc/GMT_minus_1 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_1'
- _utcoffset = timedelta(seconds=3600)
- _tzname = 'GMT-1'
-
-GMT_minus_1 = GMT_minus_1()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_10.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_10.py
deleted file mode 100644
index 4c97903f..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_10.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_10.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_10(StaticTzInfo):
- '''Etc/GMT_minus_10 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_10'
- _utcoffset = timedelta(seconds=36000)
- _tzname = 'GMT-10'
-
-GMT_minus_10 = GMT_minus_10()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_11.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_11.py
deleted file mode 100644
index 4f7d9d44..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_11.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_11.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_11(StaticTzInfo):
- '''Etc/GMT_minus_11 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_11'
- _utcoffset = timedelta(seconds=39600)
- _tzname = 'GMT-11'
-
-GMT_minus_11 = GMT_minus_11()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_12.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_12.py
deleted file mode 100644
index c542dbfe..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_12.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_12.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_12(StaticTzInfo):
- '''Etc/GMT_minus_12 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_12'
- _utcoffset = timedelta(seconds=43200)
- _tzname = 'GMT-12'
-
-GMT_minus_12 = GMT_minus_12()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_13.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_13.py
deleted file mode 100644
index 78e23fa8..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_13.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_13.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_13(StaticTzInfo):
- '''Etc/GMT_minus_13 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_13'
- _utcoffset = timedelta(seconds=46800)
- _tzname = 'GMT-13'
-
-GMT_minus_13 = GMT_minus_13()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_14.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_14.py
deleted file mode 100644
index b20f9859..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_14.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_14.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_14(StaticTzInfo):
- '''Etc/GMT_minus_14 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_14'
- _utcoffset = timedelta(seconds=50400)
- _tzname = 'GMT-14'
-
-GMT_minus_14 = GMT_minus_14()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_2.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_2.py
deleted file mode 100644
index 98aeabbc..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_2.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_2(StaticTzInfo):
- '''Etc/GMT_minus_2 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_2'
- _utcoffset = timedelta(seconds=7200)
- _tzname = 'GMT-2'
-
-GMT_minus_2 = GMT_minus_2()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_3.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_3.py
deleted file mode 100644
index a2d4cd50..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_3.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_3.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_3(StaticTzInfo):
- '''Etc/GMT_minus_3 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_3'
- _utcoffset = timedelta(seconds=10800)
- _tzname = 'GMT-3'
-
-GMT_minus_3 = GMT_minus_3()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_4.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_4.py
deleted file mode 100644
index 09575ac2..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_4.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_4.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_4(StaticTzInfo):
- '''Etc/GMT_minus_4 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_4'
- _utcoffset = timedelta(seconds=14400)
- _tzname = 'GMT-4'
-
-GMT_minus_4 = GMT_minus_4()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_5.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_5.py
deleted file mode 100644
index 4d93e313..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_5.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_5.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_5(StaticTzInfo):
- '''Etc/GMT_minus_5 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_5'
- _utcoffset = timedelta(seconds=18000)
- _tzname = 'GMT-5'
-
-GMT_minus_5 = GMT_minus_5()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_6.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_6.py
deleted file mode 100644
index 02612da4..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_6.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_6.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_6(StaticTzInfo):
- '''Etc/GMT_minus_6 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_6'
- _utcoffset = timedelta(seconds=21600)
- _tzname = 'GMT-6'
-
-GMT_minus_6 = GMT_minus_6()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_7.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_7.py
deleted file mode 100644
index b675a696..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_7.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_7.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_7(StaticTzInfo):
- '''Etc/GMT_minus_7 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_7'
- _utcoffset = timedelta(seconds=25200)
- _tzname = 'GMT-7'
-
-GMT_minus_7 = GMT_minus_7()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_8.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_8.py
deleted file mode 100644
index 34578205..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_8.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_8.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_8(StaticTzInfo):
- '''Etc/GMT_minus_8 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_8'
- _utcoffset = timedelta(seconds=28800)
- _tzname = 'GMT-8'
-
-GMT_minus_8 = GMT_minus_8()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_minus_9.py b/vendor/pytz/zoneinfo/Etc/GMT_minus_9.py
deleted file mode 100644
index 2ab33c50..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_minus_9.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_minus_9.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_9(StaticTzInfo):
- '''Etc/GMT_minus_9 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_minus_9'
- _utcoffset = timedelta(seconds=32400)
- _tzname = 'GMT-9'
-
-GMT_minus_9 = GMT_minus_9()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_0.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_0.py
deleted file mode 100644
index 342e2a5d..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_0(StaticTzInfo):
- '''Etc/GMT_plus_0 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT_plus_0 = GMT_plus_0()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_1.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_1.py
deleted file mode 100644
index 9b62d1ed..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_1.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_1.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_1(StaticTzInfo):
- '''Etc/GMT_plus_1 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_1'
- _utcoffset = timedelta(seconds=-3600)
- _tzname = 'GMT+1'
-
-GMT_plus_1 = GMT_plus_1()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_10.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_10.py
deleted file mode 100644
index cf7943b4..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_10.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_10.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_10(StaticTzInfo):
- '''Etc/GMT_plus_10 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_10'
- _utcoffset = timedelta(seconds=-36000)
- _tzname = 'GMT+10'
-
-GMT_plus_10 = GMT_plus_10()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_11.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_11.py
deleted file mode 100644
index fb9e3e08..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_11.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_11.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_11(StaticTzInfo):
- '''Etc/GMT_plus_11 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_11'
- _utcoffset = timedelta(seconds=-39600)
- _tzname = 'GMT+11'
-
-GMT_plus_11 = GMT_plus_11()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_12.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_12.py
deleted file mode 100644
index fcf2a236..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_12.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_12.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_12(StaticTzInfo):
- '''Etc/GMT_plus_12 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_12'
- _utcoffset = timedelta(seconds=-43200)
- _tzname = 'GMT+12'
-
-GMT_plus_12 = GMT_plus_12()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_2.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_2.py
deleted file mode 100644
index 672dbb2b..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_2.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_2(StaticTzInfo):
- '''Etc/GMT_plus_2 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_2'
- _utcoffset = timedelta(seconds=-7200)
- _tzname = 'GMT+2'
-
-GMT_plus_2 = GMT_plus_2()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_3.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_3.py
deleted file mode 100644
index 1d7f3837..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_3.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_3.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_3(StaticTzInfo):
- '''Etc/GMT_plus_3 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_3'
- _utcoffset = timedelta(seconds=-10800)
- _tzname = 'GMT+3'
-
-GMT_plus_3 = GMT_plus_3()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_4.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_4.py
deleted file mode 100644
index 8f199672..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_4.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_4.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_4(StaticTzInfo):
- '''Etc/GMT_plus_4 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_4'
- _utcoffset = timedelta(seconds=-14400)
- _tzname = 'GMT+4'
-
-GMT_plus_4 = GMT_plus_4()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_5.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_5.py
deleted file mode 100644
index e1015637..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_5.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_5.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_5(StaticTzInfo):
- '''Etc/GMT_plus_5 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_5'
- _utcoffset = timedelta(seconds=-18000)
- _tzname = 'GMT+5'
-
-GMT_plus_5 = GMT_plus_5()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_6.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_6.py
deleted file mode 100644
index ee30aba6..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_6.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_6.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_6(StaticTzInfo):
- '''Etc/GMT_plus_6 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_6'
- _utcoffset = timedelta(seconds=-21600)
- _tzname = 'GMT+6'
-
-GMT_plus_6 = GMT_plus_6()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_7.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_7.py
deleted file mode 100644
index e56b8287..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_7.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_7.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_7(StaticTzInfo):
- '''Etc/GMT_plus_7 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_7'
- _utcoffset = timedelta(seconds=-25200)
- _tzname = 'GMT+7'
-
-GMT_plus_7 = GMT_plus_7()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_8.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_8.py
deleted file mode 100644
index 63856c90..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_8.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_8.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_8(StaticTzInfo):
- '''Etc/GMT_plus_8 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_8'
- _utcoffset = timedelta(seconds=-28800)
- _tzname = 'GMT+8'
-
-GMT_plus_8 = GMT_plus_8()
-
diff --git a/vendor/pytz/zoneinfo/Etc/GMT_plus_9.py b/vendor/pytz/zoneinfo/Etc/GMT_plus_9.py
deleted file mode 100644
index 6964c544..00000000
--- a/vendor/pytz/zoneinfo/Etc/GMT_plus_9.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/GMT_plus_9.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_9(StaticTzInfo):
- '''Etc/GMT_plus_9 timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/GMT_plus_9'
- _utcoffset = timedelta(seconds=-32400)
- _tzname = 'GMT+9'
-
-GMT_plus_9 = GMT_plus_9()
-
diff --git a/vendor/pytz/zoneinfo/Etc/Greenwich.py b/vendor/pytz/zoneinfo/Etc/Greenwich.py
deleted file mode 100644
index 74ecf645..00000000
--- a/vendor/pytz/zoneinfo/Etc/Greenwich.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/Greenwich.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Greenwich(StaticTzInfo):
- '''Etc/Greenwich timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/Greenwich'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-Greenwich = Greenwich()
-
diff --git a/vendor/pytz/zoneinfo/Etc/UCT.py b/vendor/pytz/zoneinfo/Etc/UCT.py
deleted file mode 100644
index 3c830816..00000000
--- a/vendor/pytz/zoneinfo/Etc/UCT.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/UCT.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class UCT(StaticTzInfo):
- '''Etc/UCT timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/UCT'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UCT'
-
-UCT = UCT()
-
diff --git a/vendor/pytz/zoneinfo/Etc/UTC.py b/vendor/pytz/zoneinfo/Etc/UTC.py
deleted file mode 100644
index 80eb784c..00000000
--- a/vendor/pytz/zoneinfo/Etc/UTC.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/UTC.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class UTC(StaticTzInfo):
- '''Etc/UTC timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/UTC'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UTC'
-
-UTC = UTC()
-
diff --git a/vendor/pytz/zoneinfo/Etc/Universal.py b/vendor/pytz/zoneinfo/Etc/Universal.py
deleted file mode 100644
index bddf3c45..00000000
--- a/vendor/pytz/zoneinfo/Etc/Universal.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/Universal.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Universal(StaticTzInfo):
- '''Etc/Universal timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/Universal'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UTC'
-
-Universal = Universal()
-
diff --git a/vendor/pytz/zoneinfo/Etc/Zulu.py b/vendor/pytz/zoneinfo/Etc/Zulu.py
deleted file mode 100644
index d569a825..00000000
--- a/vendor/pytz/zoneinfo/Etc/Zulu.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Etc/Zulu.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Zulu(StaticTzInfo):
- '''Etc/Zulu timezone definition. See datetime.tzinfo for details'''
- zone = 'Etc/Zulu'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UTC'
-
-Zulu = Zulu()
-
diff --git a/vendor/pytz/zoneinfo/Etc/__init__.py b/vendor/pytz/zoneinfo/Etc/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Europe/Amsterdam.py b/vendor/pytz/zoneinfo/Europe/Amsterdam.py
deleted file mode 100644
index b210f20a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Amsterdam.py
+++ /dev/null
@@ -1,380 +0,0 @@
-'''tzinfo timezone information for Europe/Amsterdam.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Amsterdam(DstTzInfo):
- '''Europe/Amsterdam timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Amsterdam'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,23,40,28),
-d(1916,9,30,22,40,28),
-d(1917,4,16,1,40,28),
-d(1917,9,17,1,40,28),
-d(1918,4,1,1,40,28),
-d(1918,9,30,1,40,28),
-d(1919,4,7,1,40,28),
-d(1919,9,29,1,40,28),
-d(1920,4,5,1,40,28),
-d(1920,9,27,1,40,28),
-d(1921,4,4,1,40,28),
-d(1921,9,26,1,40,28),
-d(1922,3,26,1,40,28),
-d(1922,10,8,1,40,28),
-d(1923,6,1,1,40,28),
-d(1923,10,7,1,40,28),
-d(1924,3,30,1,40,28),
-d(1924,10,5,1,40,28),
-d(1925,6,5,1,40,28),
-d(1925,10,4,1,40,28),
-d(1926,5,15,1,40,28),
-d(1926,10,3,1,40,28),
-d(1927,5,15,1,40,28),
-d(1927,10,2,1,40,28),
-d(1928,5,15,1,40,28),
-d(1928,10,7,1,40,28),
-d(1929,5,15,1,40,28),
-d(1929,10,6,1,40,28),
-d(1930,5,15,1,40,28),
-d(1930,10,5,1,40,28),
-d(1931,5,15,1,40,28),
-d(1931,10,4,1,40,28),
-d(1932,5,22,1,40,28),
-d(1932,10,2,1,40,28),
-d(1933,5,15,1,40,28),
-d(1933,10,8,1,40,28),
-d(1934,5,15,1,40,28),
-d(1934,10,7,1,40,28),
-d(1935,5,15,1,40,28),
-d(1935,10,6,1,40,28),
-d(1936,5,15,1,40,28),
-d(1936,10,4,1,40,28),
-d(1937,5,22,1,40,28),
-d(1937,6,30,22,40,28),
-d(1937,10,3,1,40,0),
-d(1938,5,15,1,40,0),
-d(1938,10,2,1,40,0),
-d(1939,5,15,1,40,0),
-d(1939,10,8,1,40,0),
-d(1940,5,15,23,40,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,16,1,0,0),
-d(1976,12,31,23,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(1200,0,'AMT'),
-i(4800,3600,'NST'),
-i(4800,3600,'NEST'),
-i(1200,0,'NET'),
-i(4800,3600,'NEST'),
-i(1200,0,'NET'),
-i(4800,3600,'NEST'),
-i(1200,0,'NET'),
-i(7200,6000,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Amsterdam = Amsterdam()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Andorra.py b/vendor/pytz/zoneinfo/Europe/Andorra.py
deleted file mode 100644
index 2f5d03d0..00000000
--- a/vendor/pytz/zoneinfo/Europe/Andorra.py
+++ /dev/null
@@ -1,234 +0,0 @@
-'''tzinfo timezone information for Europe/Andorra.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Andorra(DstTzInfo):
- '''Europe/Andorra timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Andorra'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1946,9,30,0,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Andorra = Andorra()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Athens.py b/vendor/pytz/zoneinfo/Europe/Athens.py
deleted file mode 100644
index c76b1960..00000000
--- a/vendor/pytz/zoneinfo/Europe/Athens.py
+++ /dev/null
@@ -1,294 +0,0 @@
-'''tzinfo timezone information for Europe/Athens.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Athens(DstTzInfo):
- '''Europe/Athens timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Athens'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,27,22,26,8),
-d(1932,7,6,22,0,0),
-d(1932,8,31,21,0,0),
-d(1941,4,6,22,0,0),
-d(1941,4,29,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,23,0,0),
-d(1943,10,3,22,0,0),
-d(1944,4,3,23,0,0),
-d(1952,6,30,22,0,0),
-d(1952,11,1,21,0,0),
-d(1975,4,11,22,0,0),
-d(1975,11,25,22,0,0),
-d(1976,4,11,0,0,0),
-d(1976,10,10,0,0,0),
-d(1977,4,3,0,0,0),
-d(1977,9,26,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,9,24,1,0,0),
-d(1979,4,1,7,0,0),
-d(1979,9,28,23,0,0),
-d(1980,3,31,22,0,0),
-d(1980,9,27,21,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5700,0,'AMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Athens = Athens()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Belfast.py b/vendor/pytz/zoneinfo/Europe/Belfast.py
deleted file mode 100644
index fa9c7b8d..00000000
--- a/vendor/pytz/zoneinfo/Europe/Belfast.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for Europe/Belfast.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Belfast(DstTzInfo):
- '''Europe/Belfast timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Belfast'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-Belfast = Belfast()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Belgrade.py b/vendor/pytz/zoneinfo/Europe/Belgrade.py
deleted file mode 100644
index 9d363754..00000000
--- a/vendor/pytz/zoneinfo/Europe/Belgrade.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Belgrade.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Belgrade(DstTzInfo):
- '''Europe/Belgrade timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Belgrade'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Belgrade = Belgrade()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Berlin.py b/vendor/pytz/zoneinfo/Europe/Berlin.py
deleted file mode 100644
index bf588a1c..00000000
--- a/vendor/pytz/zoneinfo/Europe/Berlin.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for Europe/Berlin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Berlin(DstTzInfo):
- '''Europe/Berlin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Berlin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,5,24,0,0,0),
-d(1945,9,24,0,0,0),
-d(1945,11,18,1,0,0),
-d(1946,4,14,1,0,0),
-d(1946,10,7,1,0,0),
-d(1947,4,6,1,0,0),
-d(1947,5,11,1,0,0),
-d(1947,6,29,0,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,10,1,0,0),
-d(1949,10,2,1,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,7200,'CEMT'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,7200,'CEMT'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Berlin = Berlin()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Bratislava.py b/vendor/pytz/zoneinfo/Europe/Bratislava.py
deleted file mode 100644
index db606b77..00000000
--- a/vendor/pytz/zoneinfo/Europe/Bratislava.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Europe/Bratislava.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bratislava(DstTzInfo):
- '''Europe/Bratislava timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Bratislava'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,8,1,0,0),
-d(1945,11,18,1,0,0),
-d(1946,5,6,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,4,20,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,9,1,0,0),
-d(1949,10,2,1,0,0),
-d(1978,12,31,23,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Bratislava = Bratislava()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Brussels.py b/vendor/pytz/zoneinfo/Europe/Brussels.py
deleted file mode 100644
index 51a28a3f..00000000
--- a/vendor/pytz/zoneinfo/Europe/Brussels.py
+++ /dev/null
@@ -1,390 +0,0 @@
-'''tzinfo timezone information for Europe/Brussels.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Brussels(DstTzInfo):
- '''Europe/Brussels timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Brussels'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1914,11,8,0,0,0),
-d(1916,4,30,23,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1918,11,11,11,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,4,23,0,0),
-d(1920,2,14,23,0,0),
-d(1920,10,23,23,0,0),
-d(1921,3,14,23,0,0),
-d(1921,10,25,23,0,0),
-d(1922,3,25,23,0,0),
-d(1922,10,7,23,0,0),
-d(1923,4,21,23,0,0),
-d(1923,10,6,23,0,0),
-d(1924,3,29,23,0,0),
-d(1924,10,4,23,0,0),
-d(1925,4,4,23,0,0),
-d(1925,10,3,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,3,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,3,26,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,8,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,3,31,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,4,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,3,27,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1940,5,20,2,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,2,22,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,16,1,0,0),
-d(1946,5,19,1,0,0),
-d(1946,10,7,1,0,0),
-d(1976,12,31,23,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Brussels = Brussels()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Bucharest.py b/vendor/pytz/zoneinfo/Europe/Bucharest.py
deleted file mode 100644
index c565d9ef..00000000
--- a/vendor/pytz/zoneinfo/Europe/Bucharest.py
+++ /dev/null
@@ -1,294 +0,0 @@
-'''tzinfo timezone information for Europe/Bucharest.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Bucharest(DstTzInfo):
- '''Europe/Bucharest timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Bucharest'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1931,7,23,22,15,36),
-d(1932,5,20,22,0,0),
-d(1932,10,1,22,0,0),
-d(1933,4,1,22,0,0),
-d(1933,9,30,22,0,0),
-d(1934,4,7,22,0,0),
-d(1934,10,6,22,0,0),
-d(1935,4,6,22,0,0),
-d(1935,10,5,22,0,0),
-d(1936,4,4,22,0,0),
-d(1936,10,3,22,0,0),
-d(1937,4,3,22,0,0),
-d(1937,10,2,22,0,0),
-d(1938,4,2,22,0,0),
-d(1938,10,1,22,0,0),
-d(1939,4,1,22,0,0),
-d(1939,9,30,22,0,0),
-d(1979,5,26,22,0,0),
-d(1979,9,29,21,0,0),
-d(1980,4,5,21,0,0),
-d(1980,9,27,22,0,0),
-d(1981,3,29,0,0,0),
-d(1981,9,27,0,0,0),
-d(1982,3,28,0,0,0),
-d(1982,9,26,0,0,0),
-d(1983,3,27,0,0,0),
-d(1983,9,25,0,0,0),
-d(1984,3,25,0,0,0),
-d(1984,9,30,0,0,0),
-d(1985,3,31,0,0,0),
-d(1985,9,29,0,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1988,3,27,0,0,0),
-d(1988,9,25,0,0,0),
-d(1989,3,26,0,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1990,12,31,22,0,0),
-d(1991,3,30,22,0,0),
-d(1991,9,28,22,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,22,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,22,0,0),
-d(1993,12,31,22,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(6240,0,'BMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Bucharest = Bucharest()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Budapest.py b/vendor/pytz/zoneinfo/Europe/Budapest.py
deleted file mode 100644
index 3421346b..00000000
--- a/vendor/pytz/zoneinfo/Europe/Budapest.py
+++ /dev/null
@@ -1,326 +0,0 @@
-'''tzinfo timezone information for Europe/Budapest.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Budapest(DstTzInfo):
- '''Europe/Budapest timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Budapest'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1917,12,31,23,0,0),
-d(1918,4,1,2,0,0),
-d(1918,9,29,1,0,0),
-d(1919,4,15,2,0,0),
-d(1919,9,15,1,0,0),
-d(1920,4,5,2,0,0),
-d(1920,9,30,1,0,0),
-d(1941,4,6,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,1,22,0,0),
-d(1945,11,2,22,0,0),
-d(1946,3,31,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,4,6,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,4,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,10,1,0,0),
-d(1949,10,2,1,0,0),
-d(1950,4,17,1,0,0),
-d(1950,10,23,1,0,0),
-d(1954,5,22,23,0,0),
-d(1954,10,2,22,0,0),
-d(1955,5,22,23,0,0),
-d(1955,10,2,22,0,0),
-d(1956,6,2,23,0,0),
-d(1956,9,29,22,0,0),
-d(1957,6,2,0,0,0),
-d(1957,9,29,1,0,0),
-d(1980,4,6,0,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Budapest = Budapest()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Chisinau.py b/vendor/pytz/zoneinfo/Europe/Chisinau.py
deleted file mode 100644
index a433db39..00000000
--- a/vendor/pytz/zoneinfo/Europe/Chisinau.py
+++ /dev/null
@@ -1,300 +0,0 @@
-'''tzinfo timezone information for Europe/Chisinau.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chisinau(DstTzInfo):
- '''Europe/Chisinau timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Chisinau'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,2,14,22,5,0),
-d(1931,7,23,22,15,36),
-d(1932,5,20,22,0,0),
-d(1932,10,1,22,0,0),
-d(1933,4,1,22,0,0),
-d(1933,9,30,22,0,0),
-d(1934,4,7,22,0,0),
-d(1934,10,6,22,0,0),
-d(1935,4,6,22,0,0),
-d(1935,10,5,22,0,0),
-d(1936,4,4,22,0,0),
-d(1936,10,3,22,0,0),
-d(1937,4,3,22,0,0),
-d(1937,10,2,22,0,0),
-d(1938,4,2,22,0,0),
-d(1938,10,1,22,0,0),
-d(1939,4,1,22,0,0),
-d(1939,9,30,22,0,0),
-d(1940,8,14,22,0,0),
-d(1941,7,16,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,8,23,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1990,5,5,21,0,0),
-d(1991,3,31,0,0,0),
-d(1991,9,29,0,0,0),
-d(1991,12,31,22,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(6900,0,'CMT'),
-i(6240,0,'BMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Chisinau = Chisinau()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Copenhagen.py b/vendor/pytz/zoneinfo/Europe/Copenhagen.py
deleted file mode 100644
index 9a0f2b68..00000000
--- a/vendor/pytz/zoneinfo/Europe/Copenhagen.py
+++ /dev/null
@@ -1,286 +0,0 @@
-'''tzinfo timezone information for Europe/Copenhagen.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Copenhagen(DstTzInfo):
- '''Europe/Copenhagen timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Copenhagen'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,14,22,0,0),
-d(1916,9,30,21,0,0),
-d(1940,5,14,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,8,15,1,0,0),
-d(1946,5,1,1,0,0),
-d(1946,9,1,1,0,0),
-d(1947,5,4,1,0,0),
-d(1947,8,10,1,0,0),
-d(1948,5,9,1,0,0),
-d(1948,8,8,1,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Copenhagen = Copenhagen()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Dublin.py b/vendor/pytz/zoneinfo/Europe/Dublin.py
deleted file mode 100644
index 845c206d..00000000
--- a/vendor/pytz/zoneinfo/Europe/Dublin.py
+++ /dev/null
@@ -1,478 +0,0 @@
-'''tzinfo timezone information for Europe/Dublin.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Dublin(DstTzInfo):
- '''Europe/Dublin timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Dublin'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,25,21),
-d(1916,10,1,2,25,21),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1921,12,6,0,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,16,2,0,0),
-d(1947,11,2,1,0,0),
-d(1948,4,18,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-1500,0,'DMT'),
-i(2100,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(3600,0,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
-i(3600,3600,'IST'),
-i(0,0,'GMT'),
- ]
-
-Dublin = Dublin()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Gibraltar.py b/vendor/pytz/zoneinfo/Europe/Gibraltar.py
deleted file mode 100644
index b0598e8d..00000000
--- a/vendor/pytz/zoneinfo/Europe/Gibraltar.py
+++ /dev/null
@@ -1,414 +0,0 @@
-'''tzinfo timezone information for Europe/Gibraltar.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Gibraltar(DstTzInfo):
- '''Europe/Gibraltar timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Gibraltar'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Gibraltar = Gibraltar()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Guernsey.py b/vendor/pytz/zoneinfo/Europe/Guernsey.py
deleted file mode 100644
index 7e1b9af6..00000000
--- a/vendor/pytz/zoneinfo/Europe/Guernsey.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for Europe/Guernsey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guernsey(DstTzInfo):
- '''Europe/Guernsey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Guernsey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-Guernsey = Guernsey()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Helsinki.py b/vendor/pytz/zoneinfo/Europe/Helsinki.py
deleted file mode 100644
index eefbebbc..00000000
--- a/vendor/pytz/zoneinfo/Europe/Helsinki.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Europe/Helsinki.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Helsinki(DstTzInfo):
- '''Europe/Helsinki timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Helsinki'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,4,30,22,20,8),
-d(1942,4,2,22,0,0),
-d(1942,10,2,21,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(6000,0,'HMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Helsinki = Helsinki()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Isle_of_Man.py b/vendor/pytz/zoneinfo/Europe/Isle_of_Man.py
deleted file mode 100644
index b5667de2..00000000
--- a/vendor/pytz/zoneinfo/Europe/Isle_of_Man.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for Europe/Isle_of_Man.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Isle_of_Man(DstTzInfo):
- '''Europe/Isle_of_Man timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Isle_of_Man'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-Isle_of_Man = Isle_of_Man()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Istanbul.py b/vendor/pytz/zoneinfo/Europe/Istanbul.py
deleted file mode 100644
index 7f02cca9..00000000
--- a/vendor/pytz/zoneinfo/Europe/Istanbul.py
+++ /dev/null
@@ -1,362 +0,0 @@
-'''tzinfo timezone information for Europe/Istanbul.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Istanbul(DstTzInfo):
- '''Europe/Istanbul timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Istanbul'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,9,30,22,3,4),
-d(1916,4,30,22,0,0),
-d(1916,9,30,21,0,0),
-d(1920,3,27,22,0,0),
-d(1920,10,24,21,0,0),
-d(1921,4,2,22,0,0),
-d(1921,10,2,21,0,0),
-d(1922,3,25,22,0,0),
-d(1922,10,7,21,0,0),
-d(1924,5,12,22,0,0),
-d(1924,9,30,21,0,0),
-d(1925,4,30,22,0,0),
-d(1925,9,30,21,0,0),
-d(1940,6,29,22,0,0),
-d(1940,10,4,21,0,0),
-d(1940,11,30,22,0,0),
-d(1941,9,20,21,0,0),
-d(1942,3,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1945,4,1,22,0,0),
-d(1945,10,7,21,0,0),
-d(1946,5,31,22,0,0),
-d(1946,9,30,21,0,0),
-d(1947,4,19,22,0,0),
-d(1947,10,4,21,0,0),
-d(1948,4,17,22,0,0),
-d(1948,10,2,21,0,0),
-d(1949,4,9,22,0,0),
-d(1949,10,1,21,0,0),
-d(1950,4,18,22,0,0),
-d(1950,10,7,21,0,0),
-d(1951,4,21,22,0,0),
-d(1951,10,7,21,0,0),
-d(1962,7,14,22,0,0),
-d(1962,10,7,21,0,0),
-d(1964,5,14,22,0,0),
-d(1964,9,30,21,0,0),
-d(1970,5,2,22,0,0),
-d(1970,10,3,21,0,0),
-d(1971,5,1,22,0,0),
-d(1971,10,2,21,0,0),
-d(1972,5,6,22,0,0),
-d(1972,10,7,21,0,0),
-d(1973,6,2,23,0,0),
-d(1973,11,4,0,0,0),
-d(1974,3,31,0,0,0),
-d(1974,11,3,2,0,0),
-d(1975,3,29,22,0,0),
-d(1975,10,25,21,0,0),
-d(1976,5,31,22,0,0),
-d(1976,10,30,21,0,0),
-d(1977,4,2,22,0,0),
-d(1977,10,15,21,0,0),
-d(1978,4,1,22,0,0),
-d(1978,10,14,21,0,0),
-d(1979,10,14,20,0,0),
-d(1980,4,6,0,0,0),
-d(1980,10,12,20,0,0),
-d(1981,3,29,0,0,0),
-d(1981,10,11,20,0,0),
-d(1982,3,28,0,0,0),
-d(1982,10,10,20,0,0),
-d(1983,7,30,21,0,0),
-d(1983,10,1,20,0,0),
-d(1985,4,19,21,0,0),
-d(1985,9,27,21,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1988,3,27,0,0,0),
-d(1988,9,25,0,0,0),
-d(1989,3,26,0,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1990,12,31,22,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7020,0,'IMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(14400,7200,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Istanbul = Istanbul()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Jersey.py b/vendor/pytz/zoneinfo/Europe/Jersey.py
deleted file mode 100644
index 4c5bd165..00000000
--- a/vendor/pytz/zoneinfo/Europe/Jersey.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for Europe/Jersey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jersey(DstTzInfo):
- '''Europe/Jersey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Jersey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-Jersey = Jersey()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Kaliningrad.py b/vendor/pytz/zoneinfo/Europe/Kaliningrad.py
deleted file mode 100644
index a0fe042c..00000000
--- a/vendor/pytz/zoneinfo/Europe/Kaliningrad.py
+++ /dev/null
@@ -1,280 +0,0 @@
-'''tzinfo timezone information for Europe/Kaliningrad.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kaliningrad(DstTzInfo):
- '''Europe/Kaliningrad timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Kaliningrad'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1944,12,31,23,0,0),
-d(1945,4,28,22,0,0),
-d(1945,10,31,21,0,0),
-d(1945,12,31,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1992,3,28,21,0,0),
-d(1992,9,26,20,0,0),
-d(1993,3,28,0,0,0),
-d(1993,9,26,0,0,0),
-d(1994,3,27,0,0,0),
-d(1994,9,25,0,0,0),
-d(1995,3,26,0,0,0),
-d(1995,9,24,0,0,0),
-d(1996,3,31,0,0,0),
-d(1996,10,27,0,0,0),
-d(1997,3,30,0,0,0),
-d(1997,10,26,0,0,0),
-d(1998,3,29,0,0,0),
-d(1998,10,25,0,0,0),
-d(1999,3,28,0,0,0),
-d(1999,10,31,0,0,0),
-d(2000,3,26,0,0,0),
-d(2000,10,29,0,0,0),
-d(2001,3,25,0,0,0),
-d(2001,10,28,0,0,0),
-d(2002,3,31,0,0,0),
-d(2002,10,27,0,0,0),
-d(2003,3,30,0,0,0),
-d(2003,10,26,0,0,0),
-d(2004,3,28,0,0,0),
-d(2004,10,31,0,0,0),
-d(2005,3,27,0,0,0),
-d(2005,10,30,0,0,0),
-d(2006,3,26,0,0,0),
-d(2006,10,29,0,0,0),
-d(2007,3,25,0,0,0),
-d(2007,10,28,0,0,0),
-d(2008,3,30,0,0,0),
-d(2008,10,26,0,0,0),
-d(2009,3,29,0,0,0),
-d(2009,10,25,0,0,0),
-d(2010,3,28,0,0,0),
-d(2010,10,31,0,0,0),
-d(2011,3,27,0,0,0),
-d(2011,10,30,0,0,0),
-d(2012,3,25,0,0,0),
-d(2012,10,28,0,0,0),
-d(2013,3,31,0,0,0),
-d(2013,10,27,0,0,0),
-d(2014,3,30,0,0,0),
-d(2014,10,26,0,0,0),
-d(2015,3,29,0,0,0),
-d(2015,10,25,0,0,0),
-d(2016,3,27,0,0,0),
-d(2016,10,30,0,0,0),
-d(2017,3,26,0,0,0),
-d(2017,10,29,0,0,0),
-d(2018,3,25,0,0,0),
-d(2018,10,28,0,0,0),
-d(2019,3,31,0,0,0),
-d(2019,10,27,0,0,0),
-d(2020,3,29,0,0,0),
-d(2020,10,25,0,0,0),
-d(2021,3,28,0,0,0),
-d(2021,10,31,0,0,0),
-d(2022,3,27,0,0,0),
-d(2022,10,30,0,0,0),
-d(2023,3,26,0,0,0),
-d(2023,10,29,0,0,0),
-d(2024,3,31,0,0,0),
-d(2024,10,27,0,0,0),
-d(2025,3,30,0,0,0),
-d(2025,10,26,0,0,0),
-d(2026,3,29,0,0,0),
-d(2026,10,25,0,0,0),
-d(2027,3,28,0,0,0),
-d(2027,10,31,0,0,0),
-d(2028,3,26,0,0,0),
-d(2028,10,29,0,0,0),
-d(2029,3,25,0,0,0),
-d(2029,10,28,0,0,0),
-d(2030,3,31,0,0,0),
-d(2030,10,27,0,0,0),
-d(2031,3,30,0,0,0),
-d(2031,10,26,0,0,0),
-d(2032,3,28,0,0,0),
-d(2032,10,31,0,0,0),
-d(2033,3,27,0,0,0),
-d(2033,10,30,0,0,0),
-d(2034,3,26,0,0,0),
-d(2034,10,29,0,0,0),
-d(2035,3,25,0,0,0),
-d(2035,10,28,0,0,0),
-d(2036,3,30,0,0,0),
-d(2036,10,26,0,0,0),
-d(2037,3,29,0,0,0),
-d(2037,10,25,0,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'CET'),
-i(10800,3600,'CEST'),
-i(7200,0,'CET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Kaliningrad = Kaliningrad()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Kiev.py b/vendor/pytz/zoneinfo/Europe/Kiev.py
deleted file mode 100644
index 6219010a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Kiev.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Kiev.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kiev(DstTzInfo):
- '''Europe/Kiev timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Kiev'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,21,57,56),
-d(1930,6,20,22,0,0),
-d(1941,9,19,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1943,11,5,23,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1990,6,30,23,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7320,0,'KMT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Kiev = Kiev()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Lisbon.py b/vendor/pytz/zoneinfo/Europe/Lisbon.py
deleted file mode 100644
index a522a5e6..00000000
--- a/vendor/pytz/zoneinfo/Europe/Lisbon.py
+++ /dev/null
@@ -1,462 +0,0 @@
-'''tzinfo timezone information for Europe/Lisbon.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Lisbon(DstTzInfo):
- '''Europe/Lisbon timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Lisbon'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,36,32),
-d(1916,6,17,23,0,0),
-d(1916,11,1,0,0,0),
-d(1917,2,28,23,0,0),
-d(1917,10,14,23,0,0),
-d(1918,3,1,23,0,0),
-d(1918,10,14,23,0,0),
-d(1919,2,28,23,0,0),
-d(1919,10,14,23,0,0),
-d(1920,2,29,23,0,0),
-d(1920,10,14,23,0,0),
-d(1921,2,28,23,0,0),
-d(1921,10,14,23,0,0),
-d(1924,4,16,23,0,0),
-d(1924,10,14,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,5,23,0,0),
-d(1931,4,18,23,0,0),
-d(1931,10,3,23,0,0),
-d(1932,4,2,23,0,0),
-d(1932,10,1,23,0,0),
-d(1934,4,7,23,0,0),
-d(1934,10,6,23,0,0),
-d(1935,3,30,23,0,0),
-d(1935,10,5,23,0,0),
-d(1936,4,18,23,0,0),
-d(1936,10,3,23,0,0),
-d(1937,4,3,23,0,0),
-d(1937,10,2,23,0,0),
-d(1938,3,26,23,0,0),
-d(1938,10,1,23,0,0),
-d(1939,4,15,23,0,0),
-d(1939,11,18,23,0,0),
-d(1940,2,24,23,0,0),
-d(1940,10,5,23,0,0),
-d(1941,4,5,23,0,0),
-d(1941,10,5,23,0,0),
-d(1942,3,14,23,0,0),
-d(1942,4,25,22,0,0),
-d(1942,8,15,22,0,0),
-d(1942,10,24,23,0,0),
-d(1943,3,13,23,0,0),
-d(1943,4,17,22,0,0),
-d(1943,8,28,22,0,0),
-d(1943,10,30,23,0,0),
-d(1944,3,11,23,0,0),
-d(1944,4,22,22,0,0),
-d(1944,8,26,22,0,0),
-d(1944,10,28,23,0,0),
-d(1945,3,10,23,0,0),
-d(1945,4,21,22,0,0),
-d(1945,8,25,22,0,0),
-d(1945,10,27,23,0,0),
-d(1946,4,6,23,0,0),
-d(1946,10,5,23,0,0),
-d(1947,4,6,2,0,0),
-d(1947,10,5,2,0,0),
-d(1948,4,4,2,0,0),
-d(1948,10,3,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,2,2,0,0),
-d(1951,4,1,2,0,0),
-d(1951,10,7,2,0,0),
-d(1952,4,6,2,0,0),
-d(1952,10,5,2,0,0),
-d(1953,4,5,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,4,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,3,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,1,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,7,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,6,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,5,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,3,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,4,2,2,0,0),
-d(1961,10,1,2,0,0),
-d(1962,4,1,2,0,0),
-d(1962,10,7,2,0,0),
-d(1963,4,7,2,0,0),
-d(1963,10,6,2,0,0),
-d(1964,4,5,2,0,0),
-d(1964,10,4,2,0,0),
-d(1965,4,4,2,0,0),
-d(1965,10,3,2,0,0),
-d(1966,4,3,2,0,0),
-d(1976,9,26,0,0,0),
-d(1977,3,27,0,0,0),
-d(1977,9,25,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,1,0,0,0),
-d(1979,9,30,1,0,0),
-d(1980,3,30,0,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,2,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-2220,0,'LMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-Lisbon = Lisbon()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Ljubljana.py b/vendor/pytz/zoneinfo/Europe/Ljubljana.py
deleted file mode 100644
index adf954f0..00000000
--- a/vendor/pytz/zoneinfo/Europe/Ljubljana.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Ljubljana.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Ljubljana(DstTzInfo):
- '''Europe/Ljubljana timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Ljubljana'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Ljubljana = Ljubljana()
-
diff --git a/vendor/pytz/zoneinfo/Europe/London.py b/vendor/pytz/zoneinfo/Europe/London.py
deleted file mode 100644
index 9eff5985..00000000
--- a/vendor/pytz/zoneinfo/Europe/London.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for Europe/London.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class London(DstTzInfo):
- '''Europe/London timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/London'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-London = London()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Luxembourg.py b/vendor/pytz/zoneinfo/Europe/Luxembourg.py
deleted file mode 100644
index 89884ecd..00000000
--- a/vendor/pytz/zoneinfo/Europe/Luxembourg.py
+++ /dev/null
@@ -1,388 +0,0 @@
-'''tzinfo timezone information for Europe/Luxembourg.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Luxembourg(DstTzInfo):
- '''Europe/Luxembourg timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Luxembourg'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,5,31,23,35,24),
-d(1916,5,14,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,28,22,0,0),
-d(1917,9,16,23,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1918,11,24,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,5,2,0,0),
-d(1920,2,14,23,0,0),
-d(1920,10,24,1,0,0),
-d(1921,3,14,23,0,0),
-d(1921,10,26,1,0,0),
-d(1922,3,25,23,0,0),
-d(1922,10,8,0,0,0),
-d(1923,4,21,23,0,0),
-d(1923,10,7,1,0,0),
-d(1924,3,29,23,0,0),
-d(1924,10,5,0,0,0),
-d(1925,4,5,23,0,0),
-d(1925,10,4,0,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,3,0,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,2,0,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,7,0,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,3,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,3,26,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,8,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,3,31,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,4,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,3,27,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1940,5,14,2,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,18,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,16,1,0,0),
-d(1946,5,19,1,0,0),
-d(1946,10,7,1,0,0),
-d(1976,12,31,23,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(1500,0,'LMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEST'),
-i(3600,0,'WET'),
-i(7200,3600,'WEST'),
-i(3600,0,'WET'),
-i(7200,3600,'WEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Luxembourg = Luxembourg()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Madrid.py b/vendor/pytz/zoneinfo/Europe/Madrid.py
deleted file mode 100644
index 9d86ecfe..00000000
--- a/vendor/pytz/zoneinfo/Europe/Madrid.py
+++ /dev/null
@@ -1,346 +0,0 @@
-'''tzinfo timezone information for Europe/Madrid.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Madrid(DstTzInfo):
- '''Europe/Madrid timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Madrid'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,5,5,23,0,0),
-d(1917,10,6,23,0,0),
-d(1918,4,15,23,0,0),
-d(1918,10,6,23,0,0),
-d(1919,4,5,23,0,0),
-d(1919,10,6,23,0,0),
-d(1924,4,16,23,0,0),
-d(1924,10,4,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,5,23,0,0),
-d(1937,5,22,23,0,0),
-d(1937,10,2,23,0,0),
-d(1938,3,22,23,0,0),
-d(1938,10,1,23,0,0),
-d(1939,4,15,23,0,0),
-d(1939,10,7,23,0,0),
-d(1940,3,16,23,0,0),
-d(1942,5,2,22,0,0),
-d(1942,9,1,22,0,0),
-d(1943,4,17,22,0,0),
-d(1943,10,3,22,0,0),
-d(1944,4,15,22,0,0),
-d(1944,10,10,22,0,0),
-d(1945,4,14,22,0,0),
-d(1945,9,29,23,0,0),
-d(1946,4,13,22,0,0),
-d(1946,9,29,22,0,0),
-d(1949,4,30,22,0,0),
-d(1949,9,29,23,0,0),
-d(1974,4,13,22,0,0),
-d(1974,10,5,23,0,0),
-d(1975,4,19,22,0,0),
-d(1975,10,4,23,0,0),
-d(1976,3,27,22,0,0),
-d(1976,9,25,23,0,0),
-d(1977,4,2,22,0,0),
-d(1977,9,24,23,0,0),
-d(1978,4,2,22,0,0),
-d(1978,9,30,23,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Madrid = Madrid()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Malta.py b/vendor/pytz/zoneinfo/Europe/Malta.py
deleted file mode 100644
index e361bfc5..00000000
--- a/vendor/pytz/zoneinfo/Europe/Malta.py
+++ /dev/null
@@ -1,356 +0,0 @@
-'''tzinfo timezone information for Europe/Malta.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Malta(DstTzInfo):
- '''Europe/Malta timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Malta'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,6,2,23,0,0),
-d(1916,9,30,23,0,0),
-d(1917,3,31,23,0,0),
-d(1917,9,29,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,5,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,4,23,0,0),
-d(1920,3,20,23,0,0),
-d(1920,9,18,23,0,0),
-d(1940,6,14,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,14,23,0,0),
-d(1946,3,17,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,15,23,0,0),
-d(1947,10,4,23,0,0),
-d(1948,2,29,1,0,0),
-d(1948,10,3,1,0,0),
-d(1966,5,21,23,0,0),
-d(1966,9,24,22,0,0),
-d(1967,5,27,23,0,0),
-d(1967,9,23,22,0,0),
-d(1968,5,25,23,0,0),
-d(1968,9,21,22,0,0),
-d(1969,5,31,23,0,0),
-d(1969,9,27,22,0,0),
-d(1970,5,30,23,0,0),
-d(1970,9,26,22,0,0),
-d(1971,5,22,23,0,0),
-d(1971,9,25,23,0,0),
-d(1972,5,27,23,0,0),
-d(1972,9,30,22,0,0),
-d(1973,3,30,23,0,0),
-d(1973,9,28,23,0,0),
-d(1974,4,20,23,0,0),
-d(1974,9,15,23,0,0),
-d(1975,4,20,1,0,0),
-d(1975,9,21,0,0,0),
-d(1976,4,18,1,0,0),
-d(1976,9,19,0,0,0),
-d(1977,4,17,1,0,0),
-d(1977,9,18,0,0,0),
-d(1978,4,16,1,0,0),
-d(1978,9,17,0,0,0),
-d(1979,4,15,1,0,0),
-d(1979,9,16,0,0,0),
-d(1980,3,31,1,0,0),
-d(1980,9,21,0,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Malta = Malta()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Mariehamn.py b/vendor/pytz/zoneinfo/Europe/Mariehamn.py
deleted file mode 100644
index cd8bb70f..00000000
--- a/vendor/pytz/zoneinfo/Europe/Mariehamn.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Europe/Mariehamn.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mariehamn(DstTzInfo):
- '''Europe/Mariehamn timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Mariehamn'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,4,30,22,20,8),
-d(1942,4,2,22,0,0),
-d(1942,10,2,21,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(6000,0,'HMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Mariehamn = Mariehamn()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Minsk.py b/vendor/pytz/zoneinfo/Europe/Minsk.py
deleted file mode 100644
index 2a1bb6da..00000000
--- a/vendor/pytz/zoneinfo/Europe/Minsk.py
+++ /dev/null
@@ -1,262 +0,0 @@
-'''tzinfo timezone information for Europe/Minsk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Minsk(DstTzInfo):
- '''Europe/Minsk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Minsk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,22,10,0),
-d(1930,6,20,22,0,0),
-d(1941,6,27,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,7,2,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,22,0,0),
-d(1993,3,28,0,0,0),
-d(1993,9,26,0,0,0),
-d(1994,3,27,0,0,0),
-d(1994,9,25,0,0,0),
-d(1995,3,26,0,0,0),
-d(1995,9,24,0,0,0),
-d(1996,3,31,0,0,0),
-d(1996,10,27,0,0,0),
-d(1997,3,30,0,0,0),
-d(1997,10,26,0,0,0),
-d(1998,3,29,0,0,0),
-d(1998,10,25,0,0,0),
-d(1999,3,28,0,0,0),
-d(1999,10,31,0,0,0),
-d(2000,3,26,0,0,0),
-d(2000,10,29,0,0,0),
-d(2001,3,25,0,0,0),
-d(2001,10,28,0,0,0),
-d(2002,3,31,0,0,0),
-d(2002,10,27,0,0,0),
-d(2003,3,30,0,0,0),
-d(2003,10,26,0,0,0),
-d(2004,3,28,0,0,0),
-d(2004,10,31,0,0,0),
-d(2005,3,27,0,0,0),
-d(2005,10,30,0,0,0),
-d(2006,3,26,0,0,0),
-d(2006,10,29,0,0,0),
-d(2007,3,25,0,0,0),
-d(2007,10,28,0,0,0),
-d(2008,3,30,0,0,0),
-d(2008,10,26,0,0,0),
-d(2009,3,29,0,0,0),
-d(2009,10,25,0,0,0),
-d(2010,3,28,0,0,0),
-d(2010,10,31,0,0,0),
-d(2011,3,27,0,0,0),
-d(2011,10,30,0,0,0),
-d(2012,3,25,0,0,0),
-d(2012,10,28,0,0,0),
-d(2013,3,31,0,0,0),
-d(2013,10,27,0,0,0),
-d(2014,3,30,0,0,0),
-d(2014,10,26,0,0,0),
-d(2015,3,29,0,0,0),
-d(2015,10,25,0,0,0),
-d(2016,3,27,0,0,0),
-d(2016,10,30,0,0,0),
-d(2017,3,26,0,0,0),
-d(2017,10,29,0,0,0),
-d(2018,3,25,0,0,0),
-d(2018,10,28,0,0,0),
-d(2019,3,31,0,0,0),
-d(2019,10,27,0,0,0),
-d(2020,3,29,0,0,0),
-d(2020,10,25,0,0,0),
-d(2021,3,28,0,0,0),
-d(2021,10,31,0,0,0),
-d(2022,3,27,0,0,0),
-d(2022,10,30,0,0,0),
-d(2023,3,26,0,0,0),
-d(2023,10,29,0,0,0),
-d(2024,3,31,0,0,0),
-d(2024,10,27,0,0,0),
-d(2025,3,30,0,0,0),
-d(2025,10,26,0,0,0),
-d(2026,3,29,0,0,0),
-d(2026,10,25,0,0,0),
-d(2027,3,28,0,0,0),
-d(2027,10,31,0,0,0),
-d(2028,3,26,0,0,0),
-d(2028,10,29,0,0,0),
-d(2029,3,25,0,0,0),
-d(2029,10,28,0,0,0),
-d(2030,3,31,0,0,0),
-d(2030,10,27,0,0,0),
-d(2031,3,30,0,0,0),
-d(2031,10,26,0,0,0),
-d(2032,3,28,0,0,0),
-d(2032,10,31,0,0,0),
-d(2033,3,27,0,0,0),
-d(2033,10,30,0,0,0),
-d(2034,3,26,0,0,0),
-d(2034,10,29,0,0,0),
-d(2035,3,25,0,0,0),
-d(2035,10,28,0,0,0),
-d(2036,3,30,0,0,0),
-d(2036,10,26,0,0,0),
-d(2037,3,29,0,0,0),
-d(2037,10,25,0,0,0),
- ]
-
- _transition_info = [
-i(6600,0,'MMT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Minsk = Minsk()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Monaco.py b/vendor/pytz/zoneinfo/Europe/Monaco.py
deleted file mode 100644
index 4884ef22..00000000
--- a/vendor/pytz/zoneinfo/Europe/Monaco.py
+++ /dev/null
@@ -1,388 +0,0 @@
-'''tzinfo timezone information for Europe/Monaco.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Monaco(DstTzInfo):
- '''Europe/Monaco timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Monaco'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,3,10,23,50,39),
-d(1916,6,14,23,0,0),
-d(1916,10,1,23,0,0),
-d(1917,3,24,23,0,0),
-d(1917,10,7,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,6,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,5,23,0,0),
-d(1920,2,14,23,0,0),
-d(1920,10,23,23,0,0),
-d(1921,3,14,23,0,0),
-d(1921,10,25,23,0,0),
-d(1922,3,25,23,0,0),
-d(1922,10,7,23,0,0),
-d(1923,5,26,23,0,0),
-d(1923,10,6,23,0,0),
-d(1924,3,29,23,0,0),
-d(1924,10,4,23,0,0),
-d(1925,4,4,23,0,0),
-d(1925,10,3,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,5,23,0,0),
-d(1930,4,12,23,0,0),
-d(1930,10,4,23,0,0),
-d(1931,4,18,23,0,0),
-d(1931,10,3,23,0,0),
-d(1932,4,2,23,0,0),
-d(1932,10,1,23,0,0),
-d(1933,3,25,23,0,0),
-d(1933,10,7,23,0,0),
-d(1934,4,7,23,0,0),
-d(1934,10,6,23,0,0),
-d(1935,3,30,23,0,0),
-d(1935,10,5,23,0,0),
-d(1936,4,18,23,0,0),
-d(1936,10,3,23,0,0),
-d(1937,4,3,23,0,0),
-d(1937,10,2,23,0,0),
-d(1938,3,26,23,0,0),
-d(1938,10,1,23,0,0),
-d(1939,4,15,23,0,0),
-d(1939,11,18,23,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,23,0,0),
-d(1941,10,5,22,0,0),
-d(1942,3,8,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,7,23,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,16,1,0,0),
-d(1976,3,28,0,0,0),
-d(1976,9,25,23,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(540,0,'PMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Monaco = Monaco()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Moscow.py b/vendor/pytz/zoneinfo/Europe/Moscow.py
deleted file mode 100644
index 943112d0..00000000
--- a/vendor/pytz/zoneinfo/Europe/Moscow.py
+++ /dev/null
@@ -1,278 +0,0 @@
-'''tzinfo timezone information for Europe/Moscow.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Moscow(DstTzInfo):
- '''Europe/Moscow timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Moscow'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,2,21,30,0),
-d(1917,7,1,20,29,12),
-d(1917,12,27,20,29,12),
-d(1918,5,31,19,29,12),
-d(1918,9,15,20,29,12),
-d(1919,5,31,19,29,12),
-d(1919,6,30,21,29,12),
-d(1919,8,15,20,0,0),
-d(1921,2,14,20,0,0),
-d(1921,3,20,19,0,0),
-d(1921,8,31,19,0,0),
-d(1921,9,30,20,0,0),
-d(1922,9,30,21,0,0),
-d(1930,6,20,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1992,1,19,0,0,0),
-d(1992,3,28,20,0,0),
-d(1992,9,26,19,0,0),
-d(1993,3,27,23,0,0),
-d(1993,9,25,23,0,0),
-d(1994,3,26,23,0,0),
-d(1994,9,24,23,0,0),
-d(1995,3,25,23,0,0),
-d(1995,9,23,23,0,0),
-d(1996,3,30,23,0,0),
-d(1996,10,26,23,0,0),
-d(1997,3,29,23,0,0),
-d(1997,10,25,23,0,0),
-d(1998,3,28,23,0,0),
-d(1998,10,24,23,0,0),
-d(1999,3,27,23,0,0),
-d(1999,10,30,23,0,0),
-d(2000,3,25,23,0,0),
-d(2000,10,28,23,0,0),
-d(2001,3,24,23,0,0),
-d(2001,10,27,23,0,0),
-d(2002,3,30,23,0,0),
-d(2002,10,26,23,0,0),
-d(2003,3,29,23,0,0),
-d(2003,10,25,23,0,0),
-d(2004,3,27,23,0,0),
-d(2004,10,30,23,0,0),
-d(2005,3,26,23,0,0),
-d(2005,10,29,23,0,0),
-d(2006,3,25,23,0,0),
-d(2006,10,28,23,0,0),
-d(2007,3,24,23,0,0),
-d(2007,10,27,23,0,0),
-d(2008,3,29,23,0,0),
-d(2008,10,25,23,0,0),
-d(2009,3,28,23,0,0),
-d(2009,10,24,23,0,0),
-d(2010,3,27,23,0,0),
-d(2010,10,30,23,0,0),
-d(2011,3,26,23,0,0),
-d(2011,10,29,23,0,0),
-d(2012,3,24,23,0,0),
-d(2012,10,27,23,0,0),
-d(2013,3,30,23,0,0),
-d(2013,10,26,23,0,0),
-d(2014,3,29,23,0,0),
-d(2014,10,25,23,0,0),
-d(2015,3,28,23,0,0),
-d(2015,10,24,23,0,0),
-d(2016,3,26,23,0,0),
-d(2016,10,29,23,0,0),
-d(2017,3,25,23,0,0),
-d(2017,10,28,23,0,0),
-d(2018,3,24,23,0,0),
-d(2018,10,27,23,0,0),
-d(2019,3,30,23,0,0),
-d(2019,10,26,23,0,0),
-d(2020,3,28,23,0,0),
-d(2020,10,24,23,0,0),
-d(2021,3,27,23,0,0),
-d(2021,10,30,23,0,0),
-d(2022,3,26,23,0,0),
-d(2022,10,29,23,0,0),
-d(2023,3,25,23,0,0),
-d(2023,10,28,23,0,0),
-d(2024,3,30,23,0,0),
-d(2024,10,26,23,0,0),
-d(2025,3,29,23,0,0),
-d(2025,10,25,23,0,0),
-d(2026,3,28,23,0,0),
-d(2026,10,24,23,0,0),
-d(2027,3,27,23,0,0),
-d(2027,10,30,23,0,0),
-d(2028,3,25,23,0,0),
-d(2028,10,28,23,0,0),
-d(2029,3,24,23,0,0),
-d(2029,10,27,23,0,0),
-d(2030,3,30,23,0,0),
-d(2030,10,26,23,0,0),
-d(2031,3,29,23,0,0),
-d(2031,10,25,23,0,0),
-d(2032,3,27,23,0,0),
-d(2032,10,30,23,0,0),
-d(2033,3,26,23,0,0),
-d(2033,10,29,23,0,0),
-d(2034,3,25,23,0,0),
-d(2034,10,28,23,0,0),
-d(2035,3,24,23,0,0),
-d(2035,10,27,23,0,0),
-d(2036,3,29,23,0,0),
-d(2036,10,25,23,0,0),
-d(2037,3,28,23,0,0),
-d(2037,10,24,23,0,0),
- ]
-
- _transition_info = [
-i(9000,0,'MMT'),
-i(9060,0,'MMT'),
-i(12660,3600,'MST'),
-i(9060,0,'MMT'),
-i(16260,7200,'MDST'),
-i(12660,3600,'MST'),
-i(16260,7200,'MDST'),
-i(14400,5340,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(18000,7200,'MSD'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
- ]
-
-Moscow = Moscow()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Nicosia.py b/vendor/pytz/zoneinfo/Europe/Nicosia.py
deleted file mode 100644
index 0eb3bc8f..00000000
--- a/vendor/pytz/zoneinfo/Europe/Nicosia.py
+++ /dev/null
@@ -1,274 +0,0 @@
-'''tzinfo timezone information for Europe/Nicosia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nicosia(DstTzInfo):
- '''Europe/Nicosia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Nicosia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,11,13,21,46,32),
-d(1975,4,12,22,0,0),
-d(1975,10,11,21,0,0),
-d(1976,5,14,22,0,0),
-d(1976,10,10,21,0,0),
-d(1977,4,2,22,0,0),
-d(1977,9,24,21,0,0),
-d(1978,4,1,22,0,0),
-d(1978,10,1,21,0,0),
-d(1979,3,31,22,0,0),
-d(1979,9,29,21,0,0),
-d(1980,4,5,22,0,0),
-d(1980,9,27,21,0,0),
-d(1981,3,28,22,0,0),
-d(1981,9,26,21,0,0),
-d(1982,3,27,22,0,0),
-d(1982,9,25,21,0,0),
-d(1983,3,26,22,0,0),
-d(1983,9,24,21,0,0),
-d(1984,3,24,22,0,0),
-d(1984,9,29,21,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,21,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,21,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,21,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,21,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,9,29,21,0,0),
-d(1991,3,30,22,0,0),
-d(1991,9,28,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,9,28,21,0,0),
-d(1997,3,29,22,0,0),
-d(1997,9,27,21,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7980,0,'LMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Nicosia = Nicosia()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Oslo.py b/vendor/pytz/zoneinfo/Europe/Oslo.py
deleted file mode 100644
index f2e47949..00000000
--- a/vendor/pytz/zoneinfo/Europe/Oslo.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Europe/Oslo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Oslo(DstTzInfo):
- '''Europe/Oslo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Oslo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,22,0,0,0),
-d(1916,9,29,22,0,0),
-d(1940,8,10,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,10,1,1,0,0),
-d(1959,3,15,1,0,0),
-d(1959,9,20,1,0,0),
-d(1960,3,20,1,0,0),
-d(1960,9,18,1,0,0),
-d(1961,3,19,1,0,0),
-d(1961,9,17,1,0,0),
-d(1962,3,18,1,0,0),
-d(1962,9,16,1,0,0),
-d(1963,3,17,1,0,0),
-d(1963,9,15,1,0,0),
-d(1964,3,15,1,0,0),
-d(1964,9,20,1,0,0),
-d(1965,4,25,1,0,0),
-d(1965,9,19,1,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Oslo = Oslo()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Paris.py b/vendor/pytz/zoneinfo/Europe/Paris.py
deleted file mode 100644
index 59892b45..00000000
--- a/vendor/pytz/zoneinfo/Europe/Paris.py
+++ /dev/null
@@ -1,386 +0,0 @@
-'''tzinfo timezone information for Europe/Paris.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Paris(DstTzInfo):
- '''Europe/Paris timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Paris'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,3,10,23,51,39),
-d(1916,6,14,23,0,0),
-d(1916,10,1,23,0,0),
-d(1917,3,24,23,0,0),
-d(1917,10,7,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,6,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,5,23,0,0),
-d(1920,2,14,23,0,0),
-d(1920,10,23,23,0,0),
-d(1921,3,14,23,0,0),
-d(1921,10,25,23,0,0),
-d(1922,3,25,23,0,0),
-d(1922,10,7,23,0,0),
-d(1923,5,26,23,0,0),
-d(1923,10,6,23,0,0),
-d(1924,3,29,23,0,0),
-d(1924,10,4,23,0,0),
-d(1925,4,4,23,0,0),
-d(1925,10,3,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,5,23,0,0),
-d(1930,4,12,23,0,0),
-d(1930,10,4,23,0,0),
-d(1931,4,18,23,0,0),
-d(1931,10,3,23,0,0),
-d(1932,4,2,23,0,0),
-d(1932,10,1,23,0,0),
-d(1933,3,25,23,0,0),
-d(1933,10,7,23,0,0),
-d(1934,4,7,23,0,0),
-d(1934,10,6,23,0,0),
-d(1935,3,30,23,0,0),
-d(1935,10,5,23,0,0),
-d(1936,4,18,23,0,0),
-d(1936,10,3,23,0,0),
-d(1937,4,3,23,0,0),
-d(1937,10,2,23,0,0),
-d(1938,3,26,23,0,0),
-d(1938,10,1,23,0,0),
-d(1939,4,15,23,0,0),
-d(1939,11,18,23,0,0),
-d(1940,2,25,2,0,0),
-d(1940,6,14,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,8,24,22,0,0),
-d(1944,10,7,23,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,16,1,0,0),
-d(1976,3,28,0,0,0),
-d(1976,9,25,23,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(540,0,'PMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'WEMT'),
-i(3600,0,'WEST'),
-i(7200,3600,'WEMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Paris = Paris()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Podgorica.py b/vendor/pytz/zoneinfo/Europe/Podgorica.py
deleted file mode 100644
index 9be71d93..00000000
--- a/vendor/pytz/zoneinfo/Europe/Podgorica.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Podgorica.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Podgorica(DstTzInfo):
- '''Europe/Podgorica timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Podgorica'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Podgorica = Podgorica()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Prague.py b/vendor/pytz/zoneinfo/Europe/Prague.py
deleted file mode 100644
index 9c7f982b..00000000
--- a/vendor/pytz/zoneinfo/Europe/Prague.py
+++ /dev/null
@@ -1,302 +0,0 @@
-'''tzinfo timezone information for Europe/Prague.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Prague(DstTzInfo):
- '''Europe/Prague timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Prague'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,8,1,0,0),
-d(1945,11,18,1,0,0),
-d(1946,5,6,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,4,20,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,9,1,0,0),
-d(1949,10,2,1,0,0),
-d(1978,12,31,23,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Prague = Prague()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Riga.py b/vendor/pytz/zoneinfo/Europe/Riga.py
deleted file mode 100644
index 45b59725..00000000
--- a/vendor/pytz/zoneinfo/Europe/Riga.py
+++ /dev/null
@@ -1,274 +0,0 @@
-'''tzinfo timezone information for Europe/Riga.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Riga(DstTzInfo):
- '''Europe/Riga timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Riga'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,4,15,0,23,36),
-d(1918,9,16,0,23,36),
-d(1919,4,1,0,23,36),
-d(1919,5,22,0,23,36),
-d(1926,5,10,22,23,36),
-d(1940,8,4,22,0,0),
-d(1941,6,30,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1944,10,12,23,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1991,3,31,0,0,0),
-d(1991,9,29,0,0,0),
-d(1992,3,29,0,0,0),
-d(1992,9,27,0,0,0),
-d(1993,3,28,0,0,0),
-d(1993,9,26,0,0,0),
-d(1994,3,27,0,0,0),
-d(1994,9,25,0,0,0),
-d(1995,3,26,0,0,0),
-d(1995,9,24,0,0,0),
-d(1996,3,31,0,0,0),
-d(1996,9,29,0,0,0),
-d(1997,1,20,22,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,2,28,22,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5760,0,'RMT'),
-i(9360,3600,'LST'),
-i(5760,0,'RMT'),
-i(9360,3600,'LST'),
-i(5760,0,'RMT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Riga = Riga()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Rome.py b/vendor/pytz/zoneinfo/Europe/Rome.py
deleted file mode 100644
index 758a6ed8..00000000
--- a/vendor/pytz/zoneinfo/Europe/Rome.py
+++ /dev/null
@@ -1,360 +0,0 @@
-'''tzinfo timezone information for Europe/Rome.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rome(DstTzInfo):
- '''Europe/Rome timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Rome'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,6,2,23,0,0),
-d(1916,9,30,23,0,0),
-d(1917,3,31,23,0,0),
-d(1917,9,29,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,5,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,4,23,0,0),
-d(1920,3,20,23,0,0),
-d(1920,9,18,23,0,0),
-d(1940,6,14,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,6,30,22,0,0),
-d(1944,9,16,23,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,14,23,0,0),
-d(1946,3,17,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,15,23,0,0),
-d(1947,10,4,23,0,0),
-d(1948,2,29,1,0,0),
-d(1948,10,3,1,0,0),
-d(1966,5,21,23,0,0),
-d(1966,9,24,22,0,0),
-d(1967,5,27,23,0,0),
-d(1967,9,23,22,0,0),
-d(1968,5,25,23,0,0),
-d(1968,9,21,22,0,0),
-d(1969,5,31,23,0,0),
-d(1969,9,27,22,0,0),
-d(1970,5,30,23,0,0),
-d(1970,9,26,22,0,0),
-d(1971,5,22,23,0,0),
-d(1971,9,25,23,0,0),
-d(1972,5,27,23,0,0),
-d(1972,9,30,22,0,0),
-d(1973,6,2,23,0,0),
-d(1973,9,29,22,0,0),
-d(1974,5,25,23,0,0),
-d(1974,9,28,22,0,0),
-d(1975,5,31,23,0,0),
-d(1975,9,27,23,0,0),
-d(1976,5,29,23,0,0),
-d(1976,9,25,23,0,0),
-d(1977,5,21,23,0,0),
-d(1977,9,24,23,0,0),
-d(1978,5,27,23,0,0),
-d(1978,9,30,23,0,0),
-d(1979,5,26,23,0,0),
-d(1979,9,29,23,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Rome = Rome()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Samara.py b/vendor/pytz/zoneinfo/Europe/Samara.py
deleted file mode 100644
index cb67e77a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Samara.py
+++ /dev/null
@@ -1,256 +0,0 @@
-'''tzinfo timezone information for Europe/Samara.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Samara(DstTzInfo):
- '''Europe/Samara timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Samara'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,6,30,22,39,24),
-d(1930,6,20,21,0,0),
-d(1935,1,26,20,0,0),
-d(1981,3,31,20,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,20,0,0),
-d(1982,9,30,19,0,0),
-d(1983,3,31,20,0,0),
-d(1983,9,30,19,0,0),
-d(1984,3,31,20,0,0),
-d(1984,9,29,22,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1991,10,20,0,0,0),
-d(1992,3,28,19,0,0),
-d(1992,9,26,18,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,22,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,22,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,22,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,22,0,0),
-d(1997,3,29,22,0,0),
-d(1997,10,25,22,0,0),
-d(1998,3,28,22,0,0),
-d(1998,10,24,22,0,0),
-d(1999,3,27,22,0,0),
-d(1999,10,30,22,0,0),
-d(2000,3,25,22,0,0),
-d(2000,10,28,22,0,0),
-d(2001,3,24,22,0,0),
-d(2001,10,27,22,0,0),
-d(2002,3,30,22,0,0),
-d(2002,10,26,22,0,0),
-d(2003,3,29,22,0,0),
-d(2003,10,25,22,0,0),
-d(2004,3,27,22,0,0),
-d(2004,10,30,22,0,0),
-d(2005,3,26,22,0,0),
-d(2005,10,29,22,0,0),
-d(2006,3,25,22,0,0),
-d(2006,10,28,22,0,0),
-d(2007,3,24,22,0,0),
-d(2007,10,27,22,0,0),
-d(2008,3,29,22,0,0),
-d(2008,10,25,22,0,0),
-d(2009,3,28,22,0,0),
-d(2009,10,24,22,0,0),
-d(2010,3,27,22,0,0),
-d(2010,10,30,22,0,0),
-d(2011,3,26,22,0,0),
-d(2011,10,29,22,0,0),
-d(2012,3,24,22,0,0),
-d(2012,10,27,22,0,0),
-d(2013,3,30,22,0,0),
-d(2013,10,26,22,0,0),
-d(2014,3,29,22,0,0),
-d(2014,10,25,22,0,0),
-d(2015,3,28,22,0,0),
-d(2015,10,24,22,0,0),
-d(2016,3,26,22,0,0),
-d(2016,10,29,22,0,0),
-d(2017,3,25,22,0,0),
-d(2017,10,28,22,0,0),
-d(2018,3,24,22,0,0),
-d(2018,10,27,22,0,0),
-d(2019,3,30,22,0,0),
-d(2019,10,26,22,0,0),
-d(2020,3,28,22,0,0),
-d(2020,10,24,22,0,0),
-d(2021,3,27,22,0,0),
-d(2021,10,30,22,0,0),
-d(2022,3,26,22,0,0),
-d(2022,10,29,22,0,0),
-d(2023,3,25,22,0,0),
-d(2023,10,28,22,0,0),
-d(2024,3,30,22,0,0),
-d(2024,10,26,22,0,0),
-d(2025,3,29,22,0,0),
-d(2025,10,25,22,0,0),
-d(2026,3,28,22,0,0),
-d(2026,10,24,22,0,0),
-d(2027,3,27,22,0,0),
-d(2027,10,30,22,0,0),
-d(2028,3,25,22,0,0),
-d(2028,10,28,22,0,0),
-d(2029,3,24,22,0,0),
-d(2029,10,27,22,0,0),
-d(2030,3,30,22,0,0),
-d(2030,10,26,22,0,0),
-d(2031,3,29,22,0,0),
-d(2031,10,25,22,0,0),
-d(2032,3,27,22,0,0),
-d(2032,10,30,22,0,0),
-d(2033,3,26,22,0,0),
-d(2033,10,29,22,0,0),
-d(2034,3,25,22,0,0),
-d(2034,10,28,22,0,0),
-d(2035,3,24,22,0,0),
-d(2035,10,27,22,0,0),
-d(2036,3,29,22,0,0),
-d(2036,10,25,22,0,0),
-d(2037,3,28,22,0,0),
-d(2037,10,24,22,0,0),
- ]
-
- _transition_info = [
-i(12060,0,'LMT'),
-i(10800,0,'SAMT'),
-i(14400,0,'SAMT'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(18000,3600,'KUYST'),
-i(14400,0,'KUYT'),
-i(14400,0,'KUYST'),
-i(10800,0,'KUYT'),
-i(14400,3600,'KUYST'),
-i(10800,0,'KUYT'),
-i(10800,0,'KUYST'),
-i(10800,0,'KUYT'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
-i(18000,3600,'SAMST'),
-i(14400,0,'SAMT'),
- ]
-
-Samara = Samara()
-
diff --git a/vendor/pytz/zoneinfo/Europe/San_Marino.py b/vendor/pytz/zoneinfo/Europe/San_Marino.py
deleted file mode 100644
index dae62535..00000000
--- a/vendor/pytz/zoneinfo/Europe/San_Marino.py
+++ /dev/null
@@ -1,360 +0,0 @@
-'''tzinfo timezone information for Europe/San_Marino.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class San_Marino(DstTzInfo):
- '''Europe/San_Marino timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/San_Marino'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,6,2,23,0,0),
-d(1916,9,30,23,0,0),
-d(1917,3,31,23,0,0),
-d(1917,9,29,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,5,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,4,23,0,0),
-d(1920,3,20,23,0,0),
-d(1920,9,18,23,0,0),
-d(1940,6,14,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,6,30,22,0,0),
-d(1944,9,16,23,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,14,23,0,0),
-d(1946,3,17,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,15,23,0,0),
-d(1947,10,4,23,0,0),
-d(1948,2,29,1,0,0),
-d(1948,10,3,1,0,0),
-d(1966,5,21,23,0,0),
-d(1966,9,24,22,0,0),
-d(1967,5,27,23,0,0),
-d(1967,9,23,22,0,0),
-d(1968,5,25,23,0,0),
-d(1968,9,21,22,0,0),
-d(1969,5,31,23,0,0),
-d(1969,9,27,22,0,0),
-d(1970,5,30,23,0,0),
-d(1970,9,26,22,0,0),
-d(1971,5,22,23,0,0),
-d(1971,9,25,23,0,0),
-d(1972,5,27,23,0,0),
-d(1972,9,30,22,0,0),
-d(1973,6,2,23,0,0),
-d(1973,9,29,22,0,0),
-d(1974,5,25,23,0,0),
-d(1974,9,28,22,0,0),
-d(1975,5,31,23,0,0),
-d(1975,9,27,23,0,0),
-d(1976,5,29,23,0,0),
-d(1976,9,25,23,0,0),
-d(1977,5,21,23,0,0),
-d(1977,9,24,23,0,0),
-d(1978,5,27,23,0,0),
-d(1978,9,30,23,0,0),
-d(1979,5,26,23,0,0),
-d(1979,9,29,23,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-San_Marino = San_Marino()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Sarajevo.py b/vendor/pytz/zoneinfo/Europe/Sarajevo.py
deleted file mode 100644
index 2b7d7540..00000000
--- a/vendor/pytz/zoneinfo/Europe/Sarajevo.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Sarajevo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sarajevo(DstTzInfo):
- '''Europe/Sarajevo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Sarajevo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Sarajevo = Sarajevo()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Simferopol.py b/vendor/pytz/zoneinfo/Europe/Simferopol.py
deleted file mode 100644
index 63b47f9a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Simferopol.py
+++ /dev/null
@@ -1,266 +0,0 @@
-'''tzinfo timezone information for Europe/Simferopol.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Simferopol(DstTzInfo):
- '''Europe/Simferopol timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Simferopol'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,21,44,0),
-d(1930,6,20,22,0,0),
-d(1941,10,31,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,4,12,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1990,6,30,23,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,4,30,21,0,0),
-d(1994,9,24,20,0,0),
-d(1995,3,25,21,0,0),
-d(1995,9,23,20,0,0),
-d(1996,3,30,21,0,0),
-d(1996,3,31,0,0,0),
-d(1996,10,27,0,0,0),
-d(1996,12,31,21,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(8160,0,'SMT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(14400,7200,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Simferopol = Simferopol()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Skopje.py b/vendor/pytz/zoneinfo/Europe/Skopje.py
deleted file mode 100644
index c37e0328..00000000
--- a/vendor/pytz/zoneinfo/Europe/Skopje.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Skopje.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Skopje(DstTzInfo):
- '''Europe/Skopje timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Skopje'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Skopje = Skopje()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Sofia.py b/vendor/pytz/zoneinfo/Europe/Sofia.py
deleted file mode 100644
index 528daf7d..00000000
--- a/vendor/pytz/zoneinfo/Europe/Sofia.py
+++ /dev/null
@@ -1,270 +0,0 @@
-'''tzinfo timezone information for Europe/Sofia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Sofia(DstTzInfo):
- '''Europe/Sofia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Sofia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,2,0,0),
-d(1979,3,31,21,0,0),
-d(1979,9,30,22,0,0),
-d(1980,4,5,21,0,0),
-d(1980,9,28,22,0,0),
-d(1981,4,4,21,0,0),
-d(1981,9,26,23,0,0),
-d(1982,4,3,21,0,0),
-d(1982,9,26,0,0,0),
-d(1983,3,27,0,0,0),
-d(1983,9,25,0,0,0),
-d(1984,3,25,0,0,0),
-d(1984,9,30,0,0,0),
-d(1985,3,31,0,0,0),
-d(1985,9,29,0,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1988,3,27,0,0,0),
-d(1988,9,25,0,0,0),
-d(1989,3,26,0,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1990,12,31,22,0,0),
-d(1991,3,30,22,0,0),
-d(1991,9,28,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Sofia = Sofia()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Stockholm.py b/vendor/pytz/zoneinfo/Europe/Stockholm.py
deleted file mode 100644
index f9abbe6a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Stockholm.py
+++ /dev/null
@@ -1,256 +0,0 @@
-'''tzinfo timezone information for Europe/Stockholm.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Stockholm(DstTzInfo):
- '''Europe/Stockholm timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Stockholm'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,14,22,0,0),
-d(1916,9,30,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Stockholm = Stockholm()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Tallinn.py b/vendor/pytz/zoneinfo/Europe/Tallinn.py
deleted file mode 100644
index 95e569ac..00000000
--- a/vendor/pytz/zoneinfo/Europe/Tallinn.py
+++ /dev/null
@@ -1,268 +0,0 @@
-'''tzinfo timezone information for Europe/Tallinn.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tallinn(DstTzInfo):
- '''Europe/Tallinn timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Tallinn'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,1,31,22,21,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1919,6,30,23,0,0),
-d(1921,4,30,22,21,0),
-d(1940,8,5,22,0,0),
-d(1941,9,14,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,21,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1991,3,31,0,0,0),
-d(1991,9,29,0,0,0),
-d(1992,3,29,0,0,0),
-d(1992,9,27,0,0,0),
-d(1993,3,28,0,0,0),
-d(1993,9,26,0,0,0),
-d(1994,3,27,0,0,0),
-d(1994,9,25,0,0,0),
-d(1995,3,26,0,0,0),
-d(1995,9,24,0,0,0),
-d(1996,3,31,0,0,0),
-d(1996,10,27,0,0,0),
-d(1997,3,30,0,0,0),
-d(1997,10,26,0,0,0),
-d(1998,3,29,0,0,0),
-d(1998,9,21,21,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(1999,10,31,22,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5940,0,'TMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(5940,0,'TMT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Tallinn = Tallinn()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Tirane.py b/vendor/pytz/zoneinfo/Europe/Tirane.py
deleted file mode 100644
index 4dba9c25..00000000
--- a/vendor/pytz/zoneinfo/Europe/Tirane.py
+++ /dev/null
@@ -1,286 +0,0 @@
-'''tzinfo timezone information for Europe/Tirane.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tirane(DstTzInfo):
- '''Europe/Tirane timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Tirane'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1913,12,31,22,40,40),
-d(1940,6,15,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,4,10,1,0,0),
-d(1974,5,3,23,0,0),
-d(1974,10,1,22,0,0),
-d(1975,4,30,23,0,0),
-d(1975,10,1,22,0,0),
-d(1976,5,1,23,0,0),
-d(1976,10,2,22,0,0),
-d(1977,5,7,23,0,0),
-d(1977,10,1,22,0,0),
-d(1978,5,5,23,0,0),
-d(1978,9,30,22,0,0),
-d(1979,5,4,23,0,0),
-d(1979,9,29,22,0,0),
-d(1980,5,2,23,0,0),
-d(1980,10,3,22,0,0),
-d(1981,4,25,23,0,0),
-d(1981,9,26,22,0,0),
-d(1982,5,1,23,0,0),
-d(1982,10,2,22,0,0),
-d(1983,4,17,23,0,0),
-d(1983,9,30,22,0,0),
-d(1984,3,31,23,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(4740,0,'LMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Tirane = Tirane()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Tiraspol.py b/vendor/pytz/zoneinfo/Europe/Tiraspol.py
deleted file mode 100644
index 7663b8c2..00000000
--- a/vendor/pytz/zoneinfo/Europe/Tiraspol.py
+++ /dev/null
@@ -1,300 +0,0 @@
-'''tzinfo timezone information for Europe/Tiraspol.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tiraspol(DstTzInfo):
- '''Europe/Tiraspol timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Tiraspol'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,2,14,22,5,0),
-d(1931,7,23,22,15,36),
-d(1932,5,20,22,0,0),
-d(1932,10,1,22,0,0),
-d(1933,4,1,22,0,0),
-d(1933,9,30,22,0,0),
-d(1934,4,7,22,0,0),
-d(1934,10,6,22,0,0),
-d(1935,4,6,22,0,0),
-d(1935,10,5,22,0,0),
-d(1936,4,4,22,0,0),
-d(1936,10,3,22,0,0),
-d(1937,4,3,22,0,0),
-d(1937,10,2,22,0,0),
-d(1938,4,2,22,0,0),
-d(1938,10,1,22,0,0),
-d(1939,4,1,22,0,0),
-d(1939,9,30,22,0,0),
-d(1940,8,14,22,0,0),
-d(1941,7,16,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,8,23,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1990,5,5,21,0,0),
-d(1991,3,31,0,0,0),
-d(1991,9,29,0,0,0),
-d(1991,12,31,22,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,25,22,0,0),
-d(1995,9,23,21,0,0),
-d(1996,3,30,22,0,0),
-d(1996,10,26,21,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(6900,0,'CMT'),
-i(6240,0,'BMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Tiraspol = Tiraspol()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Uzhgorod.py b/vendor/pytz/zoneinfo/Europe/Uzhgorod.py
deleted file mode 100644
index 9da017f6..00000000
--- a/vendor/pytz/zoneinfo/Europe/Uzhgorod.py
+++ /dev/null
@@ -1,262 +0,0 @@
-'''tzinfo timezone information for Europe/Uzhgorod.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Uzhgorod(DstTzInfo):
- '''Europe/Uzhgorod timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Uzhgorod'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,30,22,0,0),
-d(1944,10,25,22,0,0),
-d(1945,6,28,23,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1989,12,31,21,0,0),
-d(1990,6,30,23,0,0),
-d(1991,3,31,2,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'MSK'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Uzhgorod = Uzhgorod()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Vaduz.py b/vendor/pytz/zoneinfo/Europe/Vaduz.py
deleted file mode 100644
index c4af9b35..00000000
--- a/vendor/pytz/zoneinfo/Europe/Vaduz.py
+++ /dev/null
@@ -1,248 +0,0 @@
-'''tzinfo timezone information for Europe/Vaduz.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vaduz(DstTzInfo):
- '''Europe/Vaduz timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Vaduz'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Vaduz = Vaduz()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Vatican.py b/vendor/pytz/zoneinfo/Europe/Vatican.py
deleted file mode 100644
index 1806de2a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Vatican.py
+++ /dev/null
@@ -1,360 +0,0 @@
-'''tzinfo timezone information for Europe/Vatican.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vatican(DstTzInfo):
- '''Europe/Vatican timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Vatican'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,6,2,23,0,0),
-d(1916,9,30,23,0,0),
-d(1917,3,31,23,0,0),
-d(1917,9,29,23,0,0),
-d(1918,3,9,23,0,0),
-d(1918,10,5,23,0,0),
-d(1919,3,1,23,0,0),
-d(1919,10,4,23,0,0),
-d(1920,3,20,23,0,0),
-d(1920,9,18,23,0,0),
-d(1940,6,14,23,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,6,30,22,0,0),
-d(1944,9,16,23,0,0),
-d(1945,4,2,1,0,0),
-d(1945,9,14,23,0,0),
-d(1946,3,17,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,3,15,23,0,0),
-d(1947,10,4,23,0,0),
-d(1948,2,29,1,0,0),
-d(1948,10,3,1,0,0),
-d(1966,5,21,23,0,0),
-d(1966,9,24,22,0,0),
-d(1967,5,27,23,0,0),
-d(1967,9,23,22,0,0),
-d(1968,5,25,23,0,0),
-d(1968,9,21,22,0,0),
-d(1969,5,31,23,0,0),
-d(1969,9,27,22,0,0),
-d(1970,5,30,23,0,0),
-d(1970,9,26,22,0,0),
-d(1971,5,22,23,0,0),
-d(1971,9,25,23,0,0),
-d(1972,5,27,23,0,0),
-d(1972,9,30,22,0,0),
-d(1973,6,2,23,0,0),
-d(1973,9,29,22,0,0),
-d(1974,5,25,23,0,0),
-d(1974,9,28,22,0,0),
-d(1975,5,31,23,0,0),
-d(1975,9,27,23,0,0),
-d(1976,5,29,23,0,0),
-d(1976,9,25,23,0,0),
-d(1977,5,21,23,0,0),
-d(1977,9,24,23,0,0),
-d(1978,5,27,23,0,0),
-d(1978,9,30,23,0,0),
-d(1979,5,26,23,0,0),
-d(1979,9,29,23,0,0),
-d(1979,12,31,23,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Vatican = Vatican()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Vienna.py b/vendor/pytz/zoneinfo/Europe/Vienna.py
deleted file mode 100644
index 5933d9d9..00000000
--- a/vendor/pytz/zoneinfo/Europe/Vienna.py
+++ /dev/null
@@ -1,300 +0,0 @@
-'''tzinfo timezone information for Europe/Vienna.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vienna(DstTzInfo):
- '''Europe/Vienna timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Vienna'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1919,12,31,23,0,0),
-d(1920,4,5,1,0,0),
-d(1920,9,13,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,4,12,1,0,0),
-d(1945,12,31,23,0,0),
-d(1946,4,14,1,0,0),
-d(1946,10,6,1,0,0),
-d(1947,4,6,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1980,4,5,23,0,0),
-d(1980,9,27,22,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Vienna = Vienna()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Vilnius.py b/vendor/pytz/zoneinfo/Europe/Vilnius.py
deleted file mode 100644
index 51e3f435..00000000
--- a/vendor/pytz/zoneinfo/Europe/Vilnius.py
+++ /dev/null
@@ -1,262 +0,0 @@
-'''tzinfo timezone information for Europe/Vilnius.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Vilnius(DstTzInfo):
- '''Europe/Vilnius timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Vilnius'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,12,31,22,36,0),
-d(1919,10,9,22,24,24),
-d(1920,7,11,23,0,0),
-d(1920,10,8,22,0,0),
-d(1940,8,2,23,0,0),
-d(1941,6,23,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,7,31,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1992,3,29,0,0,0),
-d(1992,9,27,0,0,0),
-d(1993,3,28,0,0,0),
-d(1993,9,26,0,0,0),
-d(1994,3,27,0,0,0),
-d(1994,9,25,0,0,0),
-d(1995,3,26,0,0,0),
-d(1995,9,24,0,0,0),
-d(1996,3,31,0,0,0),
-d(1996,10,27,0,0,0),
-d(1997,3,30,0,0,0),
-d(1997,10,26,0,0,0),
-d(1997,12,31,22,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2002,12,31,22,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5040,0,'WMT'),
-i(5760,0,'KMT'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(7200,0,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Vilnius = Vilnius()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Volgograd.py b/vendor/pytz/zoneinfo/Europe/Volgograd.py
deleted file mode 100644
index 8204bdcf..00000000
--- a/vendor/pytz/zoneinfo/Europe/Volgograd.py
+++ /dev/null
@@ -1,254 +0,0 @@
-'''tzinfo timezone information for Europe/Volgograd.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Volgograd(DstTzInfo):
- '''Europe/Volgograd timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Volgograd'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1920,1,2,21,2,20),
-d(1925,4,5,21,0,0),
-d(1930,6,20,21,0,0),
-d(1961,11,10,20,0,0),
-d(1981,3,31,20,0,0),
-d(1981,9,30,19,0,0),
-d(1982,3,31,20,0,0),
-d(1982,9,30,19,0,0),
-d(1983,3,31,20,0,0),
-d(1983,9,30,19,0,0),
-d(1984,3,31,20,0,0),
-d(1984,9,29,22,0,0),
-d(1985,3,30,22,0,0),
-d(1985,9,28,22,0,0),
-d(1986,3,29,22,0,0),
-d(1986,9,27,22,0,0),
-d(1987,3,28,22,0,0),
-d(1987,9,26,22,0,0),
-d(1988,3,26,22,0,0),
-d(1988,9,24,22,0,0),
-d(1989,3,25,22,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,19,0,0),
-d(1993,3,27,23,0,0),
-d(1993,9,25,23,0,0),
-d(1994,3,26,23,0,0),
-d(1994,9,24,23,0,0),
-d(1995,3,25,23,0,0),
-d(1995,9,23,23,0,0),
-d(1996,3,30,23,0,0),
-d(1996,10,26,23,0,0),
-d(1997,3,29,23,0,0),
-d(1997,10,25,23,0,0),
-d(1998,3,28,23,0,0),
-d(1998,10,24,23,0,0),
-d(1999,3,27,23,0,0),
-d(1999,10,30,23,0,0),
-d(2000,3,25,23,0,0),
-d(2000,10,28,23,0,0),
-d(2001,3,24,23,0,0),
-d(2001,10,27,23,0,0),
-d(2002,3,30,23,0,0),
-d(2002,10,26,23,0,0),
-d(2003,3,29,23,0,0),
-d(2003,10,25,23,0,0),
-d(2004,3,27,23,0,0),
-d(2004,10,30,23,0,0),
-d(2005,3,26,23,0,0),
-d(2005,10,29,23,0,0),
-d(2006,3,25,23,0,0),
-d(2006,10,28,23,0,0),
-d(2007,3,24,23,0,0),
-d(2007,10,27,23,0,0),
-d(2008,3,29,23,0,0),
-d(2008,10,25,23,0,0),
-d(2009,3,28,23,0,0),
-d(2009,10,24,23,0,0),
-d(2010,3,27,23,0,0),
-d(2010,10,30,23,0,0),
-d(2011,3,26,23,0,0),
-d(2011,10,29,23,0,0),
-d(2012,3,24,23,0,0),
-d(2012,10,27,23,0,0),
-d(2013,3,30,23,0,0),
-d(2013,10,26,23,0,0),
-d(2014,3,29,23,0,0),
-d(2014,10,25,23,0,0),
-d(2015,3,28,23,0,0),
-d(2015,10,24,23,0,0),
-d(2016,3,26,23,0,0),
-d(2016,10,29,23,0,0),
-d(2017,3,25,23,0,0),
-d(2017,10,28,23,0,0),
-d(2018,3,24,23,0,0),
-d(2018,10,27,23,0,0),
-d(2019,3,30,23,0,0),
-d(2019,10,26,23,0,0),
-d(2020,3,28,23,0,0),
-d(2020,10,24,23,0,0),
-d(2021,3,27,23,0,0),
-d(2021,10,30,23,0,0),
-d(2022,3,26,23,0,0),
-d(2022,10,29,23,0,0),
-d(2023,3,25,23,0,0),
-d(2023,10,28,23,0,0),
-d(2024,3,30,23,0,0),
-d(2024,10,26,23,0,0),
-d(2025,3,29,23,0,0),
-d(2025,10,25,23,0,0),
-d(2026,3,28,23,0,0),
-d(2026,10,24,23,0,0),
-d(2027,3,27,23,0,0),
-d(2027,10,30,23,0,0),
-d(2028,3,25,23,0,0),
-d(2028,10,28,23,0,0),
-d(2029,3,24,23,0,0),
-d(2029,10,27,23,0,0),
-d(2030,3,30,23,0,0),
-d(2030,10,26,23,0,0),
-d(2031,3,29,23,0,0),
-d(2031,10,25,23,0,0),
-d(2032,3,27,23,0,0),
-d(2032,10,30,23,0,0),
-d(2033,3,26,23,0,0),
-d(2033,10,29,23,0,0),
-d(2034,3,25,23,0,0),
-d(2034,10,28,23,0,0),
-d(2035,3,24,23,0,0),
-d(2035,10,27,23,0,0),
-d(2036,3,29,23,0,0),
-d(2036,10,25,23,0,0),
-d(2037,3,28,23,0,0),
-d(2037,10,24,23,0,0),
- ]
-
- _transition_info = [
-i(10680,0,'LMT'),
-i(10800,0,'TSAT'),
-i(10800,0,'STAT'),
-i(14400,0,'STAT'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(18000,3600,'VOLST'),
-i(14400,0,'VOLT'),
-i(14400,0,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,0,'VOLT'),
-i(14400,0,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
-i(14400,3600,'VOLST'),
-i(10800,0,'VOLT'),
- ]
-
-Volgograd = Volgograd()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Warsaw.py b/vendor/pytz/zoneinfo/Europe/Warsaw.py
deleted file mode 100644
index 93f05b39..00000000
--- a/vendor/pytz/zoneinfo/Europe/Warsaw.py
+++ /dev/null
@@ -1,354 +0,0 @@
-'''tzinfo timezone information for Europe/Warsaw.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Warsaw(DstTzInfo):
- '''Europe/Warsaw timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Warsaw'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,8,4,22,36,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1919,4,15,0,0,0),
-d(1919,9,16,0,0,0),
-d(1922,5,31,22,0,0),
-d(1940,6,23,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,30,22,0,0),
-d(1944,10,4,0,0,0),
-d(1945,4,28,23,0,0),
-d(1945,10,31,22,0,0),
-d(1946,4,13,23,0,0),
-d(1946,10,7,1,0,0),
-d(1947,5,4,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,10,1,0,0),
-d(1949,10,2,1,0,0),
-d(1957,6,2,0,0,0),
-d(1957,9,29,0,0,0),
-d(1958,3,30,0,0,0),
-d(1958,9,28,0,0,0),
-d(1959,5,31,0,0,0),
-d(1959,10,4,0,0,0),
-d(1960,4,3,0,0,0),
-d(1960,10,2,0,0,0),
-d(1961,5,28,0,0,0),
-d(1961,10,1,0,0,0),
-d(1962,5,27,0,0,0),
-d(1962,9,30,0,0,0),
-d(1963,5,26,0,0,0),
-d(1963,9,29,0,0,0),
-d(1964,5,31,0,0,0),
-d(1964,9,27,0,0,0),
-d(1976,12,31,23,0,0),
-d(1977,4,3,0,0,0),
-d(1977,9,25,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,1,0,0,0),
-d(1979,9,30,0,0,0),
-d(1980,4,6,0,0,0),
-d(1980,9,28,0,0,0),
-d(1981,3,29,0,0,0),
-d(1981,9,27,0,0,0),
-d(1982,3,28,0,0,0),
-d(1982,9,26,0,0,0),
-d(1983,3,27,0,0,0),
-d(1983,9,25,0,0,0),
-d(1984,3,25,0,0,0),
-d(1984,9,30,0,0,0),
-d(1985,3,31,0,0,0),
-d(1985,9,29,0,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1987,12,31,23,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5040,0,'WMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Warsaw = Warsaw()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Zagreb.py b/vendor/pytz/zoneinfo/Europe/Zagreb.py
deleted file mode 100644
index 18d5f3a5..00000000
--- a/vendor/pytz/zoneinfo/Europe/Zagreb.py
+++ /dev/null
@@ -1,258 +0,0 @@
-'''tzinfo timezone information for Europe/Zagreb.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Zagreb(DstTzInfo):
- '''Europe/Zagreb timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Zagreb'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1941,4,18,22,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1945,5,8,1,0,0),
-d(1945,9,16,1,0,0),
-d(1982,11,26,23,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Zagreb = Zagreb()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Zaporozhye.py b/vendor/pytz/zoneinfo/Europe/Zaporozhye.py
deleted file mode 100644
index 51d09179..00000000
--- a/vendor/pytz/zoneinfo/Europe/Zaporozhye.py
+++ /dev/null
@@ -1,262 +0,0 @@
-'''tzinfo timezone information for Europe/Zaporozhye.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Zaporozhye(DstTzInfo):
- '''Europe/Zaporozhye timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Zaporozhye'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1924,5,1,21,40,0),
-d(1930,6,20,22,0,0),
-d(1941,8,24,21,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1943,10,24,23,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,28,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,26,21,0,0),
-d(1993,3,27,22,0,0),
-d(1993,9,25,21,0,0),
-d(1994,3,26,22,0,0),
-d(1994,9,24,21,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(8400,0,'CUT'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(7200,-3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Zaporozhye = Zaporozhye()
-
diff --git a/vendor/pytz/zoneinfo/Europe/Zurich.py b/vendor/pytz/zoneinfo/Europe/Zurich.py
deleted file mode 100644
index 62ee715a..00000000
--- a/vendor/pytz/zoneinfo/Europe/Zurich.py
+++ /dev/null
@@ -1,260 +0,0 @@
-'''tzinfo timezone information for Europe/Zurich.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Zurich(DstTzInfo):
- '''Europe/Zurich timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Europe/Zurich'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,11,1,23,0,0),
-d(1940,12,30,22,0,0),
-d(1941,5,4,1,0,0),
-d(1941,10,4,22,0,0),
-d(1942,5,3,1,0,0),
-d(1942,10,3,22,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Zurich = Zurich()
-
diff --git a/vendor/pytz/zoneinfo/Europe/__init__.py b/vendor/pytz/zoneinfo/Europe/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/GB.py b/vendor/pytz/zoneinfo/GB.py
deleted file mode 100644
index 559ae59d..00000000
--- a/vendor/pytz/zoneinfo/GB.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for GB.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class GB(DstTzInfo):
- '''GB timezone definition. See datetime.tzinfo for details'''
-
- zone = 'GB'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-GB = GB()
-
diff --git a/vendor/pytz/zoneinfo/GB_minus_Eire.py b/vendor/pytz/zoneinfo/GB_minus_Eire.py
deleted file mode 100644
index 629bd90f..00000000
--- a/vendor/pytz/zoneinfo/GB_minus_Eire.py
+++ /dev/null
@@ -1,504 +0,0 @@
-'''tzinfo timezone information for GB_minus_Eire.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class GB_minus_Eire(DstTzInfo):
- '''GB_minus_Eire timezone definition. See datetime.tzinfo for details'''
-
- zone = 'GB_minus_Eire'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,5,21,2,0,0),
-d(1916,10,1,2,0,0),
-d(1917,4,8,2,0,0),
-d(1917,9,17,2,0,0),
-d(1918,3,24,2,0,0),
-d(1918,9,30,2,0,0),
-d(1919,3,30,2,0,0),
-d(1919,9,29,2,0,0),
-d(1920,3,28,2,0,0),
-d(1920,10,25,2,0,0),
-d(1921,4,3,2,0,0),
-d(1921,10,3,2,0,0),
-d(1922,3,26,2,0,0),
-d(1922,10,8,2,0,0),
-d(1923,4,22,2,0,0),
-d(1923,9,16,2,0,0),
-d(1924,4,13,2,0,0),
-d(1924,9,21,2,0,0),
-d(1925,4,19,2,0,0),
-d(1925,10,4,2,0,0),
-d(1926,4,18,2,0,0),
-d(1926,10,3,2,0,0),
-d(1927,4,10,2,0,0),
-d(1927,10,2,2,0,0),
-d(1928,4,22,2,0,0),
-d(1928,10,7,2,0,0),
-d(1929,4,21,2,0,0),
-d(1929,10,6,2,0,0),
-d(1930,4,13,2,0,0),
-d(1930,10,5,2,0,0),
-d(1931,4,19,2,0,0),
-d(1931,10,4,2,0,0),
-d(1932,4,17,2,0,0),
-d(1932,10,2,2,0,0),
-d(1933,4,9,2,0,0),
-d(1933,10,8,2,0,0),
-d(1934,4,22,2,0,0),
-d(1934,10,7,2,0,0),
-d(1935,4,14,2,0,0),
-d(1935,10,6,2,0,0),
-d(1936,4,19,2,0,0),
-d(1936,10,4,2,0,0),
-d(1937,4,18,2,0,0),
-d(1937,10,3,2,0,0),
-d(1938,4,10,2,0,0),
-d(1938,10,2,2,0,0),
-d(1939,4,16,2,0,0),
-d(1939,11,19,2,0,0),
-d(1940,2,25,2,0,0),
-d(1941,5,4,1,0,0),
-d(1941,8,10,1,0,0),
-d(1942,4,5,1,0,0),
-d(1942,8,9,1,0,0),
-d(1943,4,4,1,0,0),
-d(1943,8,15,1,0,0),
-d(1944,4,2,1,0,0),
-d(1944,9,17,1,0,0),
-d(1945,4,2,1,0,0),
-d(1945,7,15,1,0,0),
-d(1945,10,7,2,0,0),
-d(1946,4,14,2,0,0),
-d(1946,10,6,2,0,0),
-d(1947,3,16,2,0,0),
-d(1947,4,13,1,0,0),
-d(1947,8,10,1,0,0),
-d(1947,11,2,2,0,0),
-d(1948,3,14,2,0,0),
-d(1948,10,31,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,16,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,15,2,0,0),
-d(1951,10,21,2,0,0),
-d(1952,4,20,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,19,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,11,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,17,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,22,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,14,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,20,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,19,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,10,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,3,26,2,0,0),
-d(1961,10,29,2,0,0),
-d(1962,3,25,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,3,31,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,3,22,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,3,21,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,3,20,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,3,19,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,2,18,2,0,0),
-d(1968,10,26,23,0,0),
-d(1971,10,31,2,0,0),
-d(1972,3,19,2,0,0),
-d(1972,10,29,2,0,0),
-d(1973,3,18,2,0,0),
-d(1973,10,28,2,0,0),
-d(1974,3,17,2,0,0),
-d(1974,10,27,2,0,0),
-d(1975,3,16,2,0,0),
-d(1975,10,26,2,0,0),
-d(1976,3,21,2,0,0),
-d(1976,10,24,2,0,0),
-d(1977,3,20,2,0,0),
-d(1977,10,23,2,0,0),
-d(1978,3,19,2,0,0),
-d(1978,10,29,2,0,0),
-d(1979,3,18,2,0,0),
-d(1979,10,28,2,0,0),
-d(1980,3,16,2,0,0),
-d(1980,10,26,2,0,0),
-d(1981,3,29,1,0,0),
-d(1981,10,25,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,10,24,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,10,23,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,10,28,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,10,27,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,10,26,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,10,25,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,10,23,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,10,29,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,10,28,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,10,27,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,10,25,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,10,24,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,10,23,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,10,22,1,0,0),
-d(1996,1,1,0,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(7200,7200,'BDST'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(3600,0,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
-i(3600,3600,'BST'),
-i(0,0,'GMT'),
- ]
-
-GB_minus_Eire = GB_minus_Eire()
-
diff --git a/vendor/pytz/zoneinfo/GMT.py b/vendor/pytz/zoneinfo/GMT.py
deleted file mode 100644
index d9252ca0..00000000
--- a/vendor/pytz/zoneinfo/GMT.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for GMT.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT(StaticTzInfo):
- '''GMT timezone definition. See datetime.tzinfo for details'''
- zone = 'GMT'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT = GMT()
-
diff --git a/vendor/pytz/zoneinfo/GMT0.py b/vendor/pytz/zoneinfo/GMT0.py
deleted file mode 100644
index c67b1550..00000000
--- a/vendor/pytz/zoneinfo/GMT0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for GMT0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT0(StaticTzInfo):
- '''GMT0 timezone definition. See datetime.tzinfo for details'''
- zone = 'GMT0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT0 = GMT0()
-
diff --git a/vendor/pytz/zoneinfo/GMT_minus_0.py b/vendor/pytz/zoneinfo/GMT_minus_0.py
deleted file mode 100644
index 1504d569..00000000
--- a/vendor/pytz/zoneinfo/GMT_minus_0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for GMT_minus_0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_minus_0(StaticTzInfo):
- '''GMT_minus_0 timezone definition. See datetime.tzinfo for details'''
- zone = 'GMT_minus_0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT_minus_0 = GMT_minus_0()
-
diff --git a/vendor/pytz/zoneinfo/GMT_plus_0.py b/vendor/pytz/zoneinfo/GMT_plus_0.py
deleted file mode 100644
index 543f8566..00000000
--- a/vendor/pytz/zoneinfo/GMT_plus_0.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for GMT_plus_0.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class GMT_plus_0(StaticTzInfo):
- '''GMT_plus_0 timezone definition. See datetime.tzinfo for details'''
- zone = 'GMT_plus_0'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-GMT_plus_0 = GMT_plus_0()
-
diff --git a/vendor/pytz/zoneinfo/Greenwich.py b/vendor/pytz/zoneinfo/Greenwich.py
deleted file mode 100644
index 46174f74..00000000
--- a/vendor/pytz/zoneinfo/Greenwich.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Greenwich.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Greenwich(StaticTzInfo):
- '''Greenwich timezone definition. See datetime.tzinfo for details'''
- zone = 'Greenwich'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'GMT'
-
-Greenwich = Greenwich()
-
diff --git a/vendor/pytz/zoneinfo/HST.py b/vendor/pytz/zoneinfo/HST.py
deleted file mode 100644
index ee3d5d23..00000000
--- a/vendor/pytz/zoneinfo/HST.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for HST.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class HST(StaticTzInfo):
- '''HST timezone definition. See datetime.tzinfo for details'''
- zone = 'HST'
- _utcoffset = timedelta(seconds=-36000)
- _tzname = 'HST'
-
-HST = HST()
-
diff --git a/vendor/pytz/zoneinfo/Hongkong.py b/vendor/pytz/zoneinfo/Hongkong.py
deleted file mode 100644
index a9aa0c40..00000000
--- a/vendor/pytz/zoneinfo/Hongkong.py
+++ /dev/null
@@ -1,158 +0,0 @@
-'''tzinfo timezone information for Hongkong.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hongkong(DstTzInfo):
- '''Hongkong timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Hongkong'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,10,29,16,23,24),
-d(1946,4,19,19,30,0),
-d(1946,11,30,18,30,0),
-d(1947,4,12,19,30,0),
-d(1947,12,29,18,30,0),
-d(1948,5,1,19,30,0),
-d(1948,10,30,18,30,0),
-d(1949,4,2,19,30,0),
-d(1949,10,29,18,30,0),
-d(1950,4,1,19,30,0),
-d(1950,10,28,18,30,0),
-d(1951,3,31,19,30,0),
-d(1951,10,27,18,30,0),
-d(1952,4,5,19,30,0),
-d(1952,10,25,18,30,0),
-d(1953,4,4,19,30,0),
-d(1953,10,31,18,30,0),
-d(1954,3,20,19,30,0),
-d(1954,10,30,18,30,0),
-d(1955,3,19,19,30,0),
-d(1955,11,5,18,30,0),
-d(1956,3,17,19,30,0),
-d(1956,11,3,18,30,0),
-d(1957,3,23,19,30,0),
-d(1957,11,2,18,30,0),
-d(1958,3,22,19,30,0),
-d(1958,11,1,18,30,0),
-d(1959,3,21,19,30,0),
-d(1959,10,31,18,30,0),
-d(1960,3,19,19,30,0),
-d(1960,11,5,18,30,0),
-d(1961,3,18,19,30,0),
-d(1961,11,4,18,30,0),
-d(1962,3,17,19,30,0),
-d(1962,11,3,18,30,0),
-d(1963,3,23,19,30,0),
-d(1963,11,2,18,30,0),
-d(1964,3,21,19,30,0),
-d(1964,10,31,18,30,0),
-d(1965,4,17,19,30,0),
-d(1965,10,16,18,30,0),
-d(1966,4,16,19,30,0),
-d(1966,10,15,18,30,0),
-d(1967,4,15,19,30,0),
-d(1967,10,21,18,30,0),
-d(1968,4,20,19,30,0),
-d(1968,10,19,18,30,0),
-d(1969,4,19,19,30,0),
-d(1969,10,18,18,30,0),
-d(1970,4,18,19,30,0),
-d(1970,10,17,18,30,0),
-d(1971,4,17,19,30,0),
-d(1971,10,16,18,30,0),
-d(1972,4,15,19,30,0),
-d(1972,10,21,18,30,0),
-d(1973,4,21,19,30,0),
-d(1973,10,20,18,30,0),
-d(1974,4,20,19,30,0),
-d(1974,10,19,18,30,0),
-d(1975,4,19,19,30,0),
-d(1975,10,18,18,30,0),
-d(1976,4,17,19,30,0),
-d(1976,10,16,18,30,0),
-d(1977,4,16,19,30,0),
-d(1977,10,15,18,30,0),
-d(1979,5,12,19,30,0),
-d(1979,10,20,18,30,0),
-d(1980,5,10,19,30,0),
-d(1980,10,18,18,30,0),
- ]
-
- _transition_info = [
-i(27420,0,'LMT'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
-i(32400,3600,'HKST'),
-i(28800,0,'HKT'),
- ]
-
-Hongkong = Hongkong()
-
diff --git a/vendor/pytz/zoneinfo/Iceland.py b/vendor/pytz/zoneinfo/Iceland.py
deleted file mode 100644
index e62b5968..00000000
--- a/vendor/pytz/zoneinfo/Iceland.py
+++ /dev/null
@@ -1,148 +0,0 @@
-'''tzinfo timezone information for Iceland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Iceland(DstTzInfo):
- '''Iceland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Iceland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1908,1,1,1,27,48),
-d(1917,2,20,0,0,0),
-d(1917,10,21,1,0,0),
-d(1918,2,20,0,0,0),
-d(1918,11,16,1,0,0),
-d(1939,4,30,0,0,0),
-d(1939,11,29,2,0,0),
-d(1940,2,25,3,0,0),
-d(1940,11,3,2,0,0),
-d(1941,3,2,2,0,0),
-d(1941,11,2,2,0,0),
-d(1942,3,8,2,0,0),
-d(1942,10,25,2,0,0),
-d(1943,3,7,2,0,0),
-d(1943,10,24,2,0,0),
-d(1944,3,5,2,0,0),
-d(1944,10,22,2,0,0),
-d(1945,3,4,2,0,0),
-d(1945,10,28,2,0,0),
-d(1946,3,3,2,0,0),
-d(1946,10,27,2,0,0),
-d(1947,4,6,2,0,0),
-d(1947,10,26,2,0,0),
-d(1948,4,4,2,0,0),
-d(1948,10,24,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,30,2,0,0),
-d(1950,4,2,2,0,0),
-d(1950,10,22,2,0,0),
-d(1951,4,1,2,0,0),
-d(1951,10,28,2,0,0),
-d(1952,4,6,2,0,0),
-d(1952,10,26,2,0,0),
-d(1953,4,5,2,0,0),
-d(1953,10,25,2,0,0),
-d(1954,4,4,2,0,0),
-d(1954,10,24,2,0,0),
-d(1955,4,3,2,0,0),
-d(1955,10,23,2,0,0),
-d(1956,4,1,2,0,0),
-d(1956,10,28,2,0,0),
-d(1957,4,7,2,0,0),
-d(1957,10,27,2,0,0),
-d(1958,4,6,2,0,0),
-d(1958,10,26,2,0,0),
-d(1959,4,5,2,0,0),
-d(1959,10,25,2,0,0),
-d(1960,4,3,2,0,0),
-d(1960,10,23,2,0,0),
-d(1961,4,2,2,0,0),
-d(1961,10,22,2,0,0),
-d(1962,4,1,2,0,0),
-d(1962,10,28,2,0,0),
-d(1963,4,7,2,0,0),
-d(1963,10,27,2,0,0),
-d(1964,4,5,2,0,0),
-d(1964,10,25,2,0,0),
-d(1965,4,4,2,0,0),
-d(1965,10,24,2,0,0),
-d(1966,4,3,2,0,0),
-d(1966,10,23,2,0,0),
-d(1967,4,2,2,0,0),
-d(1967,10,29,2,0,0),
-d(1968,4,7,2,0,0),
- ]
-
- _transition_info = [
-i(-5280,0,'RMT'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,3600,'ISST'),
-i(-3600,0,'IST'),
-i(0,0,'GMT'),
- ]
-
-Iceland = Iceland()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Antananarivo.py b/vendor/pytz/zoneinfo/Indian/Antananarivo.py
deleted file mode 100644
index 05663b9d..00000000
--- a/vendor/pytz/zoneinfo/Indian/Antananarivo.py
+++ /dev/null
@@ -1,26 +0,0 @@
-'''tzinfo timezone information for Indian/Antananarivo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Antananarivo(DstTzInfo):
- '''Indian/Antananarivo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Antananarivo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,6,30,20,49,56),
-d(1954,2,27,20,0,0),
-d(1954,5,29,20,0,0),
- ]
-
- _transition_info = [
-i(11400,0,'LMT'),
-i(10800,0,'EAT'),
-i(14400,3600,'EAST'),
-i(10800,0,'EAT'),
- ]
-
-Antananarivo = Antananarivo()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Chagos.py b/vendor/pytz/zoneinfo/Indian/Chagos.py
deleted file mode 100644
index 3ea97289..00000000
--- a/vendor/pytz/zoneinfo/Indian/Chagos.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Indian/Chagos.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chagos(DstTzInfo):
- '''Indian/Chagos timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Chagos'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,12,31,19,10,20),
-d(1995,12,31,19,0,0),
- ]
-
- _transition_info = [
-i(17400,0,'LMT'),
-i(18000,0,'IOT'),
-i(21600,0,'IOT'),
- ]
-
-Chagos = Chagos()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Christmas.py b/vendor/pytz/zoneinfo/Indian/Christmas.py
deleted file mode 100644
index a6a2e0b9..00000000
--- a/vendor/pytz/zoneinfo/Indian/Christmas.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Indian/Christmas.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Christmas(StaticTzInfo):
- '''Indian/Christmas timezone definition. See datetime.tzinfo for details'''
- zone = 'Indian/Christmas'
- _utcoffset = timedelta(seconds=25200)
- _tzname = 'CXT'
-
-Christmas = Christmas()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Cocos.py b/vendor/pytz/zoneinfo/Indian/Cocos.py
deleted file mode 100644
index 5ffe4706..00000000
--- a/vendor/pytz/zoneinfo/Indian/Cocos.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Indian/Cocos.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Cocos(StaticTzInfo):
- '''Indian/Cocos timezone definition. See datetime.tzinfo for details'''
- zone = 'Indian/Cocos'
- _utcoffset = timedelta(seconds=23400)
- _tzname = 'CCT'
-
-Cocos = Cocos()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Comoro.py b/vendor/pytz/zoneinfo/Indian/Comoro.py
deleted file mode 100644
index 98c6948f..00000000
--- a/vendor/pytz/zoneinfo/Indian/Comoro.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Comoro.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Comoro(DstTzInfo):
- '''Indian/Comoro timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Comoro'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,6,30,21,6,56),
- ]
-
- _transition_info = [
-i(10380,0,'LMT'),
-i(10800,0,'EAT'),
- ]
-
-Comoro = Comoro()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Kerguelen.py b/vendor/pytz/zoneinfo/Indian/Kerguelen.py
deleted file mode 100644
index edc6ab21..00000000
--- a/vendor/pytz/zoneinfo/Indian/Kerguelen.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Kerguelen.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kerguelen(DstTzInfo):
- '''Indian/Kerguelen timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Kerguelen'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1950,1,1,0,0,0),
- ]
-
- _transition_info = [
-i(0,0,'zzz'),
-i(18000,0,'TFT'),
- ]
-
-Kerguelen = Kerguelen()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Mahe.py b/vendor/pytz/zoneinfo/Indian/Mahe.py
deleted file mode 100644
index 0bd7ee36..00000000
--- a/vendor/pytz/zoneinfo/Indian/Mahe.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Mahe.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mahe(DstTzInfo):
- '''Indian/Mahe timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Mahe'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,5,31,20,18,12),
- ]
-
- _transition_info = [
-i(13320,0,'LMT'),
-i(14400,0,'SCT'),
- ]
-
-Mahe = Mahe()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Maldives.py b/vendor/pytz/zoneinfo/Indian/Maldives.py
deleted file mode 100644
index 3f84d43d..00000000
--- a/vendor/pytz/zoneinfo/Indian/Maldives.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Maldives.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Maldives(DstTzInfo):
- '''Indian/Maldives timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Maldives'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1959,12,31,19,6,0),
- ]
-
- _transition_info = [
-i(17640,0,'MMT'),
-i(18000,0,'MVT'),
- ]
-
-Maldives = Maldives()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Mauritius.py b/vendor/pytz/zoneinfo/Indian/Mauritius.py
deleted file mode 100644
index 0e170a6a..00000000
--- a/vendor/pytz/zoneinfo/Indian/Mauritius.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Mauritius.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mauritius(DstTzInfo):
- '''Indian/Mauritius timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Mauritius'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1906,12,31,20,10,0),
- ]
-
- _transition_info = [
-i(13800,0,'LMT'),
-i(14400,0,'MUT'),
- ]
-
-Mauritius = Mauritius()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Mayotte.py b/vendor/pytz/zoneinfo/Indian/Mayotte.py
deleted file mode 100644
index 20df3bb2..00000000
--- a/vendor/pytz/zoneinfo/Indian/Mayotte.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Mayotte.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mayotte(DstTzInfo):
- '''Indian/Mayotte timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Mayotte'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,6,30,20,59,4),
- ]
-
- _transition_info = [
-i(10860,0,'LMT'),
-i(10800,0,'EAT'),
- ]
-
-Mayotte = Mayotte()
-
diff --git a/vendor/pytz/zoneinfo/Indian/Reunion.py b/vendor/pytz/zoneinfo/Indian/Reunion.py
deleted file mode 100644
index 11fb08f8..00000000
--- a/vendor/pytz/zoneinfo/Indian/Reunion.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Indian/Reunion.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Reunion(DstTzInfo):
- '''Indian/Reunion timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Indian/Reunion'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,5,31,20,18,8),
- ]
-
- _transition_info = [
-i(13320,0,'LMT'),
-i(14400,0,'RET'),
- ]
-
-Reunion = Reunion()
-
diff --git a/vendor/pytz/zoneinfo/Indian/__init__.py b/vendor/pytz/zoneinfo/Indian/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Iran.py b/vendor/pytz/zoneinfo/Iran.py
deleted file mode 100644
index 3ea0482c..00000000
--- a/vendor/pytz/zoneinfo/Iran.py
+++ /dev/null
@@ -1,100 +0,0 @@
-'''tzinfo timezone information for Iran.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Iran(DstTzInfo):
- '''Iran timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Iran'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,12,31,20,34,16),
-d(1945,12,31,20,34,16),
-d(1977,10,31,20,30,0),
-d(1978,3,20,20,0,0),
-d(1978,10,20,19,0,0),
-d(1978,12,31,20,0,0),
-d(1979,3,20,20,30,0),
-d(1979,9,18,19,30,0),
-d(1980,3,20,20,30,0),
-d(1980,9,22,19,30,0),
-d(1991,5,2,20,30,0),
-d(1991,9,21,19,30,0),
-d(1992,3,21,20,30,0),
-d(1992,9,21,19,30,0),
-d(1993,3,21,20,30,0),
-d(1993,9,21,19,30,0),
-d(1994,3,21,20,30,0),
-d(1994,9,21,19,30,0),
-d(1995,3,21,20,30,0),
-d(1995,9,21,19,30,0),
-d(1996,3,20,20,30,0),
-d(1996,9,20,19,30,0),
-d(1997,3,21,20,30,0),
-d(1997,9,21,19,30,0),
-d(1998,3,21,20,30,0),
-d(1998,9,21,19,30,0),
-d(1999,3,21,20,30,0),
-d(1999,9,21,19,30,0),
-d(2000,3,20,20,30,0),
-d(2000,9,20,19,30,0),
-d(2001,3,21,20,30,0),
-d(2001,9,21,19,30,0),
-d(2002,3,21,20,30,0),
-d(2002,9,21,19,30,0),
-d(2003,3,21,20,30,0),
-d(2003,9,21,19,30,0),
-d(2004,3,20,20,30,0),
-d(2004,9,20,19,30,0),
-d(2005,3,21,20,30,0),
-d(2005,9,21,19,30,0),
- ]
-
- _transition_info = [
-i(12360,0,'LMT'),
-i(12360,0,'TMT'),
-i(12600,0,'IRST'),
-i(14400,0,'IRST'),
-i(18000,3600,'IRDT'),
-i(14400,0,'IRST'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
-i(16200,3600,'IRDT'),
-i(12600,0,'IRST'),
- ]
-
-Iran = Iran()
-
diff --git a/vendor/pytz/zoneinfo/Israel.py b/vendor/pytz/zoneinfo/Israel.py
deleted file mode 100644
index 14b0bbbb..00000000
--- a/vendor/pytz/zoneinfo/Israel.py
+++ /dev/null
@@ -1,304 +0,0 @@
-'''tzinfo timezone information for Israel.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Israel(DstTzInfo):
- '''Israel timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Israel'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1917,12,31,21,39,20),
-d(1940,5,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1943,4,1,0,0,0),
-d(1943,10,31,21,0,0),
-d(1944,3,31,22,0,0),
-d(1944,10,31,21,0,0),
-d(1945,4,15,22,0,0),
-d(1945,10,31,23,0,0),
-d(1946,4,16,0,0,0),
-d(1946,10,31,21,0,0),
-d(1948,5,22,22,0,0),
-d(1948,8,31,20,0,0),
-d(1948,10,31,23,0,0),
-d(1949,4,30,22,0,0),
-d(1949,10,31,23,0,0),
-d(1950,4,15,22,0,0),
-d(1950,9,15,0,0,0),
-d(1951,3,31,22,0,0),
-d(1951,11,11,0,0,0),
-d(1952,4,20,0,0,0),
-d(1952,10,19,0,0,0),
-d(1953,4,12,0,0,0),
-d(1953,9,13,0,0,0),
-d(1954,6,12,22,0,0),
-d(1954,9,11,21,0,0),
-d(1955,6,11,0,0,0),
-d(1955,9,10,21,0,0),
-d(1956,6,2,22,0,0),
-d(1956,9,30,0,0,0),
-d(1957,4,29,0,0,0),
-d(1957,9,21,21,0,0),
-d(1974,7,6,22,0,0),
-d(1974,10,12,21,0,0),
-d(1975,4,19,22,0,0),
-d(1975,8,30,21,0,0),
-d(1985,4,13,22,0,0),
-d(1985,9,14,21,0,0),
-d(1986,5,17,22,0,0),
-d(1986,9,6,21,0,0),
-d(1987,4,14,22,0,0),
-d(1987,9,12,21,0,0),
-d(1988,4,8,22,0,0),
-d(1988,9,2,21,0,0),
-d(1989,4,29,22,0,0),
-d(1989,9,2,21,0,0),
-d(1990,3,24,22,0,0),
-d(1990,8,25,21,0,0),
-d(1991,3,23,22,0,0),
-d(1991,8,31,21,0,0),
-d(1992,3,28,22,0,0),
-d(1992,9,5,21,0,0),
-d(1993,4,1,22,0,0),
-d(1993,9,4,21,0,0),
-d(1994,3,31,22,0,0),
-d(1994,8,27,21,0,0),
-d(1995,3,30,22,0,0),
-d(1995,9,2,21,0,0),
-d(1996,3,14,22,0,0),
-d(1996,9,15,21,0,0),
-d(1997,3,20,22,0,0),
-d(1997,9,13,21,0,0),
-d(1998,3,19,22,0,0),
-d(1998,9,5,21,0,0),
-d(1999,4,2,0,0,0),
-d(1999,9,2,23,0,0),
-d(2000,4,14,0,0,0),
-d(2000,10,5,22,0,0),
-d(2001,4,8,23,0,0),
-d(2001,9,23,22,0,0),
-d(2002,3,28,23,0,0),
-d(2002,10,6,22,0,0),
-d(2003,3,27,23,0,0),
-d(2003,10,2,22,0,0),
-d(2004,4,6,23,0,0),
-d(2004,9,21,22,0,0),
-d(2005,4,1,0,0,0),
-d(2005,10,8,23,0,0),
-d(2006,3,31,0,0,0),
-d(2006,9,30,23,0,0),
-d(2007,3,30,0,0,0),
-d(2007,9,15,23,0,0),
-d(2008,3,28,0,0,0),
-d(2008,10,4,23,0,0),
-d(2009,3,27,0,0,0),
-d(2009,9,26,23,0,0),
-d(2010,3,26,0,0,0),
-d(2010,9,11,23,0,0),
-d(2011,4,1,0,0,0),
-d(2011,10,1,23,0,0),
-d(2012,3,30,0,0,0),
-d(2012,9,22,23,0,0),
-d(2013,3,29,0,0,0),
-d(2013,9,7,23,0,0),
-d(2014,3,28,0,0,0),
-d(2014,9,27,23,0,0),
-d(2015,3,27,0,0,0),
-d(2015,9,19,23,0,0),
-d(2016,4,1,0,0,0),
-d(2016,10,8,23,0,0),
-d(2017,3,31,0,0,0),
-d(2017,9,23,23,0,0),
-d(2018,3,30,0,0,0),
-d(2018,9,15,23,0,0),
-d(2019,3,29,0,0,0),
-d(2019,10,5,23,0,0),
-d(2020,3,27,0,0,0),
-d(2020,9,26,23,0,0),
-d(2021,3,26,0,0,0),
-d(2021,9,11,23,0,0),
-d(2022,4,1,0,0,0),
-d(2022,10,1,23,0,0),
-d(2023,3,31,0,0,0),
-d(2023,9,23,23,0,0),
-d(2024,3,29,0,0,0),
-d(2024,10,5,23,0,0),
-d(2025,3,28,0,0,0),
-d(2025,9,27,23,0,0),
-d(2026,3,27,0,0,0),
-d(2026,9,19,23,0,0),
-d(2027,3,26,0,0,0),
-d(2027,10,9,23,0,0),
-d(2028,3,31,0,0,0),
-d(2028,9,23,23,0,0),
-d(2029,3,30,0,0,0),
-d(2029,9,15,23,0,0),
-d(2030,3,29,0,0,0),
-d(2030,10,5,23,0,0),
-d(2031,3,28,0,0,0),
-d(2031,9,20,23,0,0),
-d(2032,3,26,0,0,0),
-d(2032,9,11,23,0,0),
-d(2033,4,1,0,0,0),
-d(2033,10,1,23,0,0),
-d(2034,3,31,0,0,0),
-d(2034,9,16,23,0,0),
-d(2035,3,30,0,0,0),
-d(2035,10,6,23,0,0),
-d(2036,3,28,0,0,0),
-d(2036,9,27,23,0,0),
-d(2037,3,27,0,0,0),
-d(2037,9,12,23,0,0),
- ]
-
- _transition_info = [
-i(8460,0,'JMT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(14400,7200,'IDDT'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
-i(10800,3600,'IDT'),
-i(7200,0,'IST'),
- ]
-
-Israel = Israel()
-
diff --git a/vendor/pytz/zoneinfo/Jamaica.py b/vendor/pytz/zoneinfo/Jamaica.py
deleted file mode 100644
index f166a375..00000000
--- a/vendor/pytz/zoneinfo/Jamaica.py
+++ /dev/null
@@ -1,62 +0,0 @@
-'''tzinfo timezone information for Jamaica.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Jamaica(DstTzInfo):
- '''Jamaica timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Jamaica'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,2,1,5,7,12),
-d(1974,4,28,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
- ]
-
- _transition_info = [
-i(-18420,0,'KMT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Jamaica = Jamaica()
-
diff --git a/vendor/pytz/zoneinfo/Japan.py b/vendor/pytz/zoneinfo/Japan.py
deleted file mode 100644
index e3030074..00000000
--- a/vendor/pytz/zoneinfo/Japan.py
+++ /dev/null
@@ -1,38 +0,0 @@
-'''tzinfo timezone information for Japan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Japan(DstTzInfo):
- '''Japan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Japan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1937,12,31,15,0,0),
-d(1948,5,1,17,0,0),
-d(1948,9,10,16,0,0),
-d(1949,4,2,17,0,0),
-d(1949,9,9,16,0,0),
-d(1950,5,6,17,0,0),
-d(1950,9,8,16,0,0),
-d(1951,5,5,17,0,0),
-d(1951,9,7,16,0,0),
- ]
-
- _transition_info = [
-i(32400,0,'CJT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
-i(36000,3600,'JDT'),
-i(32400,0,'JST'),
- ]
-
-Japan = Japan()
-
diff --git a/vendor/pytz/zoneinfo/Kwajalein.py b/vendor/pytz/zoneinfo/Kwajalein.py
deleted file mode 100644
index edab84d1..00000000
--- a/vendor/pytz/zoneinfo/Kwajalein.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Kwajalein.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kwajalein(DstTzInfo):
- '''Kwajalein timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Kwajalein'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,9,30,13,0,0),
-d(1993,8,20,12,0,0),
- ]
-
- _transition_info = [
-i(39600,0,'MHT'),
-i(-43200,0,'KWAT'),
-i(43200,0,'MHT'),
- ]
-
-Kwajalein = Kwajalein()
-
diff --git a/vendor/pytz/zoneinfo/Libya.py b/vendor/pytz/zoneinfo/Libya.py
deleted file mode 100644
index 3ab8dbca..00000000
--- a/vendor/pytz/zoneinfo/Libya.py
+++ /dev/null
@@ -1,78 +0,0 @@
-'''tzinfo timezone information for Libya.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Libya(DstTzInfo):
- '''Libya timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Libya'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1919,12,31,23,7,16),
-d(1951,10,14,1,0,0),
-d(1951,12,31,22,0,0),
-d(1953,10,9,1,0,0),
-d(1953,12,31,22,0,0),
-d(1955,9,29,23,0,0),
-d(1955,12,31,22,0,0),
-d(1958,12,31,23,0,0),
-d(1981,12,31,22,0,0),
-d(1982,3,31,23,0,0),
-d(1982,9,30,22,0,0),
-d(1983,3,31,23,0,0),
-d(1983,9,30,22,0,0),
-d(1984,3,31,23,0,0),
-d(1984,9,30,22,0,0),
-d(1985,4,5,23,0,0),
-d(1985,9,30,22,0,0),
-d(1986,4,3,23,0,0),
-d(1986,10,2,22,0,0),
-d(1987,3,31,23,0,0),
-d(1987,9,30,22,0,0),
-d(1988,3,31,23,0,0),
-d(1988,9,30,22,0,0),
-d(1989,3,31,23,0,0),
-d(1989,9,30,22,0,0),
-d(1990,5,3,23,0,0),
-d(1996,9,29,22,0,0),
-d(1997,4,3,23,0,0),
-d(1997,10,3,22,0,0),
- ]
-
- _transition_info = [
-i(3180,0,'LMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,0,'EET'),
- ]
-
-Libya = Libya()
-
diff --git a/vendor/pytz/zoneinfo/MET.py b/vendor/pytz/zoneinfo/MET.py
deleted file mode 100644
index 09009209..00000000
--- a/vendor/pytz/zoneinfo/MET.py
+++ /dev/null
@@ -1,288 +0,0 @@
-'''tzinfo timezone information for MET.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class MET(DstTzInfo):
- '''MET timezone definition. See datetime.tzinfo for details'''
-
- zone = 'MET'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1940,4,1,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,10,2,1,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
-i(7200,3600,'MEST'),
-i(3600,0,'MET'),
- ]
-
-MET = MET()
-
diff --git a/vendor/pytz/zoneinfo/MST.py b/vendor/pytz/zoneinfo/MST.py
deleted file mode 100644
index 6a9cc946..00000000
--- a/vendor/pytz/zoneinfo/MST.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for MST.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class MST(StaticTzInfo):
- '''MST timezone definition. See datetime.tzinfo for details'''
- zone = 'MST'
- _utcoffset = timedelta(seconds=-25200)
- _tzname = 'MST'
-
-MST = MST()
-
diff --git a/vendor/pytz/zoneinfo/MST7MDT.py b/vendor/pytz/zoneinfo/MST7MDT.py
deleted file mode 100644
index baad8bec..00000000
--- a/vendor/pytz/zoneinfo/MST7MDT.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for MST7MDT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class MST7MDT(DstTzInfo):
- '''MST7MDT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'MST7MDT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-MST7MDT = MST7MDT()
-
diff --git a/vendor/pytz/zoneinfo/Mexico/BajaNorte.py b/vendor/pytz/zoneinfo/Mexico/BajaNorte.py
deleted file mode 100644
index 75dfe706..00000000
--- a/vendor/pytz/zoneinfo/Mexico/BajaNorte.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for Mexico/BajaNorte.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class BajaNorte(DstTzInfo):
- '''Mexico/BajaNorte timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Mexico/BajaNorte'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,8,0,0),
-d(1924,1,1,7,0,0),
-d(1927,6,11,7,0,0),
-d(1930,11,15,7,0,0),
-d(1931,4,1,8,0,0),
-d(1931,9,30,7,0,0),
-d(1942,4,24,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,11,12,7,0,0),
-d(1948,4,5,8,0,0),
-d(1949,1,14,7,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,4,1,10,0,0),
-d(2007,10,28,9,0,0),
-d(2008,4,6,10,0,0),
-d(2008,10,26,9,0,0),
-d(2009,4,5,10,0,0),
-d(2009,10,25,9,0,0),
-d(2010,4,4,10,0,0),
-d(2010,10,31,9,0,0),
-d(2011,4,3,10,0,0),
-d(2011,10,30,9,0,0),
-d(2012,4,1,10,0,0),
-d(2012,10,28,9,0,0),
-d(2013,4,7,10,0,0),
-d(2013,10,27,9,0,0),
-d(2014,4,6,10,0,0),
-d(2014,10,26,9,0,0),
-d(2015,4,5,10,0,0),
-d(2015,10,25,9,0,0),
-d(2016,4,3,10,0,0),
-d(2016,10,30,9,0,0),
-d(2017,4,2,10,0,0),
-d(2017,10,29,9,0,0),
-d(2018,4,1,10,0,0),
-d(2018,10,28,9,0,0),
-d(2019,4,7,10,0,0),
-d(2019,10,27,9,0,0),
-d(2020,4,5,10,0,0),
-d(2020,10,25,9,0,0),
-d(2021,4,4,10,0,0),
-d(2021,10,31,9,0,0),
-d(2022,4,3,10,0,0),
-d(2022,10,30,9,0,0),
-d(2023,4,2,10,0,0),
-d(2023,10,29,9,0,0),
-d(2024,4,7,10,0,0),
-d(2024,10,27,9,0,0),
-d(2025,4,6,10,0,0),
-d(2025,10,26,9,0,0),
-d(2026,4,5,10,0,0),
-d(2026,10,25,9,0,0),
-d(2027,4,4,10,0,0),
-d(2027,10,31,9,0,0),
-d(2028,4,2,10,0,0),
-d(2028,10,29,9,0,0),
-d(2029,4,1,10,0,0),
-d(2029,10,28,9,0,0),
-d(2030,4,7,10,0,0),
-d(2030,10,27,9,0,0),
-d(2031,4,6,10,0,0),
-d(2031,10,26,9,0,0),
-d(2032,4,4,10,0,0),
-d(2032,10,31,9,0,0),
-d(2033,4,3,10,0,0),
-d(2033,10,30,9,0,0),
-d(2034,4,2,10,0,0),
-d(2034,10,29,9,0,0),
-d(2035,4,1,10,0,0),
-d(2035,10,28,9,0,0),
-d(2036,4,6,10,0,0),
-d(2036,10,26,9,0,0),
-d(2037,4,5,10,0,0),
-d(2037,10,25,9,0,0),
- ]
-
- _transition_info = [
-i(-28080,0,'LMT'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-BajaNorte = BajaNorte()
-
diff --git a/vendor/pytz/zoneinfo/Mexico/BajaSur.py b/vendor/pytz/zoneinfo/Mexico/BajaSur.py
deleted file mode 100644
index 22da0533..00000000
--- a/vendor/pytz/zoneinfo/Mexico/BajaSur.py
+++ /dev/null
@@ -1,206 +0,0 @@
-'''tzinfo timezone information for Mexico/BajaSur.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class BajaSur(DstTzInfo):
- '''Mexico/BajaSur timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Mexico/BajaSur'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1942,4,24,6,0,0),
-d(1949,1,14,7,0,0),
-d(1970,1,1,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,5,6,9,0,0),
-d(2001,9,30,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,4,1,9,0,0),
-d(2007,10,28,8,0,0),
-d(2008,4,6,9,0,0),
-d(2008,10,26,8,0,0),
-d(2009,4,5,9,0,0),
-d(2009,10,25,8,0,0),
-d(2010,4,4,9,0,0),
-d(2010,10,31,8,0,0),
-d(2011,4,3,9,0,0),
-d(2011,10,30,8,0,0),
-d(2012,4,1,9,0,0),
-d(2012,10,28,8,0,0),
-d(2013,4,7,9,0,0),
-d(2013,10,27,8,0,0),
-d(2014,4,6,9,0,0),
-d(2014,10,26,8,0,0),
-d(2015,4,5,9,0,0),
-d(2015,10,25,8,0,0),
-d(2016,4,3,9,0,0),
-d(2016,10,30,8,0,0),
-d(2017,4,2,9,0,0),
-d(2017,10,29,8,0,0),
-d(2018,4,1,9,0,0),
-d(2018,10,28,8,0,0),
-d(2019,4,7,9,0,0),
-d(2019,10,27,8,0,0),
-d(2020,4,5,9,0,0),
-d(2020,10,25,8,0,0),
-d(2021,4,4,9,0,0),
-d(2021,10,31,8,0,0),
-d(2022,4,3,9,0,0),
-d(2022,10,30,8,0,0),
-d(2023,4,2,9,0,0),
-d(2023,10,29,8,0,0),
-d(2024,4,7,9,0,0),
-d(2024,10,27,8,0,0),
-d(2025,4,6,9,0,0),
-d(2025,10,26,8,0,0),
-d(2026,4,5,9,0,0),
-d(2026,10,25,8,0,0),
-d(2027,4,4,9,0,0),
-d(2027,10,31,8,0,0),
-d(2028,4,2,9,0,0),
-d(2028,10,29,8,0,0),
-d(2029,4,1,9,0,0),
-d(2029,10,28,8,0,0),
-d(2030,4,7,9,0,0),
-d(2030,10,27,8,0,0),
-d(2031,4,6,9,0,0),
-d(2031,10,26,8,0,0),
-d(2032,4,4,9,0,0),
-d(2032,10,31,8,0,0),
-d(2033,4,3,9,0,0),
-d(2033,10,30,8,0,0),
-d(2034,4,2,9,0,0),
-d(2034,10,29,8,0,0),
-d(2035,4,1,9,0,0),
-d(2035,10,28,8,0,0),
-d(2036,4,6,9,0,0),
-d(2036,10,26,8,0,0),
-d(2037,4,5,9,0,0),
-d(2037,10,25,8,0,0),
- ]
-
- _transition_info = [
-i(-25560,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-28800,0,'PST'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-BajaSur = BajaSur()
-
diff --git a/vendor/pytz/zoneinfo/Mexico/General.py b/vendor/pytz/zoneinfo/Mexico/General.py
deleted file mode 100644
index 9a224612..00000000
--- a/vendor/pytz/zoneinfo/Mexico/General.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for Mexico/General.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class General(DstTzInfo):
- '''Mexico/General timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Mexico/General'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1922,1,1,7,0,0),
-d(1927,6,11,6,0,0),
-d(1930,11,15,6,0,0),
-d(1931,5,2,6,0,0),
-d(1931,10,1,6,0,0),
-d(1932,4,1,7,0,0),
-d(1939,2,5,6,0,0),
-d(1939,6,25,5,0,0),
-d(1940,12,9,6,0,0),
-d(1941,4,1,5,0,0),
-d(1943,12,16,6,0,0),
-d(1944,5,1,5,0,0),
-d(1950,2,12,6,0,0),
-d(1950,7,30,5,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,5,6,8,0,0),
-d(2001,9,30,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,4,1,8,0,0),
-d(2007,10,28,7,0,0),
-d(2008,4,6,8,0,0),
-d(2008,10,26,7,0,0),
-d(2009,4,5,8,0,0),
-d(2009,10,25,7,0,0),
-d(2010,4,4,8,0,0),
-d(2010,10,31,7,0,0),
-d(2011,4,3,8,0,0),
-d(2011,10,30,7,0,0),
-d(2012,4,1,8,0,0),
-d(2012,10,28,7,0,0),
-d(2013,4,7,8,0,0),
-d(2013,10,27,7,0,0),
-d(2014,4,6,8,0,0),
-d(2014,10,26,7,0,0),
-d(2015,4,5,8,0,0),
-d(2015,10,25,7,0,0),
-d(2016,4,3,8,0,0),
-d(2016,10,30,7,0,0),
-d(2017,4,2,8,0,0),
-d(2017,10,29,7,0,0),
-d(2018,4,1,8,0,0),
-d(2018,10,28,7,0,0),
-d(2019,4,7,8,0,0),
-d(2019,10,27,7,0,0),
-d(2020,4,5,8,0,0),
-d(2020,10,25,7,0,0),
-d(2021,4,4,8,0,0),
-d(2021,10,31,7,0,0),
-d(2022,4,3,8,0,0),
-d(2022,10,30,7,0,0),
-d(2023,4,2,8,0,0),
-d(2023,10,29,7,0,0),
-d(2024,4,7,8,0,0),
-d(2024,10,27,7,0,0),
-d(2025,4,6,8,0,0),
-d(2025,10,26,7,0,0),
-d(2026,4,5,8,0,0),
-d(2026,10,25,7,0,0),
-d(2027,4,4,8,0,0),
-d(2027,10,31,7,0,0),
-d(2028,4,2,8,0,0),
-d(2028,10,29,7,0,0),
-d(2029,4,1,8,0,0),
-d(2029,10,28,7,0,0),
-d(2030,4,7,8,0,0),
-d(2030,10,27,7,0,0),
-d(2031,4,6,8,0,0),
-d(2031,10,26,7,0,0),
-d(2032,4,4,8,0,0),
-d(2032,10,31,7,0,0),
-d(2033,4,3,8,0,0),
-d(2033,10,30,7,0,0),
-d(2034,4,2,8,0,0),
-d(2034,10,29,7,0,0),
-d(2035,4,1,8,0,0),
-d(2035,10,28,7,0,0),
-d(2036,4,6,8,0,0),
-d(2036,10,26,7,0,0),
-d(2037,4,5,8,0,0),
-d(2037,10,25,7,0,0),
- ]
-
- _transition_info = [
-i(-23820,0,'LMT'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-25200,0,'MST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-General = General()
-
diff --git a/vendor/pytz/zoneinfo/Mexico/__init__.py b/vendor/pytz/zoneinfo/Mexico/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/NZ.py b/vendor/pytz/zoneinfo/NZ.py
deleted file mode 100644
index 8e80f819..00000000
--- a/vendor/pytz/zoneinfo/NZ.py
+++ /dev/null
@@ -1,330 +0,0 @@
-'''tzinfo timezone information for NZ.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class NZ(DstTzInfo):
- '''NZ timezone definition. See datetime.tzinfo for details'''
-
- zone = 'NZ'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,11,5,14,30,0),
-d(1928,3,3,13,30,0),
-d(1928,10,13,14,30,0),
-d(1929,3,16,14,0,0),
-d(1929,10,12,14,30,0),
-d(1930,3,15,14,0,0),
-d(1930,10,11,14,30,0),
-d(1931,3,14,14,0,0),
-d(1931,10,10,14,30,0),
-d(1932,3,19,14,0,0),
-d(1932,10,8,14,30,0),
-d(1933,3,18,14,0,0),
-d(1933,10,7,14,30,0),
-d(1934,4,28,14,0,0),
-d(1934,9,29,14,30,0),
-d(1935,4,27,14,0,0),
-d(1935,9,28,14,30,0),
-d(1936,4,25,14,0,0),
-d(1936,9,26,14,30,0),
-d(1937,4,24,14,0,0),
-d(1937,9,25,14,30,0),
-d(1938,4,23,14,0,0),
-d(1938,9,24,14,30,0),
-d(1939,4,29,14,0,0),
-d(1939,9,23,14,30,0),
-d(1940,4,27,14,0,0),
-d(1940,9,28,14,30,0),
-d(1945,12,31,12,0,0),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(41400,0,'NZMT'),
-i(45000,3600,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
- ]
-
-NZ = NZ()
-
diff --git a/vendor/pytz/zoneinfo/NZ_minus_CHAT.py b/vendor/pytz/zoneinfo/NZ_minus_CHAT.py
deleted file mode 100644
index 4cbbb3ee..00000000
--- a/vendor/pytz/zoneinfo/NZ_minus_CHAT.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for NZ_minus_CHAT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class NZ_minus_CHAT(DstTzInfo):
- '''NZ_minus_CHAT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'NZ_minus_CHAT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1956,12,31,11,46,12),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(44040,0,'LMT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
- ]
-
-NZ_minus_CHAT = NZ_minus_CHAT()
-
diff --git a/vendor/pytz/zoneinfo/Navajo.py b/vendor/pytz/zoneinfo/Navajo.py
deleted file mode 100644
index 793142ec..00000000
--- a/vendor/pytz/zoneinfo/Navajo.py
+++ /dev/null
@@ -1,334 +0,0 @@
-'''tzinfo timezone information for Navajo.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Navajo(DstTzInfo):
- '''Navajo timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Navajo'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1920,3,28,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,3,27,9,0,0),
-d(1921,5,22,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,8,0,0),
-d(1966,4,24,9,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Navajo = Navajo()
-
diff --git a/vendor/pytz/zoneinfo/PRC.py b/vendor/pytz/zoneinfo/PRC.py
deleted file mode 100644
index 872a94da..00000000
--- a/vendor/pytz/zoneinfo/PRC.py
+++ /dev/null
@@ -1,54 +0,0 @@
-'''tzinfo timezone information for PRC.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class PRC(DstTzInfo):
- '''PRC timezone definition. See datetime.tzinfo for details'''
-
- zone = 'PRC'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,12,31,15,54,8),
-d(1940,6,2,16,0,0),
-d(1940,9,30,15,0,0),
-d(1941,3,15,16,0,0),
-d(1941,9,30,15,0,0),
-d(1986,5,3,16,0,0),
-d(1986,9,13,15,0,0),
-d(1987,4,11,16,0,0),
-d(1987,9,12,15,0,0),
-d(1988,4,9,16,0,0),
-d(1988,9,10,15,0,0),
-d(1989,4,15,16,0,0),
-d(1989,9,16,15,0,0),
-d(1990,4,14,16,0,0),
-d(1990,9,15,15,0,0),
-d(1991,4,13,16,0,0),
-d(1991,9,14,15,0,0),
- ]
-
- _transition_info = [
-i(29160,0,'LMT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-PRC = PRC()
-
diff --git a/vendor/pytz/zoneinfo/PST8PDT.py b/vendor/pytz/zoneinfo/PST8PDT.py
deleted file mode 100644
index b4ef54d6..00000000
--- a/vendor/pytz/zoneinfo/PST8PDT.py
+++ /dev/null
@@ -1,318 +0,0 @@
-'''tzinfo timezone information for PST8PDT.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class PST8PDT(DstTzInfo):
- '''PST8PDT timezone definition. See datetime.tzinfo for details'''
-
- zone = 'PST8PDT'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,3,30,10,0,0),
-d(1919,10,26,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,1,6,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,2,23,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-PST8PDT = PST8PDT()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Apia.py b/vendor/pytz/zoneinfo/Pacific/Apia.py
deleted file mode 100644
index 05cb54a0..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Apia.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Apia.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Apia(DstTzInfo):
- '''Pacific/Apia timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Apia'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,1,1,11,26,56),
-d(1950,1,1,11,30,0),
- ]
-
- _transition_info = [
-i(-41220,0,'LMT'),
-i(-41400,0,'SAMT'),
-i(-39600,0,'WST'),
- ]
-
-Apia = Apia()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Auckland.py b/vendor/pytz/zoneinfo/Pacific/Auckland.py
deleted file mode 100644
index a257d229..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Auckland.py
+++ /dev/null
@@ -1,330 +0,0 @@
-'''tzinfo timezone information for Pacific/Auckland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Auckland(DstTzInfo):
- '''Pacific/Auckland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Auckland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1927,11,5,14,30,0),
-d(1928,3,3,13,30,0),
-d(1928,10,13,14,30,0),
-d(1929,3,16,14,0,0),
-d(1929,10,12,14,30,0),
-d(1930,3,15,14,0,0),
-d(1930,10,11,14,30,0),
-d(1931,3,14,14,0,0),
-d(1931,10,10,14,30,0),
-d(1932,3,19,14,0,0),
-d(1932,10,8,14,30,0),
-d(1933,3,18,14,0,0),
-d(1933,10,7,14,30,0),
-d(1934,4,28,14,0,0),
-d(1934,9,29,14,30,0),
-d(1935,4,27,14,0,0),
-d(1935,9,28,14,30,0),
-d(1936,4,25,14,0,0),
-d(1936,9,26,14,30,0),
-d(1937,4,24,14,0,0),
-d(1937,9,25,14,30,0),
-d(1938,4,23,14,0,0),
-d(1938,9,24,14,30,0),
-d(1939,4,29,14,0,0),
-d(1939,9,23,14,30,0),
-d(1940,4,27,14,0,0),
-d(1940,9,28,14,30,0),
-d(1945,12,31,12,0,0),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(41400,0,'NZMT'),
-i(45000,3600,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(41400,0,'NZMT'),
-i(43200,1800,'NZST'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
-i(43200,0,'NZST'),
-i(46800,3600,'NZDT'),
- ]
-
-Auckland = Auckland()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Chatham.py b/vendor/pytz/zoneinfo/Pacific/Chatham.py
deleted file mode 100644
index 8b78fdd1..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Chatham.py
+++ /dev/null
@@ -1,276 +0,0 @@
-'''tzinfo timezone information for Pacific/Chatham.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Chatham(DstTzInfo):
- '''Pacific/Chatham timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Chatham'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1956,12,31,11,46,12),
-d(1974,11,2,14,0,0),
-d(1975,2,22,14,0,0),
-d(1975,10,25,14,0,0),
-d(1976,3,6,14,0,0),
-d(1976,10,30,14,0,0),
-d(1977,3,5,14,0,0),
-d(1977,10,29,14,0,0),
-d(1978,3,4,14,0,0),
-d(1978,10,28,14,0,0),
-d(1979,3,3,14,0,0),
-d(1979,10,27,14,0,0),
-d(1980,3,1,14,0,0),
-d(1980,10,25,14,0,0),
-d(1981,2,28,14,0,0),
-d(1981,10,24,14,0,0),
-d(1982,3,6,14,0,0),
-d(1982,10,30,14,0,0),
-d(1983,3,5,14,0,0),
-d(1983,10,29,14,0,0),
-d(1984,3,3,14,0,0),
-d(1984,10,27,14,0,0),
-d(1985,3,2,14,0,0),
-d(1985,10,26,14,0,0),
-d(1986,3,1,14,0,0),
-d(1986,10,25,14,0,0),
-d(1987,2,28,14,0,0),
-d(1987,10,24,14,0,0),
-d(1988,3,5,14,0,0),
-d(1988,10,29,14,0,0),
-d(1989,3,4,14,0,0),
-d(1989,10,7,14,0,0),
-d(1990,3,17,14,0,0),
-d(1990,10,6,14,0,0),
-d(1991,3,16,14,0,0),
-d(1991,10,5,14,0,0),
-d(1992,3,14,14,0,0),
-d(1992,10,3,14,0,0),
-d(1993,3,20,14,0,0),
-d(1993,10,2,14,0,0),
-d(1994,3,19,14,0,0),
-d(1994,10,1,14,0,0),
-d(1995,3,18,14,0,0),
-d(1995,9,30,14,0,0),
-d(1996,3,16,14,0,0),
-d(1996,10,5,14,0,0),
-d(1997,3,15,14,0,0),
-d(1997,10,4,14,0,0),
-d(1998,3,14,14,0,0),
-d(1998,10,3,14,0,0),
-d(1999,3,20,14,0,0),
-d(1999,10,2,14,0,0),
-d(2000,3,18,14,0,0),
-d(2000,9,30,14,0,0),
-d(2001,3,17,14,0,0),
-d(2001,10,6,14,0,0),
-d(2002,3,16,14,0,0),
-d(2002,10,5,14,0,0),
-d(2003,3,15,14,0,0),
-d(2003,10,4,14,0,0),
-d(2004,3,20,14,0,0),
-d(2004,10,2,14,0,0),
-d(2005,3,19,14,0,0),
-d(2005,10,1,14,0,0),
-d(2006,3,18,14,0,0),
-d(2006,9,30,14,0,0),
-d(2007,3,17,14,0,0),
-d(2007,10,6,14,0,0),
-d(2008,3,15,14,0,0),
-d(2008,10,4,14,0,0),
-d(2009,3,14,14,0,0),
-d(2009,10,3,14,0,0),
-d(2010,3,20,14,0,0),
-d(2010,10,2,14,0,0),
-d(2011,3,19,14,0,0),
-d(2011,10,1,14,0,0),
-d(2012,3,17,14,0,0),
-d(2012,10,6,14,0,0),
-d(2013,3,16,14,0,0),
-d(2013,10,5,14,0,0),
-d(2014,3,15,14,0,0),
-d(2014,10,4,14,0,0),
-d(2015,3,14,14,0,0),
-d(2015,10,3,14,0,0),
-d(2016,3,19,14,0,0),
-d(2016,10,1,14,0,0),
-d(2017,3,18,14,0,0),
-d(2017,9,30,14,0,0),
-d(2018,3,17,14,0,0),
-d(2018,10,6,14,0,0),
-d(2019,3,16,14,0,0),
-d(2019,10,5,14,0,0),
-d(2020,3,14,14,0,0),
-d(2020,10,3,14,0,0),
-d(2021,3,20,14,0,0),
-d(2021,10,2,14,0,0),
-d(2022,3,19,14,0,0),
-d(2022,10,1,14,0,0),
-d(2023,3,18,14,0,0),
-d(2023,9,30,14,0,0),
-d(2024,3,16,14,0,0),
-d(2024,10,5,14,0,0),
-d(2025,3,15,14,0,0),
-d(2025,10,4,14,0,0),
-d(2026,3,14,14,0,0),
-d(2026,10,3,14,0,0),
-d(2027,3,20,14,0,0),
-d(2027,10,2,14,0,0),
-d(2028,3,18,14,0,0),
-d(2028,9,30,14,0,0),
-d(2029,3,17,14,0,0),
-d(2029,10,6,14,0,0),
-d(2030,3,16,14,0,0),
-d(2030,10,5,14,0,0),
-d(2031,3,15,14,0,0),
-d(2031,10,4,14,0,0),
-d(2032,3,20,14,0,0),
-d(2032,10,2,14,0,0),
-d(2033,3,19,14,0,0),
-d(2033,10,1,14,0,0),
-d(2034,3,18,14,0,0),
-d(2034,9,30,14,0,0),
-d(2035,3,17,14,0,0),
-d(2035,10,6,14,0,0),
-d(2036,3,15,14,0,0),
-d(2036,10,4,14,0,0),
-d(2037,3,14,14,0,0),
-d(2037,10,3,14,0,0),
- ]
-
- _transition_info = [
-i(44040,0,'LMT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
-i(45900,0,'CHAST'),
-i(49500,3600,'CHADT'),
- ]
-
-Chatham = Chatham()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Easter.py b/vendor/pytz/zoneinfo/Pacific/Easter.py
deleted file mode 100644
index b265b32a..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Easter.py
+++ /dev/null
@@ -1,308 +0,0 @@
-'''tzinfo timezone information for Pacific/Easter.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Easter(DstTzInfo):
- '''Pacific/Easter timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Easter'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1932,9,1,7,17,28),
-d(1942,6,1,4,0,0),
-d(1942,8,1,5,0,0),
-d(1946,9,1,3,0,0),
-d(1968,11,3,4,0,0),
-d(1969,3,30,3,0,0),
-d(1969,11,23,4,0,0),
-d(1970,3,29,3,0,0),
-d(1970,10,11,4,0,0),
-d(1971,3,14,3,0,0),
-d(1971,10,10,4,0,0),
-d(1972,3,12,3,0,0),
-d(1972,10,15,4,0,0),
-d(1973,3,11,3,0,0),
-d(1973,9,30,4,0,0),
-d(1974,3,10,3,0,0),
-d(1974,10,13,4,0,0),
-d(1975,3,9,3,0,0),
-d(1975,10,12,4,0,0),
-d(1976,3,14,3,0,0),
-d(1976,10,10,4,0,0),
-d(1977,3,13,3,0,0),
-d(1977,10,9,4,0,0),
-d(1978,3,12,3,0,0),
-d(1978,10,15,4,0,0),
-d(1979,3,11,3,0,0),
-d(1979,10,14,4,0,0),
-d(1980,3,9,3,0,0),
-d(1980,10,12,4,0,0),
-d(1981,3,15,3,0,0),
-d(1981,10,11,4,0,0),
-d(1982,1,19,3,0,0),
-d(1982,3,14,3,0,0),
-d(1982,10,10,4,0,0),
-d(1983,3,13,3,0,0),
-d(1983,10,9,4,0,0),
-d(1984,3,11,3,0,0),
-d(1984,10,14,4,0,0),
-d(1985,3,10,3,0,0),
-d(1985,10,13,4,0,0),
-d(1986,3,9,3,0,0),
-d(1986,10,12,4,0,0),
-d(1987,4,12,3,0,0),
-d(1987,10,11,4,0,0),
-d(1988,3,13,3,0,0),
-d(1988,10,2,4,0,0),
-d(1989,3,12,3,0,0),
-d(1989,10,15,4,0,0),
-d(1990,3,18,3,0,0),
-d(1990,9,16,4,0,0),
-d(1991,3,10,3,0,0),
-d(1991,10,13,4,0,0),
-d(1992,3,15,3,0,0),
-d(1992,10,11,4,0,0),
-d(1993,3,14,3,0,0),
-d(1993,10,10,4,0,0),
-d(1994,3,13,3,0,0),
-d(1994,10,9,4,0,0),
-d(1995,3,12,3,0,0),
-d(1995,10,15,4,0,0),
-d(1996,3,10,3,0,0),
-d(1996,10,13,4,0,0),
-d(1997,3,30,3,0,0),
-d(1997,10,12,4,0,0),
-d(1998,3,15,3,0,0),
-d(1998,9,27,4,0,0),
-d(1999,4,4,3,0,0),
-d(1999,10,10,4,0,0),
-d(2000,3,12,3,0,0),
-d(2000,10,15,4,0,0),
-d(2001,3,11,3,0,0),
-d(2001,10,14,4,0,0),
-d(2002,3,10,3,0,0),
-d(2002,10,13,4,0,0),
-d(2003,3,9,3,0,0),
-d(2003,10,12,4,0,0),
-d(2004,3,14,3,0,0),
-d(2004,10,10,4,0,0),
-d(2005,3,13,3,0,0),
-d(2005,10,9,4,0,0),
-d(2006,3,12,3,0,0),
-d(2006,10,15,4,0,0),
-d(2007,3,11,3,0,0),
-d(2007,10,14,4,0,0),
-d(2008,3,9,3,0,0),
-d(2008,10,12,4,0,0),
-d(2009,3,15,3,0,0),
-d(2009,10,11,4,0,0),
-d(2010,3,14,3,0,0),
-d(2010,10,10,4,0,0),
-d(2011,3,13,3,0,0),
-d(2011,10,9,4,0,0),
-d(2012,3,11,3,0,0),
-d(2012,10,14,4,0,0),
-d(2013,3,10,3,0,0),
-d(2013,10,13,4,0,0),
-d(2014,3,9,3,0,0),
-d(2014,10,12,4,0,0),
-d(2015,3,15,3,0,0),
-d(2015,10,11,4,0,0),
-d(2016,3,13,3,0,0),
-d(2016,10,9,4,0,0),
-d(2017,3,12,3,0,0),
-d(2017,10,15,4,0,0),
-d(2018,3,11,3,0,0),
-d(2018,10,14,4,0,0),
-d(2019,3,10,3,0,0),
-d(2019,10,13,4,0,0),
-d(2020,3,15,3,0,0),
-d(2020,10,11,4,0,0),
-d(2021,3,14,3,0,0),
-d(2021,10,10,4,0,0),
-d(2022,3,13,3,0,0),
-d(2022,10,9,4,0,0),
-d(2023,3,12,3,0,0),
-d(2023,10,15,4,0,0),
-d(2024,3,10,3,0,0),
-d(2024,10,13,4,0,0),
-d(2025,3,9,3,0,0),
-d(2025,10,12,4,0,0),
-d(2026,3,15,3,0,0),
-d(2026,10,11,4,0,0),
-d(2027,3,14,3,0,0),
-d(2027,10,10,4,0,0),
-d(2028,3,12,3,0,0),
-d(2028,10,15,4,0,0),
-d(2029,3,11,3,0,0),
-d(2029,10,14,4,0,0),
-d(2030,3,10,3,0,0),
-d(2030,10,13,4,0,0),
-d(2031,3,9,3,0,0),
-d(2031,10,12,4,0,0),
-d(2032,3,14,3,0,0),
-d(2032,10,10,4,0,0),
-d(2033,3,13,3,0,0),
-d(2033,10,9,4,0,0),
-d(2034,3,12,3,0,0),
-d(2034,10,15,4,0,0),
-d(2035,3,11,3,0,0),
-d(2035,10,14,4,0,0),
-d(2036,3,9,3,0,0),
-d(2036,10,12,4,0,0),
-d(2037,3,15,3,0,0),
-d(2037,10,11,4,0,0),
- ]
-
- _transition_info = [
-i(-26220,0,'MMT'),
-i(-21600,4620,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-25200,0,'EAST'),
-i(-21600,3600,'EASST'),
-i(-18000,7200,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
-i(-21600,0,'EAST'),
-i(-18000,3600,'EASST'),
- ]
-
-Easter = Easter()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Efate.py b/vendor/pytz/zoneinfo/Pacific/Efate.py
deleted file mode 100644
index 51421914..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Efate.py
+++ /dev/null
@@ -1,62 +0,0 @@
-'''tzinfo timezone information for Pacific/Efate.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Efate(DstTzInfo):
- '''Pacific/Efate timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Efate'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,12,12,46,44),
-d(1983,9,24,13,0,0),
-d(1984,3,24,12,0,0),
-d(1984,10,22,13,0,0),
-d(1985,3,23,12,0,0),
-d(1985,9,28,13,0,0),
-d(1986,3,22,12,0,0),
-d(1986,9,27,13,0,0),
-d(1987,3,28,12,0,0),
-d(1987,9,26,13,0,0),
-d(1988,3,26,12,0,0),
-d(1988,9,24,13,0,0),
-d(1989,3,25,12,0,0),
-d(1989,9,23,13,0,0),
-d(1990,3,24,12,0,0),
-d(1990,9,22,13,0,0),
-d(1991,3,23,12,0,0),
-d(1991,9,28,13,0,0),
-d(1992,1,25,12,0,0),
-d(1992,10,24,13,0,0),
-d(1993,1,23,12,0,0),
- ]
-
- _transition_info = [
-i(40380,0,'LMT'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
-i(43200,3600,'VUST'),
-i(39600,0,'VUT'),
- ]
-
-Efate = Efate()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Enderbury.py b/vendor/pytz/zoneinfo/Pacific/Enderbury.py
deleted file mode 100644
index 4c7d28f5..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Enderbury.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Enderbury.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Enderbury(DstTzInfo):
- '''Pacific/Enderbury timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Enderbury'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1979,10,1,12,0,0),
-d(1995,1,1,11,0,0),
- ]
-
- _transition_info = [
-i(-43200,0,'PHOT'),
-i(-39600,0,'PHOT'),
-i(46800,0,'PHOT'),
- ]
-
-Enderbury = Enderbury()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Fakaofo.py b/vendor/pytz/zoneinfo/Pacific/Fakaofo.py
deleted file mode 100644
index 6d39db7f..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Fakaofo.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Fakaofo.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Fakaofo(StaticTzInfo):
- '''Pacific/Fakaofo timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Fakaofo'
- _utcoffset = timedelta(seconds=-36000)
- _tzname = 'TKT'
-
-Fakaofo = Fakaofo()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Fiji.py b/vendor/pytz/zoneinfo/Pacific/Fiji.py
deleted file mode 100644
index 8f416d9e..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Fiji.py
+++ /dev/null
@@ -1,30 +0,0 @@
-'''tzinfo timezone information for Pacific/Fiji.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Fiji(DstTzInfo):
- '''Pacific/Fiji timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Fiji'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,10,25,12,6,20),
-d(1998,10,31,14,0,0),
-d(1999,2,27,14,0,0),
-d(1999,11,6,14,0,0),
-d(2000,2,26,14,0,0),
- ]
-
- _transition_info = [
-i(42840,0,'LMT'),
-i(43200,0,'FJT'),
-i(46800,3600,'FJST'),
-i(43200,0,'FJT'),
-i(46800,3600,'FJST'),
-i(43200,0,'FJT'),
- ]
-
-Fiji = Fiji()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Funafuti.py b/vendor/pytz/zoneinfo/Pacific/Funafuti.py
deleted file mode 100644
index 9801538c..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Funafuti.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Funafuti.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Funafuti(StaticTzInfo):
- '''Pacific/Funafuti timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Funafuti'
- _utcoffset = timedelta(seconds=43200)
- _tzname = 'TVT'
-
-Funafuti = Funafuti()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Galapagos.py b/vendor/pytz/zoneinfo/Pacific/Galapagos.py
deleted file mode 100644
index 9102a8e8..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Galapagos.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Galapagos.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Galapagos(DstTzInfo):
- '''Pacific/Galapagos timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Galapagos'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1931,1,1,5,58,24),
-d(1986,1,1,5,0,0),
- ]
-
- _transition_info = [
-i(-21480,0,'LMT'),
-i(-18000,0,'ECT'),
-i(-21600,0,'GALT'),
- ]
-
-Galapagos = Galapagos()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Gambier.py b/vendor/pytz/zoneinfo/Pacific/Gambier.py
deleted file mode 100644
index fd04b894..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Gambier.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Gambier.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Gambier(DstTzInfo):
- '''Pacific/Gambier timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Gambier'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,10,1,8,59,48),
- ]
-
- _transition_info = [
-i(-32400,0,'LMT'),
-i(-32400,0,'GAMT'),
- ]
-
-Gambier = Gambier()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Guadalcanal.py b/vendor/pytz/zoneinfo/Pacific/Guadalcanal.py
deleted file mode 100644
index e88689c7..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Guadalcanal.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Guadalcanal.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guadalcanal(DstTzInfo):
- '''Pacific/Guadalcanal timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Guadalcanal'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,9,30,13,20,12),
- ]
-
- _transition_info = [
-i(38400,0,'LMT'),
-i(39600,0,'SBT'),
- ]
-
-Guadalcanal = Guadalcanal()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Guam.py b/vendor/pytz/zoneinfo/Pacific/Guam.py
deleted file mode 100644
index 7ea7b706..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Guam.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Guam.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Guam(DstTzInfo):
- '''Pacific/Guam timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Guam'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(2000,12,22,14,0,0),
- ]
-
- _transition_info = [
-i(36000,0,'GST'),
-i(36000,0,'ChST'),
- ]
-
-Guam = Guam()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Honolulu.py b/vendor/pytz/zoneinfo/Pacific/Honolulu.py
deleted file mode 100644
index e32cc01a..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Honolulu.py
+++ /dev/null
@@ -1,32 +0,0 @@
-'''tzinfo timezone information for Pacific/Honolulu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Honolulu(DstTzInfo):
- '''Pacific/Honolulu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Honolulu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1933,4,30,12,30,0),
-d(1933,5,21,11,30,0),
-d(1942,2,9,12,30,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,11,30,0),
-d(1947,6,8,12,30,0),
- ]
-
- _transition_info = [
-i(-37800,0,'HST'),
-i(-34200,3600,'HDT'),
-i(-37800,0,'HST'),
-i(-34200,3600,'HWT'),
-i(-34200,3600,'HPT'),
-i(-37800,0,'HST'),
-i(-36000,0,'HST'),
- ]
-
-Honolulu = Honolulu()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Johnston.py b/vendor/pytz/zoneinfo/Pacific/Johnston.py
deleted file mode 100644
index a4a29579..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Johnston.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Johnston.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Johnston(StaticTzInfo):
- '''Pacific/Johnston timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Johnston'
- _utcoffset = timedelta(seconds=-36000)
- _tzname = 'HST'
-
-Johnston = Johnston()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Kiritimati.py b/vendor/pytz/zoneinfo/Pacific/Kiritimati.py
deleted file mode 100644
index f1e45643..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Kiritimati.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Kiritimati.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kiritimati(DstTzInfo):
- '''Pacific/Kiritimati timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Kiritimati'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1979,10,1,10,40,0),
-d(1995,1,1,10,0,0),
- ]
-
- _transition_info = [
-i(-38400,0,'LINT'),
-i(-36000,0,'LINT'),
-i(50400,0,'LINT'),
- ]
-
-Kiritimati = Kiritimati()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Kosrae.py b/vendor/pytz/zoneinfo/Pacific/Kosrae.py
deleted file mode 100644
index 76e694c9..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Kosrae.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Kosrae.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kosrae(DstTzInfo):
- '''Pacific/Kosrae timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Kosrae'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,9,30,13,0,0),
-d(1998,12,31,12,0,0),
- ]
-
- _transition_info = [
-i(39600,0,'KOST'),
-i(43200,0,'KOST'),
-i(39600,0,'KOST'),
- ]
-
-Kosrae = Kosrae()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Kwajalein.py b/vendor/pytz/zoneinfo/Pacific/Kwajalein.py
deleted file mode 100644
index 65c4b031..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Kwajalein.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Kwajalein.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Kwajalein(DstTzInfo):
- '''Pacific/Kwajalein timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Kwajalein'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,9,30,13,0,0),
-d(1993,8,20,12,0,0),
- ]
-
- _transition_info = [
-i(39600,0,'MHT'),
-i(-43200,0,'KWAT'),
-i(43200,0,'MHT'),
- ]
-
-Kwajalein = Kwajalein()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Majuro.py b/vendor/pytz/zoneinfo/Pacific/Majuro.py
deleted file mode 100644
index e2c09901..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Majuro.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Majuro.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Majuro(DstTzInfo):
- '''Pacific/Majuro timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Majuro'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,9,30,13,0,0),
- ]
-
- _transition_info = [
-i(39600,0,'MHT'),
-i(43200,0,'MHT'),
- ]
-
-Majuro = Majuro()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Marquesas.py b/vendor/pytz/zoneinfo/Pacific/Marquesas.py
deleted file mode 100644
index 943211a7..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Marquesas.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Marquesas.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Marquesas(DstTzInfo):
- '''Pacific/Marquesas timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Marquesas'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,10,1,9,18,0),
- ]
-
- _transition_info = [
-i(-33480,0,'LMT'),
-i(-34200,0,'MART'),
- ]
-
-Marquesas = Marquesas()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Midway.py b/vendor/pytz/zoneinfo/Pacific/Midway.py
deleted file mode 100644
index 04570f01..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Midway.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Pacific/Midway.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Midway(DstTzInfo):
- '''Pacific/Midway timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Midway'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1956,6,3,11,0,0),
-d(1956,9,2,10,0,0),
-d(1967,4,1,11,0,0),
-d(1983,11,30,11,0,0),
- ]
-
- _transition_info = [
-i(-39600,0,'NST'),
-i(-36000,3600,'NDT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-39600,0,'SST'),
- ]
-
-Midway = Midway()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Nauru.py b/vendor/pytz/zoneinfo/Pacific/Nauru.py
deleted file mode 100644
index 97ddde30..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Nauru.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Pacific/Nauru.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Nauru(DstTzInfo):
- '''Pacific/Nauru timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Nauru'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1921,1,14,12,52,20),
-d(1942,3,14,12,30,0),
-d(1944,8,14,15,0,0),
-d(1979,4,30,12,30,0),
- ]
-
- _transition_info = [
-i(40080,0,'LMT'),
-i(41400,0,'NRT'),
-i(32400,0,'JST'),
-i(41400,0,'NRT'),
-i(43200,0,'NRT'),
- ]
-
-Nauru = Nauru()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Niue.py b/vendor/pytz/zoneinfo/Pacific/Niue.py
deleted file mode 100644
index 6449e84f..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Niue.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Niue.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Niue(DstTzInfo):
- '''Pacific/Niue timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Niue'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1951,1,1,11,20,0),
-d(1978,10,1,11,30,0),
- ]
-
- _transition_info = [
-i(-40800,0,'NUT'),
-i(-41400,0,'NUT'),
-i(-39600,0,'NUT'),
- ]
-
-Niue = Niue()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Norfolk.py b/vendor/pytz/zoneinfo/Pacific/Norfolk.py
deleted file mode 100644
index 8eda51a2..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Norfolk.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Norfolk.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Norfolk(DstTzInfo):
- '''Pacific/Norfolk timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Norfolk'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1950,12,31,12,48,0),
- ]
-
- _transition_info = [
-i(40320,0,'NMT'),
-i(41400,0,'NFT'),
- ]
-
-Norfolk = Norfolk()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Noumea.py b/vendor/pytz/zoneinfo/Pacific/Noumea.py
deleted file mode 100644
index 32efeea0..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Noumea.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Pacific/Noumea.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Noumea(DstTzInfo):
- '''Pacific/Noumea timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Noumea'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,12,12,54,12),
-d(1977,12,3,13,0,0),
-d(1978,2,26,12,0,0),
-d(1978,12,2,13,0,0),
-d(1979,2,26,12,0,0),
-d(1996,11,30,15,0,0),
-d(1997,3,1,15,0,0),
- ]
-
- _transition_info = [
-i(39960,0,'LMT'),
-i(39600,0,'NCT'),
-i(43200,3600,'NCST'),
-i(39600,0,'NCT'),
-i(43200,3600,'NCST'),
-i(39600,0,'NCT'),
-i(43200,3600,'NCST'),
-i(39600,0,'NCT'),
- ]
-
-Noumea = Noumea()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Pago_Pago.py b/vendor/pytz/zoneinfo/Pacific/Pago_Pago.py
deleted file mode 100644
index d0fa9c02..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Pago_Pago.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Pacific/Pago_Pago.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pago_Pago(DstTzInfo):
- '''Pacific/Pago_Pago timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Pago_Pago'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,1,1,11,22,48),
-d(1950,1,1,11,30,0),
-d(1967,4,1,11,0,0),
-d(1983,11,30,11,0,0),
- ]
-
- _transition_info = [
-i(-40980,0,'LMT'),
-i(-41400,0,'SAMT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-39600,0,'SST'),
- ]
-
-Pago_Pago = Pago_Pago()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Palau.py b/vendor/pytz/zoneinfo/Pacific/Palau.py
deleted file mode 100644
index b873d880..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Palau.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Palau.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Palau(StaticTzInfo):
- '''Pacific/Palau timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Palau'
- _utcoffset = timedelta(seconds=32400)
- _tzname = 'PWT'
-
-Palau = Palau()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Pitcairn.py b/vendor/pytz/zoneinfo/Pacific/Pitcairn.py
deleted file mode 100644
index 125b8a8e..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Pitcairn.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Pitcairn.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pitcairn(DstTzInfo):
- '''Pacific/Pitcairn timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Pitcairn'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1998,4,27,8,30,0),
- ]
-
- _transition_info = [
-i(-30600,0,'PNT'),
-i(-28800,0,'PST'),
- ]
-
-Pitcairn = Pitcairn()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Ponape.py b/vendor/pytz/zoneinfo/Pacific/Ponape.py
deleted file mode 100644
index 4cd6ad8e..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Ponape.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Ponape.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Ponape(StaticTzInfo):
- '''Pacific/Ponape timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Ponape'
- _utcoffset = timedelta(seconds=39600)
- _tzname = 'PONT'
-
-Ponape = Ponape()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Port_Moresby.py b/vendor/pytz/zoneinfo/Pacific/Port_Moresby.py
deleted file mode 100644
index 8510d854..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Port_Moresby.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Port_Moresby.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Port_Moresby(StaticTzInfo):
- '''Pacific/Port_Moresby timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Port_Moresby'
- _utcoffset = timedelta(seconds=36000)
- _tzname = 'PGT'
-
-Port_Moresby = Port_Moresby()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Rarotonga.py b/vendor/pytz/zoneinfo/Pacific/Rarotonga.py
deleted file mode 100644
index d6106e9c..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Rarotonga.py
+++ /dev/null
@@ -1,72 +0,0 @@
-'''tzinfo timezone information for Pacific/Rarotonga.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Rarotonga(DstTzInfo):
- '''Pacific/Rarotonga timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Rarotonga'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1978,11,12,10,30,0),
-d(1979,3,4,9,30,0),
-d(1979,10,28,10,0,0),
-d(1980,3,2,9,30,0),
-d(1980,10,26,10,0,0),
-d(1981,3,1,9,30,0),
-d(1981,10,25,10,0,0),
-d(1982,3,7,9,30,0),
-d(1982,10,31,10,0,0),
-d(1983,3,6,9,30,0),
-d(1983,10,30,10,0,0),
-d(1984,3,4,9,30,0),
-d(1984,10,28,10,0,0),
-d(1985,3,3,9,30,0),
-d(1985,10,27,10,0,0),
-d(1986,3,2,9,30,0),
-d(1986,10,26,10,0,0),
-d(1987,3,1,9,30,0),
-d(1987,10,25,10,0,0),
-d(1988,3,6,9,30,0),
-d(1988,10,30,10,0,0),
-d(1989,3,5,9,30,0),
-d(1989,10,29,10,0,0),
-d(1990,3,4,9,30,0),
-d(1990,10,28,10,0,0),
-d(1991,3,3,9,30,0),
- ]
-
- _transition_info = [
-i(-37800,0,'CKT'),
-i(-34200,3600,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
-i(-34200,1800,'CKHST'),
-i(-36000,0,'CKT'),
- ]
-
-Rarotonga = Rarotonga()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Saipan.py b/vendor/pytz/zoneinfo/Pacific/Saipan.py
deleted file mode 100644
index 9c1e93ec..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Saipan.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''tzinfo timezone information for Pacific/Saipan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Saipan(DstTzInfo):
- '''Pacific/Saipan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Saipan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1969,9,30,15,0,0),
-d(2000,12,22,14,0,0),
- ]
-
- _transition_info = [
-i(32400,0,'MPT'),
-i(36000,0,'MPT'),
-i(36000,0,'ChST'),
- ]
-
-Saipan = Saipan()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Samoa.py b/vendor/pytz/zoneinfo/Pacific/Samoa.py
deleted file mode 100644
index 91f1ab54..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Samoa.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for Pacific/Samoa.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Samoa(DstTzInfo):
- '''Pacific/Samoa timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Samoa'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,1,1,11,22,48),
-d(1950,1,1,11,30,0),
-d(1967,4,1,11,0,0),
-d(1983,11,30,11,0,0),
- ]
-
- _transition_info = [
-i(-40980,0,'LMT'),
-i(-41400,0,'SAMT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-39600,0,'SST'),
- ]
-
-Samoa = Samoa()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Tahiti.py b/vendor/pytz/zoneinfo/Pacific/Tahiti.py
deleted file mode 100644
index e930a5bf..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Tahiti.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''tzinfo timezone information for Pacific/Tahiti.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tahiti(DstTzInfo):
- '''Pacific/Tahiti timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Tahiti'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,10,1,9,58,16),
- ]
-
- _transition_info = [
-i(-35880,0,'LMT'),
-i(-36000,0,'TAHT'),
- ]
-
-Tahiti = Tahiti()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Tarawa.py b/vendor/pytz/zoneinfo/Pacific/Tarawa.py
deleted file mode 100644
index 70a1ea4c..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Tarawa.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Tarawa.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Tarawa(StaticTzInfo):
- '''Pacific/Tarawa timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Tarawa'
- _utcoffset = timedelta(seconds=43200)
- _tzname = 'GILT'
-
-Tarawa = Tarawa()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Tongatapu.py b/vendor/pytz/zoneinfo/Pacific/Tongatapu.py
deleted file mode 100644
index 85e3d258..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Tongatapu.py
+++ /dev/null
@@ -1,34 +0,0 @@
-'''tzinfo timezone information for Pacific/Tongatapu.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Tongatapu(DstTzInfo):
- '''Pacific/Tongatapu timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Pacific/Tongatapu'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1940,12,31,11,40,0),
-d(1999,10,6,13,0,0),
-d(2000,3,18,13,0,0),
-d(2000,11,4,13,0,0),
-d(2001,1,27,12,0,0),
-d(2001,11,3,13,0,0),
-d(2002,1,26,12,0,0),
- ]
-
- _transition_info = [
-i(44400,0,'TOT'),
-i(46800,0,'TOT'),
-i(50400,3600,'TOST'),
-i(46800,0,'TOT'),
-i(50400,3600,'TOST'),
-i(46800,0,'TOT'),
-i(50400,3600,'TOST'),
-i(46800,0,'TOT'),
- ]
-
-Tongatapu = Tongatapu()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Truk.py b/vendor/pytz/zoneinfo/Pacific/Truk.py
deleted file mode 100644
index e6631a2b..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Truk.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Truk.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Truk(StaticTzInfo):
- '''Pacific/Truk timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Truk'
- _utcoffset = timedelta(seconds=36000)
- _tzname = 'TRUT'
-
-Truk = Truk()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Wake.py b/vendor/pytz/zoneinfo/Pacific/Wake.py
deleted file mode 100644
index a7e296c7..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Wake.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Wake.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Wake(StaticTzInfo):
- '''Pacific/Wake timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Wake'
- _utcoffset = timedelta(seconds=43200)
- _tzname = 'WAKT'
-
-Wake = Wake()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Wallis.py b/vendor/pytz/zoneinfo/Pacific/Wallis.py
deleted file mode 100644
index 76f52519..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Wallis.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Wallis.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Wallis(StaticTzInfo):
- '''Pacific/Wallis timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Wallis'
- _utcoffset = timedelta(seconds=43200)
- _tzname = 'WFT'
-
-Wallis = Wallis()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/Yap.py b/vendor/pytz/zoneinfo/Pacific/Yap.py
deleted file mode 100644
index 98152b50..00000000
--- a/vendor/pytz/zoneinfo/Pacific/Yap.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Pacific/Yap.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Yap(StaticTzInfo):
- '''Pacific/Yap timezone definition. See datetime.tzinfo for details'''
- zone = 'Pacific/Yap'
- _utcoffset = timedelta(seconds=36000)
- _tzname = 'TRUT'
-
-Yap = Yap()
-
diff --git a/vendor/pytz/zoneinfo/Pacific/__init__.py b/vendor/pytz/zoneinfo/Pacific/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/Poland.py b/vendor/pytz/zoneinfo/Poland.py
deleted file mode 100644
index f3b95d38..00000000
--- a/vendor/pytz/zoneinfo/Poland.py
+++ /dev/null
@@ -1,354 +0,0 @@
-'''tzinfo timezone information for Poland.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Poland(DstTzInfo):
- '''Poland timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Poland'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1915,8,4,22,36,0),
-d(1916,4,30,22,0,0),
-d(1916,9,30,23,0,0),
-d(1917,4,16,1,0,0),
-d(1917,9,17,1,0,0),
-d(1918,4,15,1,0,0),
-d(1918,9,16,1,0,0),
-d(1919,4,15,0,0,0),
-d(1919,9,16,0,0,0),
-d(1922,5,31,22,0,0),
-d(1940,6,23,1,0,0),
-d(1942,11,2,1,0,0),
-d(1943,3,29,1,0,0),
-d(1943,10,4,1,0,0),
-d(1944,4,3,1,0,0),
-d(1944,9,30,22,0,0),
-d(1944,10,4,0,0,0),
-d(1945,4,28,23,0,0),
-d(1945,10,31,22,0,0),
-d(1946,4,13,23,0,0),
-d(1946,10,7,1,0,0),
-d(1947,5,4,1,0,0),
-d(1947,10,5,1,0,0),
-d(1948,4,18,1,0,0),
-d(1948,10,3,1,0,0),
-d(1949,4,10,1,0,0),
-d(1949,10,2,1,0,0),
-d(1957,6,2,0,0,0),
-d(1957,9,29,0,0,0),
-d(1958,3,30,0,0,0),
-d(1958,9,28,0,0,0),
-d(1959,5,31,0,0,0),
-d(1959,10,4,0,0,0),
-d(1960,4,3,0,0,0),
-d(1960,10,2,0,0,0),
-d(1961,5,28,0,0,0),
-d(1961,10,1,0,0,0),
-d(1962,5,27,0,0,0),
-d(1962,9,30,0,0,0),
-d(1963,5,26,0,0,0),
-d(1963,9,29,0,0,0),
-d(1964,5,31,0,0,0),
-d(1964,9,27,0,0,0),
-d(1976,12,31,23,0,0),
-d(1977,4,3,0,0,0),
-d(1977,9,25,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,1,0,0,0),
-d(1979,9,30,0,0,0),
-d(1980,4,6,0,0,0),
-d(1980,9,28,0,0,0),
-d(1981,3,29,0,0,0),
-d(1981,9,27,0,0,0),
-d(1982,3,28,0,0,0),
-d(1982,9,26,0,0,0),
-d(1983,3,27,0,0,0),
-d(1983,9,25,0,0,0),
-d(1984,3,25,0,0,0),
-d(1984,9,30,0,0,0),
-d(1985,3,31,0,0,0),
-d(1985,9,29,0,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1987,12,31,23,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(5040,0,'WMT'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
- ]
-
-Poland = Poland()
-
diff --git a/vendor/pytz/zoneinfo/Portugal.py b/vendor/pytz/zoneinfo/Portugal.py
deleted file mode 100644
index 24cb4801..00000000
--- a/vendor/pytz/zoneinfo/Portugal.py
+++ /dev/null
@@ -1,462 +0,0 @@
-'''tzinfo timezone information for Portugal.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Portugal(DstTzInfo):
- '''Portugal timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Portugal'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1912,1,1,0,36,32),
-d(1916,6,17,23,0,0),
-d(1916,11,1,0,0,0),
-d(1917,2,28,23,0,0),
-d(1917,10,14,23,0,0),
-d(1918,3,1,23,0,0),
-d(1918,10,14,23,0,0),
-d(1919,2,28,23,0,0),
-d(1919,10,14,23,0,0),
-d(1920,2,29,23,0,0),
-d(1920,10,14,23,0,0),
-d(1921,2,28,23,0,0),
-d(1921,10,14,23,0,0),
-d(1924,4,16,23,0,0),
-d(1924,10,14,23,0,0),
-d(1926,4,17,23,0,0),
-d(1926,10,2,23,0,0),
-d(1927,4,9,23,0,0),
-d(1927,10,1,23,0,0),
-d(1928,4,14,23,0,0),
-d(1928,10,6,23,0,0),
-d(1929,4,20,23,0,0),
-d(1929,10,5,23,0,0),
-d(1931,4,18,23,0,0),
-d(1931,10,3,23,0,0),
-d(1932,4,2,23,0,0),
-d(1932,10,1,23,0,0),
-d(1934,4,7,23,0,0),
-d(1934,10,6,23,0,0),
-d(1935,3,30,23,0,0),
-d(1935,10,5,23,0,0),
-d(1936,4,18,23,0,0),
-d(1936,10,3,23,0,0),
-d(1937,4,3,23,0,0),
-d(1937,10,2,23,0,0),
-d(1938,3,26,23,0,0),
-d(1938,10,1,23,0,0),
-d(1939,4,15,23,0,0),
-d(1939,11,18,23,0,0),
-d(1940,2,24,23,0,0),
-d(1940,10,5,23,0,0),
-d(1941,4,5,23,0,0),
-d(1941,10,5,23,0,0),
-d(1942,3,14,23,0,0),
-d(1942,4,25,22,0,0),
-d(1942,8,15,22,0,0),
-d(1942,10,24,23,0,0),
-d(1943,3,13,23,0,0),
-d(1943,4,17,22,0,0),
-d(1943,8,28,22,0,0),
-d(1943,10,30,23,0,0),
-d(1944,3,11,23,0,0),
-d(1944,4,22,22,0,0),
-d(1944,8,26,22,0,0),
-d(1944,10,28,23,0,0),
-d(1945,3,10,23,0,0),
-d(1945,4,21,22,0,0),
-d(1945,8,25,22,0,0),
-d(1945,10,27,23,0,0),
-d(1946,4,6,23,0,0),
-d(1946,10,5,23,0,0),
-d(1947,4,6,2,0,0),
-d(1947,10,5,2,0,0),
-d(1948,4,4,2,0,0),
-d(1948,10,3,2,0,0),
-d(1949,4,3,2,0,0),
-d(1949,10,2,2,0,0),
-d(1951,4,1,2,0,0),
-d(1951,10,7,2,0,0),
-d(1952,4,6,2,0,0),
-d(1952,10,5,2,0,0),
-d(1953,4,5,2,0,0),
-d(1953,10,4,2,0,0),
-d(1954,4,4,2,0,0),
-d(1954,10,3,2,0,0),
-d(1955,4,3,2,0,0),
-d(1955,10,2,2,0,0),
-d(1956,4,1,2,0,0),
-d(1956,10,7,2,0,0),
-d(1957,4,7,2,0,0),
-d(1957,10,6,2,0,0),
-d(1958,4,6,2,0,0),
-d(1958,10,5,2,0,0),
-d(1959,4,5,2,0,0),
-d(1959,10,4,2,0,0),
-d(1960,4,3,2,0,0),
-d(1960,10,2,2,0,0),
-d(1961,4,2,2,0,0),
-d(1961,10,1,2,0,0),
-d(1962,4,1,2,0,0),
-d(1962,10,7,2,0,0),
-d(1963,4,7,2,0,0),
-d(1963,10,6,2,0,0),
-d(1964,4,5,2,0,0),
-d(1964,10,4,2,0,0),
-d(1965,4,4,2,0,0),
-d(1965,10,3,2,0,0),
-d(1966,4,3,2,0,0),
-d(1976,9,26,0,0,0),
-d(1977,3,27,0,0,0),
-d(1977,9,25,0,0,0),
-d(1978,4,2,0,0,0),
-d(1978,10,1,0,0,0),
-d(1979,4,1,0,0,0),
-d(1979,9,30,1,0,0),
-d(1980,3,30,0,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,2,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(-2220,0,'LMT'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(7200,7200,'WEMT'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,0,'CET'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(7200,3600,'CEST'),
-i(3600,0,'CET'),
-i(3600,0,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-Portugal = Portugal()
-
diff --git a/vendor/pytz/zoneinfo/ROC.py b/vendor/pytz/zoneinfo/ROC.py
deleted file mode 100644
index 6aad5b5d..00000000
--- a/vendor/pytz/zoneinfo/ROC.py
+++ /dev/null
@@ -1,100 +0,0 @@
-'''tzinfo timezone information for ROC.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class ROC(DstTzInfo):
- '''ROC timezone definition. See datetime.tzinfo for details'''
-
- zone = 'ROC'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1945,4,30,16,0,0),
-d(1945,9,30,15,0,0),
-d(1946,4,30,16,0,0),
-d(1946,9,30,15,0,0),
-d(1947,4,30,16,0,0),
-d(1947,9,30,15,0,0),
-d(1948,4,30,16,0,0),
-d(1948,9,30,15,0,0),
-d(1949,4,30,16,0,0),
-d(1949,9,30,15,0,0),
-d(1950,4,30,16,0,0),
-d(1950,9,30,15,0,0),
-d(1951,4,30,16,0,0),
-d(1951,9,30,15,0,0),
-d(1952,2,29,16,0,0),
-d(1952,10,31,15,0,0),
-d(1953,3,31,16,0,0),
-d(1953,10,31,15,0,0),
-d(1954,3,31,16,0,0),
-d(1954,10,31,15,0,0),
-d(1955,3,31,16,0,0),
-d(1955,9,30,15,0,0),
-d(1956,3,31,16,0,0),
-d(1956,9,30,15,0,0),
-d(1957,3,31,16,0,0),
-d(1957,9,30,15,0,0),
-d(1958,3,31,16,0,0),
-d(1958,9,30,15,0,0),
-d(1959,3,31,16,0,0),
-d(1959,9,30,15,0,0),
-d(1960,5,31,16,0,0),
-d(1960,9,30,15,0,0),
-d(1961,5,31,16,0,0),
-d(1961,9,30,15,0,0),
-d(1974,3,31,16,0,0),
-d(1974,9,30,15,0,0),
-d(1975,3,31,16,0,0),
-d(1975,9,30,15,0,0),
-d(1980,6,29,16,0,0),
-d(1980,9,29,15,0,0),
- ]
-
- _transition_info = [
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
-i(32400,3600,'CDT'),
-i(28800,0,'CST'),
- ]
-
-ROC = ROC()
-
diff --git a/vendor/pytz/zoneinfo/ROK.py b/vendor/pytz/zoneinfo/ROK.py
deleted file mode 100644
index 6c867718..00000000
--- a/vendor/pytz/zoneinfo/ROK.py
+++ /dev/null
@@ -1,44 +0,0 @@
-'''tzinfo timezone information for ROK.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class ROK(DstTzInfo):
- '''ROK timezone definition. See datetime.tzinfo for details'''
-
- zone = 'ROK'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1904,11,30,15,30,0),
-d(1927,12,31,15,0,0),
-d(1931,12,31,15,30,0),
-d(1954,3,20,15,0,0),
-d(1960,5,14,16,0,0),
-d(1960,9,12,15,0,0),
-d(1961,8,9,16,0,0),
-d(1968,9,30,15,30,0),
-d(1987,5,9,15,0,0),
-d(1987,10,10,14,0,0),
-d(1988,5,7,15,0,0),
-d(1988,10,8,14,0,0),
- ]
-
- _transition_info = [
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(28800,0,'KST'),
-i(32400,3600,'KDT'),
-i(28800,0,'KST'),
-i(30600,0,'KST'),
-i(32400,0,'KST'),
-i(36000,3600,'KDT'),
-i(32400,0,'KST'),
-i(36000,3600,'KDT'),
-i(32400,0,'KST'),
- ]
-
-ROK = ROK()
-
diff --git a/vendor/pytz/zoneinfo/Singapore.py b/vendor/pytz/zoneinfo/Singapore.py
deleted file mode 100644
index a5780315..00000000
--- a/vendor/pytz/zoneinfo/Singapore.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''tzinfo timezone information for Singapore.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Singapore(DstTzInfo):
- '''Singapore timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Singapore'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,5,31,17,4,35),
-d(1932,12,31,17,0,0),
-d(1935,12,31,16,40,0),
-d(1941,8,31,16,40,0),
-d(1942,2,15,16,30,0),
-d(1945,9,11,15,0,0),
-d(1965,8,8,16,30,0),
-d(1981,12,31,16,30,0),
- ]
-
- _transition_info = [
-i(24900,0,'SMT'),
-i(25200,0,'MALT'),
-i(26400,1200,'MALST'),
-i(26400,0,'MALT'),
-i(27000,0,'MALT'),
-i(32400,0,'JST'),
-i(27000,0,'MALT'),
-i(27000,0,'SGT'),
-i(28800,0,'SGT'),
- ]
-
-Singapore = Singapore()
-
diff --git a/vendor/pytz/zoneinfo/Turkey.py b/vendor/pytz/zoneinfo/Turkey.py
deleted file mode 100644
index 70303e34..00000000
--- a/vendor/pytz/zoneinfo/Turkey.py
+++ /dev/null
@@ -1,362 +0,0 @@
-'''tzinfo timezone information for Turkey.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Turkey(DstTzInfo):
- '''Turkey timezone definition. See datetime.tzinfo for details'''
-
- zone = 'Turkey'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1910,9,30,22,3,4),
-d(1916,4,30,22,0,0),
-d(1916,9,30,21,0,0),
-d(1920,3,27,22,0,0),
-d(1920,10,24,21,0,0),
-d(1921,4,2,22,0,0),
-d(1921,10,2,21,0,0),
-d(1922,3,25,22,0,0),
-d(1922,10,7,21,0,0),
-d(1924,5,12,22,0,0),
-d(1924,9,30,21,0,0),
-d(1925,4,30,22,0,0),
-d(1925,9,30,21,0,0),
-d(1940,6,29,22,0,0),
-d(1940,10,4,21,0,0),
-d(1940,11,30,22,0,0),
-d(1941,9,20,21,0,0),
-d(1942,3,31,22,0,0),
-d(1942,10,31,21,0,0),
-d(1945,4,1,22,0,0),
-d(1945,10,7,21,0,0),
-d(1946,5,31,22,0,0),
-d(1946,9,30,21,0,0),
-d(1947,4,19,22,0,0),
-d(1947,10,4,21,0,0),
-d(1948,4,17,22,0,0),
-d(1948,10,2,21,0,0),
-d(1949,4,9,22,0,0),
-d(1949,10,1,21,0,0),
-d(1950,4,18,22,0,0),
-d(1950,10,7,21,0,0),
-d(1951,4,21,22,0,0),
-d(1951,10,7,21,0,0),
-d(1962,7,14,22,0,0),
-d(1962,10,7,21,0,0),
-d(1964,5,14,22,0,0),
-d(1964,9,30,21,0,0),
-d(1970,5,2,22,0,0),
-d(1970,10,3,21,0,0),
-d(1971,5,1,22,0,0),
-d(1971,10,2,21,0,0),
-d(1972,5,6,22,0,0),
-d(1972,10,7,21,0,0),
-d(1973,6,2,23,0,0),
-d(1973,11,4,0,0,0),
-d(1974,3,31,0,0,0),
-d(1974,11,3,2,0,0),
-d(1975,3,29,22,0,0),
-d(1975,10,25,21,0,0),
-d(1976,5,31,22,0,0),
-d(1976,10,30,21,0,0),
-d(1977,4,2,22,0,0),
-d(1977,10,15,21,0,0),
-d(1978,4,1,22,0,0),
-d(1978,10,14,21,0,0),
-d(1979,10,14,20,0,0),
-d(1980,4,6,0,0,0),
-d(1980,10,12,20,0,0),
-d(1981,3,29,0,0,0),
-d(1981,10,11,20,0,0),
-d(1982,3,28,0,0,0),
-d(1982,10,10,20,0,0),
-d(1983,7,30,21,0,0),
-d(1983,10,1,20,0,0),
-d(1985,4,19,21,0,0),
-d(1985,9,27,21,0,0),
-d(1986,3,30,0,0,0),
-d(1986,9,28,0,0,0),
-d(1987,3,29,0,0,0),
-d(1987,9,27,0,0,0),
-d(1988,3,27,0,0,0),
-d(1988,9,25,0,0,0),
-d(1989,3,26,0,0,0),
-d(1989,9,24,0,0,0),
-d(1990,3,25,0,0,0),
-d(1990,9,30,0,0,0),
-d(1990,12,31,22,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(7020,0,'IMT'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(14400,7200,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(14400,3600,'TRST'),
-i(10800,0,'TRT'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
-i(10800,3600,'EEST'),
-i(7200,0,'EET'),
- ]
-
-Turkey = Turkey()
-
diff --git a/vendor/pytz/zoneinfo/UCT.py b/vendor/pytz/zoneinfo/UCT.py
deleted file mode 100644
index 1d62aff0..00000000
--- a/vendor/pytz/zoneinfo/UCT.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for UCT.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class UCT(StaticTzInfo):
- '''UCT timezone definition. See datetime.tzinfo for details'''
- zone = 'UCT'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UCT'
-
-UCT = UCT()
-
diff --git a/vendor/pytz/zoneinfo/US/Alaska.py b/vendor/pytz/zoneinfo/US/Alaska.py
deleted file mode 100644
index c004f981..00000000
--- a/vendor/pytz/zoneinfo/US/Alaska.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for US/Alaska.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Alaska(DstTzInfo):
- '''US/Alaska timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Alaska'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,12,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,11,0,0),
-d(1967,4,1,10,0,0),
-d(1969,4,27,12,0,0),
-d(1969,10,26,11,0,0),
-d(1970,4,26,12,0,0),
-d(1970,10,25,11,0,0),
-d(1971,4,25,12,0,0),
-d(1971,10,31,11,0,0),
-d(1972,4,30,12,0,0),
-d(1972,10,29,11,0,0),
-d(1973,4,29,12,0,0),
-d(1973,10,28,11,0,0),
-d(1974,1,6,12,0,0),
-d(1974,10,27,11,0,0),
-d(1975,2,23,12,0,0),
-d(1975,10,26,11,0,0),
-d(1976,4,25,12,0,0),
-d(1976,10,31,11,0,0),
-d(1977,4,24,12,0,0),
-d(1977,10,30,11,0,0),
-d(1978,4,30,12,0,0),
-d(1978,10,29,11,0,0),
-d(1979,4,29,12,0,0),
-d(1979,10,28,11,0,0),
-d(1980,4,27,12,0,0),
-d(1980,10,26,11,0,0),
-d(1981,4,26,12,0,0),
-d(1981,10,25,11,0,0),
-d(1982,4,25,12,0,0),
-d(1982,10,31,11,0,0),
-d(1983,4,24,12,0,0),
-d(1983,10,30,11,0,0),
-d(1983,11,30,9,0,0),
-d(1984,4,29,11,0,0),
-d(1984,10,28,10,0,0),
-d(1985,4,28,11,0,0),
-d(1985,10,27,10,0,0),
-d(1986,4,27,11,0,0),
-d(1986,10,26,10,0,0),
-d(1987,4,5,11,0,0),
-d(1987,10,25,10,0,0),
-d(1988,4,3,11,0,0),
-d(1988,10,30,10,0,0),
-d(1989,4,2,11,0,0),
-d(1989,10,29,10,0,0),
-d(1990,4,1,11,0,0),
-d(1990,10,28,10,0,0),
-d(1991,4,7,11,0,0),
-d(1991,10,27,10,0,0),
-d(1992,4,5,11,0,0),
-d(1992,10,25,10,0,0),
-d(1993,4,4,11,0,0),
-d(1993,10,31,10,0,0),
-d(1994,4,3,11,0,0),
-d(1994,10,30,10,0,0),
-d(1995,4,2,11,0,0),
-d(1995,10,29,10,0,0),
-d(1996,4,7,11,0,0),
-d(1996,10,27,10,0,0),
-d(1997,4,6,11,0,0),
-d(1997,10,26,10,0,0),
-d(1998,4,5,11,0,0),
-d(1998,10,25,10,0,0),
-d(1999,4,4,11,0,0),
-d(1999,10,31,10,0,0),
-d(2000,4,2,11,0,0),
-d(2000,10,29,10,0,0),
-d(2001,4,1,11,0,0),
-d(2001,10,28,10,0,0),
-d(2002,4,7,11,0,0),
-d(2002,10,27,10,0,0),
-d(2003,4,6,11,0,0),
-d(2003,10,26,10,0,0),
-d(2004,4,4,11,0,0),
-d(2004,10,31,10,0,0),
-d(2005,4,3,11,0,0),
-d(2005,10,30,10,0,0),
-d(2006,4,2,11,0,0),
-d(2006,10,29,10,0,0),
-d(2007,3,11,11,0,0),
-d(2007,11,4,10,0,0),
-d(2008,3,9,11,0,0),
-d(2008,11,2,10,0,0),
-d(2009,3,8,11,0,0),
-d(2009,11,1,10,0,0),
-d(2010,3,14,11,0,0),
-d(2010,11,7,10,0,0),
-d(2011,3,13,11,0,0),
-d(2011,11,6,10,0,0),
-d(2012,3,11,11,0,0),
-d(2012,11,4,10,0,0),
-d(2013,3,10,11,0,0),
-d(2013,11,3,10,0,0),
-d(2014,3,9,11,0,0),
-d(2014,11,2,10,0,0),
-d(2015,3,8,11,0,0),
-d(2015,11,1,10,0,0),
-d(2016,3,13,11,0,0),
-d(2016,11,6,10,0,0),
-d(2017,3,12,11,0,0),
-d(2017,11,5,10,0,0),
-d(2018,3,11,11,0,0),
-d(2018,11,4,10,0,0),
-d(2019,3,10,11,0,0),
-d(2019,11,3,10,0,0),
-d(2020,3,8,11,0,0),
-d(2020,11,1,10,0,0),
-d(2021,3,14,11,0,0),
-d(2021,11,7,10,0,0),
-d(2022,3,13,11,0,0),
-d(2022,11,6,10,0,0),
-d(2023,3,12,11,0,0),
-d(2023,11,5,10,0,0),
-d(2024,3,10,11,0,0),
-d(2024,11,3,10,0,0),
-d(2025,3,9,11,0,0),
-d(2025,11,2,10,0,0),
-d(2026,3,8,11,0,0),
-d(2026,11,1,10,0,0),
-d(2027,3,14,11,0,0),
-d(2027,11,7,10,0,0),
-d(2028,3,12,11,0,0),
-d(2028,11,5,10,0,0),
-d(2029,3,11,11,0,0),
-d(2029,11,4,10,0,0),
-d(2030,3,10,11,0,0),
-d(2030,11,3,10,0,0),
-d(2031,3,9,11,0,0),
-d(2031,11,2,10,0,0),
-d(2032,3,14,11,0,0),
-d(2032,11,7,10,0,0),
-d(2033,3,13,11,0,0),
-d(2033,11,6,10,0,0),
-d(2034,3,12,11,0,0),
-d(2034,11,5,10,0,0),
-d(2035,3,11,11,0,0),
-d(2035,11,4,10,0,0),
-d(2036,3,9,11,0,0),
-d(2036,11,2,10,0,0),
-d(2037,3,8,11,0,0),
-d(2037,11,1,10,0,0),
- ]
-
- _transition_info = [
-i(-36000,0,'CAT'),
-i(-32400,3600,'CAWT'),
-i(-32400,3600,'CAPT'),
-i(-36000,0,'CAT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-36000,0,'AHST'),
-i(-32400,3600,'AHDT'),
-i(-32400,0,'YST'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
-i(-28800,3600,'AKDT'),
-i(-32400,0,'AKST'),
- ]
-
-Alaska = Alaska()
-
diff --git a/vendor/pytz/zoneinfo/US/Aleutian.py b/vendor/pytz/zoneinfo/US/Aleutian.py
deleted file mode 100644
index 64f7fdc0..00000000
--- a/vendor/pytz/zoneinfo/US/Aleutian.py
+++ /dev/null
@@ -1,306 +0,0 @@
-'''tzinfo timezone information for US/Aleutian.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Aleutian(DstTzInfo):
- '''US/Aleutian timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Aleutian'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1942,2,9,13,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,12,0,0),
-d(1967,4,1,11,0,0),
-d(1969,4,27,13,0,0),
-d(1969,10,26,12,0,0),
-d(1970,4,26,13,0,0),
-d(1970,10,25,12,0,0),
-d(1971,4,25,13,0,0),
-d(1971,10,31,12,0,0),
-d(1972,4,30,13,0,0),
-d(1972,10,29,12,0,0),
-d(1973,4,29,13,0,0),
-d(1973,10,28,12,0,0),
-d(1974,1,6,13,0,0),
-d(1974,10,27,12,0,0),
-d(1975,2,23,13,0,0),
-d(1975,10,26,12,0,0),
-d(1976,4,25,13,0,0),
-d(1976,10,31,12,0,0),
-d(1977,4,24,13,0,0),
-d(1977,10,30,12,0,0),
-d(1978,4,30,13,0,0),
-d(1978,10,29,12,0,0),
-d(1979,4,29,13,0,0),
-d(1979,10,28,12,0,0),
-d(1980,4,27,13,0,0),
-d(1980,10,26,12,0,0),
-d(1981,4,26,13,0,0),
-d(1981,10,25,12,0,0),
-d(1982,4,25,13,0,0),
-d(1982,10,31,12,0,0),
-d(1983,4,24,13,0,0),
-d(1983,10,30,12,0,0),
-d(1983,11,30,10,0,0),
-d(1984,4,29,12,0,0),
-d(1984,10,28,11,0,0),
-d(1985,4,28,12,0,0),
-d(1985,10,27,11,0,0),
-d(1986,4,27,12,0,0),
-d(1986,10,26,11,0,0),
-d(1987,4,5,12,0,0),
-d(1987,10,25,11,0,0),
-d(1988,4,3,12,0,0),
-d(1988,10,30,11,0,0),
-d(1989,4,2,12,0,0),
-d(1989,10,29,11,0,0),
-d(1990,4,1,12,0,0),
-d(1990,10,28,11,0,0),
-d(1991,4,7,12,0,0),
-d(1991,10,27,11,0,0),
-d(1992,4,5,12,0,0),
-d(1992,10,25,11,0,0),
-d(1993,4,4,12,0,0),
-d(1993,10,31,11,0,0),
-d(1994,4,3,12,0,0),
-d(1994,10,30,11,0,0),
-d(1995,4,2,12,0,0),
-d(1995,10,29,11,0,0),
-d(1996,4,7,12,0,0),
-d(1996,10,27,11,0,0),
-d(1997,4,6,12,0,0),
-d(1997,10,26,11,0,0),
-d(1998,4,5,12,0,0),
-d(1998,10,25,11,0,0),
-d(1999,4,4,12,0,0),
-d(1999,10,31,11,0,0),
-d(2000,4,2,12,0,0),
-d(2000,10,29,11,0,0),
-d(2001,4,1,12,0,0),
-d(2001,10,28,11,0,0),
-d(2002,4,7,12,0,0),
-d(2002,10,27,11,0,0),
-d(2003,4,6,12,0,0),
-d(2003,10,26,11,0,0),
-d(2004,4,4,12,0,0),
-d(2004,10,31,11,0,0),
-d(2005,4,3,12,0,0),
-d(2005,10,30,11,0,0),
-d(2006,4,2,12,0,0),
-d(2006,10,29,11,0,0),
-d(2007,3,11,12,0,0),
-d(2007,11,4,11,0,0),
-d(2008,3,9,12,0,0),
-d(2008,11,2,11,0,0),
-d(2009,3,8,12,0,0),
-d(2009,11,1,11,0,0),
-d(2010,3,14,12,0,0),
-d(2010,11,7,11,0,0),
-d(2011,3,13,12,0,0),
-d(2011,11,6,11,0,0),
-d(2012,3,11,12,0,0),
-d(2012,11,4,11,0,0),
-d(2013,3,10,12,0,0),
-d(2013,11,3,11,0,0),
-d(2014,3,9,12,0,0),
-d(2014,11,2,11,0,0),
-d(2015,3,8,12,0,0),
-d(2015,11,1,11,0,0),
-d(2016,3,13,12,0,0),
-d(2016,11,6,11,0,0),
-d(2017,3,12,12,0,0),
-d(2017,11,5,11,0,0),
-d(2018,3,11,12,0,0),
-d(2018,11,4,11,0,0),
-d(2019,3,10,12,0,0),
-d(2019,11,3,11,0,0),
-d(2020,3,8,12,0,0),
-d(2020,11,1,11,0,0),
-d(2021,3,14,12,0,0),
-d(2021,11,7,11,0,0),
-d(2022,3,13,12,0,0),
-d(2022,11,6,11,0,0),
-d(2023,3,12,12,0,0),
-d(2023,11,5,11,0,0),
-d(2024,3,10,12,0,0),
-d(2024,11,3,11,0,0),
-d(2025,3,9,12,0,0),
-d(2025,11,2,11,0,0),
-d(2026,3,8,12,0,0),
-d(2026,11,1,11,0,0),
-d(2027,3,14,12,0,0),
-d(2027,11,7,11,0,0),
-d(2028,3,12,12,0,0),
-d(2028,11,5,11,0,0),
-d(2029,3,11,12,0,0),
-d(2029,11,4,11,0,0),
-d(2030,3,10,12,0,0),
-d(2030,11,3,11,0,0),
-d(2031,3,9,12,0,0),
-d(2031,11,2,11,0,0),
-d(2032,3,14,12,0,0),
-d(2032,11,7,11,0,0),
-d(2033,3,13,12,0,0),
-d(2033,11,6,11,0,0),
-d(2034,3,12,12,0,0),
-d(2034,11,5,11,0,0),
-d(2035,3,11,12,0,0),
-d(2035,11,4,11,0,0),
-d(2036,3,9,12,0,0),
-d(2036,11,2,11,0,0),
-d(2037,3,8,12,0,0),
-d(2037,11,1,11,0,0),
- ]
-
- _transition_info = [
-i(-39600,0,'NST'),
-i(-36000,3600,'NWT'),
-i(-36000,3600,'NPT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-39600,0,'BST'),
-i(-36000,3600,'BDT'),
-i(-36000,0,'AHST'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
-i(-32400,3600,'HADT'),
-i(-36000,0,'HAST'),
- ]
-
-Aleutian = Aleutian()
-
diff --git a/vendor/pytz/zoneinfo/US/Arizona.py b/vendor/pytz/zoneinfo/US/Arizona.py
deleted file mode 100644
index d4ffa5a7..00000000
--- a/vendor/pytz/zoneinfo/US/Arizona.py
+++ /dev/null
@@ -1,40 +0,0 @@
-'''tzinfo timezone information for US/Arizona.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Arizona(DstTzInfo):
- '''US/Arizona timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Arizona'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1942,2,9,9,0,0),
-d(1944,1,1,6,1,0),
-d(1944,4,1,7,1,0),
-d(1944,10,1,6,1,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Arizona = Arizona()
-
diff --git a/vendor/pytz/zoneinfo/US/Central.py b/vendor/pytz/zoneinfo/US/Central.py
deleted file mode 100644
index b7776bef..00000000
--- a/vendor/pytz/zoneinfo/US/Central.py
+++ /dev/null
@@ -1,490 +0,0 @@
-'''tzinfo timezone information for US/Central.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Central(DstTzInfo):
- '''US/Central timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Central'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1920,6,13,8,0,0),
-d(1920,10,31,7,0,0),
-d(1921,3,27,8,0,0),
-d(1921,10,30,7,0,0),
-d(1922,4,30,8,0,0),
-d(1922,9,24,7,0,0),
-d(1923,4,29,8,0,0),
-d(1923,9,30,7,0,0),
-d(1924,4,27,8,0,0),
-d(1924,9,28,7,0,0),
-d(1925,4,26,8,0,0),
-d(1925,9,27,7,0,0),
-d(1926,4,25,8,0,0),
-d(1926,9,26,7,0,0),
-d(1927,4,24,8,0,0),
-d(1927,9,25,7,0,0),
-d(1928,4,29,8,0,0),
-d(1928,9,30,7,0,0),
-d(1929,4,28,8,0,0),
-d(1929,9,29,7,0,0),
-d(1930,4,27,8,0,0),
-d(1930,9,28,7,0,0),
-d(1931,4,26,8,0,0),
-d(1931,9,27,7,0,0),
-d(1932,4,24,8,0,0),
-d(1932,9,25,7,0,0),
-d(1933,4,30,8,0,0),
-d(1933,9,24,7,0,0),
-d(1934,4,29,8,0,0),
-d(1934,9,30,7,0,0),
-d(1935,4,28,8,0,0),
-d(1935,9,29,7,0,0),
-d(1936,3,1,8,0,0),
-d(1936,11,15,7,0,0),
-d(1937,4,25,8,0,0),
-d(1937,9,26,7,0,0),
-d(1938,4,24,8,0,0),
-d(1938,9,25,7,0,0),
-d(1939,4,30,8,0,0),
-d(1939,9,24,7,0,0),
-d(1940,4,28,8,0,0),
-d(1940,9,29,7,0,0),
-d(1941,4,27,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,10,30,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,10,27,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,10,26,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1962,10,28,7,0,0),
-d(1963,4,28,8,0,0),
-d(1963,10,27,7,0,0),
-d(1964,4,26,8,0,0),
-d(1964,10,25,7,0,0),
-d(1965,4,25,8,0,0),
-d(1965,10,31,7,0,0),
-d(1966,4,24,8,0,0),
-d(1966,10,30,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(1992,4,5,8,0,0),
-d(1992,10,25,7,0,0),
-d(1993,4,4,8,0,0),
-d(1993,10,31,7,0,0),
-d(1994,4,3,8,0,0),
-d(1994,10,30,7,0,0),
-d(1995,4,2,8,0,0),
-d(1995,10,29,7,0,0),
-d(1996,4,7,8,0,0),
-d(1996,10,27,7,0,0),
-d(1997,4,6,8,0,0),
-d(1997,10,26,7,0,0),
-d(1998,4,5,8,0,0),
-d(1998,10,25,7,0,0),
-d(1999,4,4,8,0,0),
-d(1999,10,31,7,0,0),
-d(2000,4,2,8,0,0),
-d(2000,10,29,7,0,0),
-d(2001,4,1,8,0,0),
-d(2001,10,28,7,0,0),
-d(2002,4,7,8,0,0),
-d(2002,10,27,7,0,0),
-d(2003,4,6,8,0,0),
-d(2003,10,26,7,0,0),
-d(2004,4,4,8,0,0),
-d(2004,10,31,7,0,0),
-d(2005,4,3,8,0,0),
-d(2005,10,30,7,0,0),
-d(2006,4,2,8,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Central = Central()
-
diff --git a/vendor/pytz/zoneinfo/US/East_minus_Indiana.py b/vendor/pytz/zoneinfo/US/East_minus_Indiana.py
deleted file mode 100644
index f1d6c37d..00000000
--- a/vendor/pytz/zoneinfo/US/East_minus_Indiana.py
+++ /dev/null
@@ -1,216 +0,0 @@
-'''tzinfo timezone information for US/East_minus_Indiana.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class East_minus_Indiana(DstTzInfo):
- '''US/East_minus_Indiana timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/East_minus_Indiana'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1941,6,22,8,0,0),
-d(1941,9,28,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1946,4,28,8,0,0),
-d(1946,9,29,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-East_minus_Indiana = East_minus_Indiana()
-
diff --git a/vendor/pytz/zoneinfo/US/Eastern.py b/vendor/pytz/zoneinfo/US/Eastern.py
deleted file mode 100644
index 7399d286..00000000
--- a/vendor/pytz/zoneinfo/US/Eastern.py
+++ /dev/null
@@ -1,490 +0,0 @@
-'''tzinfo timezone information for US/Eastern.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Eastern(DstTzInfo):
- '''US/Eastern timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Eastern'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,7,0,0),
-d(1918,10,27,6,0,0),
-d(1919,3,30,7,0,0),
-d(1919,10,26,6,0,0),
-d(1920,3,28,7,0,0),
-d(1920,10,31,6,0,0),
-d(1921,4,24,7,0,0),
-d(1921,9,25,6,0,0),
-d(1922,4,30,7,0,0),
-d(1922,9,24,6,0,0),
-d(1923,4,29,7,0,0),
-d(1923,9,30,6,0,0),
-d(1924,4,27,7,0,0),
-d(1924,9,28,6,0,0),
-d(1925,4,26,7,0,0),
-d(1925,9,27,6,0,0),
-d(1926,4,25,7,0,0),
-d(1926,9,26,6,0,0),
-d(1927,4,24,7,0,0),
-d(1927,9,25,6,0,0),
-d(1928,4,29,7,0,0),
-d(1928,9,30,6,0,0),
-d(1929,4,28,7,0,0),
-d(1929,9,29,6,0,0),
-d(1930,4,27,7,0,0),
-d(1930,9,28,6,0,0),
-d(1931,4,26,7,0,0),
-d(1931,9,27,6,0,0),
-d(1932,4,24,7,0,0),
-d(1932,9,25,6,0,0),
-d(1933,4,30,7,0,0),
-d(1933,9,24,6,0,0),
-d(1934,4,29,7,0,0),
-d(1934,9,30,6,0,0),
-d(1935,4,28,7,0,0),
-d(1935,9,29,6,0,0),
-d(1936,4,26,7,0,0),
-d(1936,9,27,6,0,0),
-d(1937,4,25,7,0,0),
-d(1937,9,26,6,0,0),
-d(1938,4,24,7,0,0),
-d(1938,9,25,6,0,0),
-d(1939,4,30,7,0,0),
-d(1939,9,24,6,0,0),
-d(1940,4,28,7,0,0),
-d(1940,9,29,6,0,0),
-d(1941,4,27,7,0,0),
-d(1941,9,28,6,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,7,0,0),
-d(1947,9,28,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1949,4,24,7,0,0),
-d(1949,9,25,6,0,0),
-d(1950,4,30,7,0,0),
-d(1950,9,24,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,10,30,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,10,28,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Eastern = Eastern()
-
diff --git a/vendor/pytz/zoneinfo/US/Hawaii.py b/vendor/pytz/zoneinfo/US/Hawaii.py
deleted file mode 100644
index 626ac1bb..00000000
--- a/vendor/pytz/zoneinfo/US/Hawaii.py
+++ /dev/null
@@ -1,32 +0,0 @@
-'''tzinfo timezone information for US/Hawaii.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Hawaii(DstTzInfo):
- '''US/Hawaii timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Hawaii'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1933,4,30,12,30,0),
-d(1933,5,21,11,30,0),
-d(1942,2,9,12,30,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,11,30,0),
-d(1947,6,8,12,30,0),
- ]
-
- _transition_info = [
-i(-37800,0,'HST'),
-i(-34200,3600,'HDT'),
-i(-37800,0,'HST'),
-i(-34200,3600,'HWT'),
-i(-34200,3600,'HPT'),
-i(-37800,0,'HST'),
-i(-36000,0,'HST'),
- ]
-
-Hawaii = Hawaii()
-
diff --git a/vendor/pytz/zoneinfo/US/Indiana_minus_Starke.py b/vendor/pytz/zoneinfo/US/Indiana_minus_Starke.py
deleted file mode 100644
index 76464431..00000000
--- a/vendor/pytz/zoneinfo/US/Indiana_minus_Starke.py
+++ /dev/null
@@ -1,326 +0,0 @@
-'''tzinfo timezone information for US/Indiana_minus_Starke.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Indiana_minus_Starke(DstTzInfo):
- '''US/Indiana_minus_Starke timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Indiana_minus_Starke'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,8,0,0),
-d(1918,10,27,7,0,0),
-d(1919,3,30,8,0,0),
-d(1919,10,26,7,0,0),
-d(1942,2,9,8,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,7,0,0),
-d(1947,4,27,8,0,0),
-d(1947,9,28,7,0,0),
-d(1948,4,25,8,0,0),
-d(1948,9,26,7,0,0),
-d(1949,4,24,8,0,0),
-d(1949,9,25,7,0,0),
-d(1950,4,30,8,0,0),
-d(1950,9,24,7,0,0),
-d(1951,4,29,8,0,0),
-d(1951,9,30,7,0,0),
-d(1952,4,27,8,0,0),
-d(1952,9,28,7,0,0),
-d(1953,4,26,8,0,0),
-d(1953,9,27,7,0,0),
-d(1954,4,25,8,0,0),
-d(1954,9,26,7,0,0),
-d(1955,4,24,8,0,0),
-d(1955,10,30,7,0,0),
-d(1956,4,29,8,0,0),
-d(1956,10,28,7,0,0),
-d(1957,4,28,8,0,0),
-d(1957,9,29,7,0,0),
-d(1958,4,27,8,0,0),
-d(1958,9,28,7,0,0),
-d(1959,4,26,8,0,0),
-d(1959,10,25,7,0,0),
-d(1960,4,24,8,0,0),
-d(1960,10,30,7,0,0),
-d(1961,4,30,8,0,0),
-d(1961,10,29,7,0,0),
-d(1962,4,29,8,0,0),
-d(1963,10,27,7,0,0),
-d(1967,4,30,8,0,0),
-d(1967,10,29,7,0,0),
-d(1968,4,28,8,0,0),
-d(1968,10,27,7,0,0),
-d(1969,4,27,8,0,0),
-d(1969,10,26,7,0,0),
-d(1970,4,26,8,0,0),
-d(1970,10,25,7,0,0),
-d(1971,4,25,8,0,0),
-d(1971,10,31,7,0,0),
-d(1972,4,30,8,0,0),
-d(1972,10,29,7,0,0),
-d(1973,4,29,8,0,0),
-d(1973,10,28,7,0,0),
-d(1974,1,6,8,0,0),
-d(1974,10,27,7,0,0),
-d(1975,2,23,8,0,0),
-d(1975,10,26,7,0,0),
-d(1976,4,25,8,0,0),
-d(1976,10,31,7,0,0),
-d(1977,4,24,8,0,0),
-d(1977,10,30,7,0,0),
-d(1978,4,30,8,0,0),
-d(1978,10,29,7,0,0),
-d(1979,4,29,8,0,0),
-d(1979,10,28,7,0,0),
-d(1980,4,27,8,0,0),
-d(1980,10,26,7,0,0),
-d(1981,4,26,8,0,0),
-d(1981,10,25,7,0,0),
-d(1982,4,25,8,0,0),
-d(1982,10,31,7,0,0),
-d(1983,4,24,8,0,0),
-d(1983,10,30,7,0,0),
-d(1984,4,29,8,0,0),
-d(1984,10,28,7,0,0),
-d(1985,4,28,8,0,0),
-d(1985,10,27,7,0,0),
-d(1986,4,27,8,0,0),
-d(1986,10,26,7,0,0),
-d(1987,4,5,8,0,0),
-d(1987,10,25,7,0,0),
-d(1988,4,3,8,0,0),
-d(1988,10,30,7,0,0),
-d(1989,4,2,8,0,0),
-d(1989,10,29,7,0,0),
-d(1990,4,1,8,0,0),
-d(1990,10,28,7,0,0),
-d(1991,4,7,8,0,0),
-d(1991,10,27,7,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,7,0,0),
-d(2007,3,11,8,0,0),
-d(2007,11,4,7,0,0),
-d(2008,3,9,8,0,0),
-d(2008,11,2,7,0,0),
-d(2009,3,8,8,0,0),
-d(2009,11,1,7,0,0),
-d(2010,3,14,8,0,0),
-d(2010,11,7,7,0,0),
-d(2011,3,13,8,0,0),
-d(2011,11,6,7,0,0),
-d(2012,3,11,8,0,0),
-d(2012,11,4,7,0,0),
-d(2013,3,10,8,0,0),
-d(2013,11,3,7,0,0),
-d(2014,3,9,8,0,0),
-d(2014,11,2,7,0,0),
-d(2015,3,8,8,0,0),
-d(2015,11,1,7,0,0),
-d(2016,3,13,8,0,0),
-d(2016,11,6,7,0,0),
-d(2017,3,12,8,0,0),
-d(2017,11,5,7,0,0),
-d(2018,3,11,8,0,0),
-d(2018,11,4,7,0,0),
-d(2019,3,10,8,0,0),
-d(2019,11,3,7,0,0),
-d(2020,3,8,8,0,0),
-d(2020,11,1,7,0,0),
-d(2021,3,14,8,0,0),
-d(2021,11,7,7,0,0),
-d(2022,3,13,8,0,0),
-d(2022,11,6,7,0,0),
-d(2023,3,12,8,0,0),
-d(2023,11,5,7,0,0),
-d(2024,3,10,8,0,0),
-d(2024,11,3,7,0,0),
-d(2025,3,9,8,0,0),
-d(2025,11,2,7,0,0),
-d(2026,3,8,8,0,0),
-d(2026,11,1,7,0,0),
-d(2027,3,14,8,0,0),
-d(2027,11,7,7,0,0),
-d(2028,3,12,8,0,0),
-d(2028,11,5,7,0,0),
-d(2029,3,11,8,0,0),
-d(2029,11,4,7,0,0),
-d(2030,3,10,8,0,0),
-d(2030,11,3,7,0,0),
-d(2031,3,9,8,0,0),
-d(2031,11,2,7,0,0),
-d(2032,3,14,8,0,0),
-d(2032,11,7,7,0,0),
-d(2033,3,13,8,0,0),
-d(2033,11,6,7,0,0),
-d(2034,3,12,8,0,0),
-d(2034,11,5,7,0,0),
-d(2035,3,11,8,0,0),
-d(2035,11,4,7,0,0),
-d(2036,3,9,8,0,0),
-d(2036,11,2,7,0,0),
-d(2037,3,8,8,0,0),
-d(2037,11,1,7,0,0),
- ]
-
- _transition_info = [
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CWT'),
-i(-18000,3600,'CPT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-18000,0,'EST'),
-i(-18000,0,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
-i(-18000,3600,'CDT'),
-i(-21600,0,'CST'),
- ]
-
-Indiana_minus_Starke = Indiana_minus_Starke()
-
diff --git a/vendor/pytz/zoneinfo/US/Michigan.py b/vendor/pytz/zoneinfo/US/Michigan.py
deleted file mode 100644
index e4126b52..00000000
--- a/vendor/pytz/zoneinfo/US/Michigan.py
+++ /dev/null
@@ -1,298 +0,0 @@
-'''tzinfo timezone information for US/Michigan.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Michigan(DstTzInfo):
- '''US/Michigan timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Michigan'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1905,1,1,5,32,11),
-d(1915,5,15,8,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1967,6,14,7,0,0),
-d(1967,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,4,27,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-19920,0,'LMT'),
-i(-21600,0,'CST'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-Michigan = Michigan()
-
diff --git a/vendor/pytz/zoneinfo/US/Mountain.py b/vendor/pytz/zoneinfo/US/Mountain.py
deleted file mode 100644
index ab6b1b68..00000000
--- a/vendor/pytz/zoneinfo/US/Mountain.py
+++ /dev/null
@@ -1,334 +0,0 @@
-'''tzinfo timezone information for US/Mountain.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Mountain(DstTzInfo):
- '''US/Mountain timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Mountain'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,9,0,0),
-d(1918,10,27,8,0,0),
-d(1919,3,30,9,0,0),
-d(1919,10,26,8,0,0),
-d(1920,3,28,9,0,0),
-d(1920,10,31,8,0,0),
-d(1921,3,27,9,0,0),
-d(1921,5,22,8,0,0),
-d(1942,2,9,9,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,8,0,0),
-d(1965,4,25,9,0,0),
-d(1965,10,31,8,0,0),
-d(1966,4,24,9,0,0),
-d(1966,10,30,8,0,0),
-d(1967,4,30,9,0,0),
-d(1967,10,29,8,0,0),
-d(1968,4,28,9,0,0),
-d(1968,10,27,8,0,0),
-d(1969,4,27,9,0,0),
-d(1969,10,26,8,0,0),
-d(1970,4,26,9,0,0),
-d(1970,10,25,8,0,0),
-d(1971,4,25,9,0,0),
-d(1971,10,31,8,0,0),
-d(1972,4,30,9,0,0),
-d(1972,10,29,8,0,0),
-d(1973,4,29,9,0,0),
-d(1973,10,28,8,0,0),
-d(1974,1,6,9,0,0),
-d(1974,10,27,8,0,0),
-d(1975,2,23,9,0,0),
-d(1975,10,26,8,0,0),
-d(1976,4,25,9,0,0),
-d(1976,10,31,8,0,0),
-d(1977,4,24,9,0,0),
-d(1977,10,30,8,0,0),
-d(1978,4,30,9,0,0),
-d(1978,10,29,8,0,0),
-d(1979,4,29,9,0,0),
-d(1979,10,28,8,0,0),
-d(1980,4,27,9,0,0),
-d(1980,10,26,8,0,0),
-d(1981,4,26,9,0,0),
-d(1981,10,25,8,0,0),
-d(1982,4,25,9,0,0),
-d(1982,10,31,8,0,0),
-d(1983,4,24,9,0,0),
-d(1983,10,30,8,0,0),
-d(1984,4,29,9,0,0),
-d(1984,10,28,8,0,0),
-d(1985,4,28,9,0,0),
-d(1985,10,27,8,0,0),
-d(1986,4,27,9,0,0),
-d(1986,10,26,8,0,0),
-d(1987,4,5,9,0,0),
-d(1987,10,25,8,0,0),
-d(1988,4,3,9,0,0),
-d(1988,10,30,8,0,0),
-d(1989,4,2,9,0,0),
-d(1989,10,29,8,0,0),
-d(1990,4,1,9,0,0),
-d(1990,10,28,8,0,0),
-d(1991,4,7,9,0,0),
-d(1991,10,27,8,0,0),
-d(1992,4,5,9,0,0),
-d(1992,10,25,8,0,0),
-d(1993,4,4,9,0,0),
-d(1993,10,31,8,0,0),
-d(1994,4,3,9,0,0),
-d(1994,10,30,8,0,0),
-d(1995,4,2,9,0,0),
-d(1995,10,29,8,0,0),
-d(1996,4,7,9,0,0),
-d(1996,10,27,8,0,0),
-d(1997,4,6,9,0,0),
-d(1997,10,26,8,0,0),
-d(1998,4,5,9,0,0),
-d(1998,10,25,8,0,0),
-d(1999,4,4,9,0,0),
-d(1999,10,31,8,0,0),
-d(2000,4,2,9,0,0),
-d(2000,10,29,8,0,0),
-d(2001,4,1,9,0,0),
-d(2001,10,28,8,0,0),
-d(2002,4,7,9,0,0),
-d(2002,10,27,8,0,0),
-d(2003,4,6,9,0,0),
-d(2003,10,26,8,0,0),
-d(2004,4,4,9,0,0),
-d(2004,10,31,8,0,0),
-d(2005,4,3,9,0,0),
-d(2005,10,30,8,0,0),
-d(2006,4,2,9,0,0),
-d(2006,10,29,8,0,0),
-d(2007,3,11,9,0,0),
-d(2007,11,4,8,0,0),
-d(2008,3,9,9,0,0),
-d(2008,11,2,8,0,0),
-d(2009,3,8,9,0,0),
-d(2009,11,1,8,0,0),
-d(2010,3,14,9,0,0),
-d(2010,11,7,8,0,0),
-d(2011,3,13,9,0,0),
-d(2011,11,6,8,0,0),
-d(2012,3,11,9,0,0),
-d(2012,11,4,8,0,0),
-d(2013,3,10,9,0,0),
-d(2013,11,3,8,0,0),
-d(2014,3,9,9,0,0),
-d(2014,11,2,8,0,0),
-d(2015,3,8,9,0,0),
-d(2015,11,1,8,0,0),
-d(2016,3,13,9,0,0),
-d(2016,11,6,8,0,0),
-d(2017,3,12,9,0,0),
-d(2017,11,5,8,0,0),
-d(2018,3,11,9,0,0),
-d(2018,11,4,8,0,0),
-d(2019,3,10,9,0,0),
-d(2019,11,3,8,0,0),
-d(2020,3,8,9,0,0),
-d(2020,11,1,8,0,0),
-d(2021,3,14,9,0,0),
-d(2021,11,7,8,0,0),
-d(2022,3,13,9,0,0),
-d(2022,11,6,8,0,0),
-d(2023,3,12,9,0,0),
-d(2023,11,5,8,0,0),
-d(2024,3,10,9,0,0),
-d(2024,11,3,8,0,0),
-d(2025,3,9,9,0,0),
-d(2025,11,2,8,0,0),
-d(2026,3,8,9,0,0),
-d(2026,11,1,8,0,0),
-d(2027,3,14,9,0,0),
-d(2027,11,7,8,0,0),
-d(2028,3,12,9,0,0),
-d(2028,11,5,8,0,0),
-d(2029,3,11,9,0,0),
-d(2029,11,4,8,0,0),
-d(2030,3,10,9,0,0),
-d(2030,11,3,8,0,0),
-d(2031,3,9,9,0,0),
-d(2031,11,2,8,0,0),
-d(2032,3,14,9,0,0),
-d(2032,11,7,8,0,0),
-d(2033,3,13,9,0,0),
-d(2033,11,6,8,0,0),
-d(2034,3,12,9,0,0),
-d(2034,11,5,8,0,0),
-d(2035,3,11,9,0,0),
-d(2035,11,4,8,0,0),
-d(2036,3,9,9,0,0),
-d(2036,11,2,8,0,0),
-d(2037,3,8,9,0,0),
-d(2037,11,1,8,0,0),
- ]
-
- _transition_info = [
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MWT'),
-i(-21600,3600,'MPT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
-i(-21600,3600,'MDT'),
-i(-25200,0,'MST'),
- ]
-
-Mountain = Mountain()
-
diff --git a/vendor/pytz/zoneinfo/US/Pacific.py b/vendor/pytz/zoneinfo/US/Pacific.py
deleted file mode 100644
index f41984bd..00000000
--- a/vendor/pytz/zoneinfo/US/Pacific.py
+++ /dev/null
@@ -1,390 +0,0 @@
-'''tzinfo timezone information for US/Pacific.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pacific(DstTzInfo):
- '''US/Pacific timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Pacific'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,3,30,10,0,0),
-d(1919,10,26,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1948,3,14,10,0,0),
-d(1949,1,1,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,1,6,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,2,23,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Pacific = Pacific()
-
diff --git a/vendor/pytz/zoneinfo/US/Pacific_minus_New.py b/vendor/pytz/zoneinfo/US/Pacific_minus_New.py
deleted file mode 100644
index 38c25efe..00000000
--- a/vendor/pytz/zoneinfo/US/Pacific_minus_New.py
+++ /dev/null
@@ -1,390 +0,0 @@
-'''tzinfo timezone information for US/Pacific_minus_New.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Pacific_minus_New(DstTzInfo):
- '''US/Pacific_minus_New timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Pacific_minus_New'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,10,0,0),
-d(1918,10,27,9,0,0),
-d(1919,3,30,10,0,0),
-d(1919,10,26,9,0,0),
-d(1942,2,9,10,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,9,0,0),
-d(1948,3,14,10,0,0),
-d(1949,1,1,9,0,0),
-d(1950,4,30,10,0,0),
-d(1950,9,24,9,0,0),
-d(1951,4,29,10,0,0),
-d(1951,9,30,9,0,0),
-d(1952,4,27,10,0,0),
-d(1952,9,28,9,0,0),
-d(1953,4,26,10,0,0),
-d(1953,9,27,9,0,0),
-d(1954,4,25,10,0,0),
-d(1954,9,26,9,0,0),
-d(1955,4,24,10,0,0),
-d(1955,9,25,9,0,0),
-d(1956,4,29,10,0,0),
-d(1956,9,30,9,0,0),
-d(1957,4,28,10,0,0),
-d(1957,9,29,9,0,0),
-d(1958,4,27,10,0,0),
-d(1958,9,28,9,0,0),
-d(1959,4,26,10,0,0),
-d(1959,9,27,9,0,0),
-d(1960,4,24,10,0,0),
-d(1960,9,25,9,0,0),
-d(1961,4,30,10,0,0),
-d(1961,9,24,9,0,0),
-d(1962,4,29,10,0,0),
-d(1962,10,28,9,0,0),
-d(1963,4,28,10,0,0),
-d(1963,10,27,9,0,0),
-d(1964,4,26,10,0,0),
-d(1964,10,25,9,0,0),
-d(1965,4,25,10,0,0),
-d(1965,10,31,9,0,0),
-d(1966,4,24,10,0,0),
-d(1966,10,30,9,0,0),
-d(1967,4,30,10,0,0),
-d(1967,10,29,9,0,0),
-d(1968,4,28,10,0,0),
-d(1968,10,27,9,0,0),
-d(1969,4,27,10,0,0),
-d(1969,10,26,9,0,0),
-d(1970,4,26,10,0,0),
-d(1970,10,25,9,0,0),
-d(1971,4,25,10,0,0),
-d(1971,10,31,9,0,0),
-d(1972,4,30,10,0,0),
-d(1972,10,29,9,0,0),
-d(1973,4,29,10,0,0),
-d(1973,10,28,9,0,0),
-d(1974,1,6,10,0,0),
-d(1974,10,27,9,0,0),
-d(1975,2,23,10,0,0),
-d(1975,10,26,9,0,0),
-d(1976,4,25,10,0,0),
-d(1976,10,31,9,0,0),
-d(1977,4,24,10,0,0),
-d(1977,10,30,9,0,0),
-d(1978,4,30,10,0,0),
-d(1978,10,29,9,0,0),
-d(1979,4,29,10,0,0),
-d(1979,10,28,9,0,0),
-d(1980,4,27,10,0,0),
-d(1980,10,26,9,0,0),
-d(1981,4,26,10,0,0),
-d(1981,10,25,9,0,0),
-d(1982,4,25,10,0,0),
-d(1982,10,31,9,0,0),
-d(1983,4,24,10,0,0),
-d(1983,10,30,9,0,0),
-d(1984,4,29,10,0,0),
-d(1984,10,28,9,0,0),
-d(1985,4,28,10,0,0),
-d(1985,10,27,9,0,0),
-d(1986,4,27,10,0,0),
-d(1986,10,26,9,0,0),
-d(1987,4,5,10,0,0),
-d(1987,10,25,9,0,0),
-d(1988,4,3,10,0,0),
-d(1988,10,30,9,0,0),
-d(1989,4,2,10,0,0),
-d(1989,10,29,9,0,0),
-d(1990,4,1,10,0,0),
-d(1990,10,28,9,0,0),
-d(1991,4,7,10,0,0),
-d(1991,10,27,9,0,0),
-d(1992,4,5,10,0,0),
-d(1992,10,25,9,0,0),
-d(1993,4,4,10,0,0),
-d(1993,10,31,9,0,0),
-d(1994,4,3,10,0,0),
-d(1994,10,30,9,0,0),
-d(1995,4,2,10,0,0),
-d(1995,10,29,9,0,0),
-d(1996,4,7,10,0,0),
-d(1996,10,27,9,0,0),
-d(1997,4,6,10,0,0),
-d(1997,10,26,9,0,0),
-d(1998,4,5,10,0,0),
-d(1998,10,25,9,0,0),
-d(1999,4,4,10,0,0),
-d(1999,10,31,9,0,0),
-d(2000,4,2,10,0,0),
-d(2000,10,29,9,0,0),
-d(2001,4,1,10,0,0),
-d(2001,10,28,9,0,0),
-d(2002,4,7,10,0,0),
-d(2002,10,27,9,0,0),
-d(2003,4,6,10,0,0),
-d(2003,10,26,9,0,0),
-d(2004,4,4,10,0,0),
-d(2004,10,31,9,0,0),
-d(2005,4,3,10,0,0),
-d(2005,10,30,9,0,0),
-d(2006,4,2,10,0,0),
-d(2006,10,29,9,0,0),
-d(2007,3,11,10,0,0),
-d(2007,11,4,9,0,0),
-d(2008,3,9,10,0,0),
-d(2008,11,2,9,0,0),
-d(2009,3,8,10,0,0),
-d(2009,11,1,9,0,0),
-d(2010,3,14,10,0,0),
-d(2010,11,7,9,0,0),
-d(2011,3,13,10,0,0),
-d(2011,11,6,9,0,0),
-d(2012,3,11,10,0,0),
-d(2012,11,4,9,0,0),
-d(2013,3,10,10,0,0),
-d(2013,11,3,9,0,0),
-d(2014,3,9,10,0,0),
-d(2014,11,2,9,0,0),
-d(2015,3,8,10,0,0),
-d(2015,11,1,9,0,0),
-d(2016,3,13,10,0,0),
-d(2016,11,6,9,0,0),
-d(2017,3,12,10,0,0),
-d(2017,11,5,9,0,0),
-d(2018,3,11,10,0,0),
-d(2018,11,4,9,0,0),
-d(2019,3,10,10,0,0),
-d(2019,11,3,9,0,0),
-d(2020,3,8,10,0,0),
-d(2020,11,1,9,0,0),
-d(2021,3,14,10,0,0),
-d(2021,11,7,9,0,0),
-d(2022,3,13,10,0,0),
-d(2022,11,6,9,0,0),
-d(2023,3,12,10,0,0),
-d(2023,11,5,9,0,0),
-d(2024,3,10,10,0,0),
-d(2024,11,3,9,0,0),
-d(2025,3,9,10,0,0),
-d(2025,11,2,9,0,0),
-d(2026,3,8,10,0,0),
-d(2026,11,1,9,0,0),
-d(2027,3,14,10,0,0),
-d(2027,11,7,9,0,0),
-d(2028,3,12,10,0,0),
-d(2028,11,5,9,0,0),
-d(2029,3,11,10,0,0),
-d(2029,11,4,9,0,0),
-d(2030,3,10,10,0,0),
-d(2030,11,3,9,0,0),
-d(2031,3,9,10,0,0),
-d(2031,11,2,9,0,0),
-d(2032,3,14,10,0,0),
-d(2032,11,7,9,0,0),
-d(2033,3,13,10,0,0),
-d(2033,11,6,9,0,0),
-d(2034,3,12,10,0,0),
-d(2034,11,5,9,0,0),
-d(2035,3,11,10,0,0),
-d(2035,11,4,9,0,0),
-d(2036,3,9,10,0,0),
-d(2036,11,2,9,0,0),
-d(2037,3,8,10,0,0),
-d(2037,11,1,9,0,0),
- ]
-
- _transition_info = [
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PWT'),
-i(-25200,3600,'PPT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
-i(-25200,3600,'PDT'),
-i(-28800,0,'PST'),
- ]
-
-Pacific_minus_New = Pacific_minus_New()
-
diff --git a/vendor/pytz/zoneinfo/US/Samoa.py b/vendor/pytz/zoneinfo/US/Samoa.py
deleted file mode 100644
index 66c6b091..00000000
--- a/vendor/pytz/zoneinfo/US/Samoa.py
+++ /dev/null
@@ -1,28 +0,0 @@
-'''tzinfo timezone information for US/Samoa.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class Samoa(DstTzInfo):
- '''US/Samoa timezone definition. See datetime.tzinfo for details'''
-
- zone = 'US/Samoa'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1911,1,1,11,22,48),
-d(1950,1,1,11,30,0),
-d(1967,4,1,11,0,0),
-d(1983,11,30,11,0,0),
- ]
-
- _transition_info = [
-i(-40980,0,'LMT'),
-i(-41400,0,'SAMT'),
-i(-39600,0,'NST'),
-i(-39600,0,'BST'),
-i(-39600,0,'SST'),
- ]
-
-Samoa = Samoa()
-
diff --git a/vendor/pytz/zoneinfo/US/__init__.py b/vendor/pytz/zoneinfo/US/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/UTC.py b/vendor/pytz/zoneinfo/UTC.py
deleted file mode 100644
index fdb84339..00000000
--- a/vendor/pytz/zoneinfo/UTC.py
+++ /dev/null
@@ -1,2 +0,0 @@
-'''tzinfo timezone information for UTC.'''
-from pytz import UTC
diff --git a/vendor/pytz/zoneinfo/Universal.py b/vendor/pytz/zoneinfo/Universal.py
deleted file mode 100644
index 0ed335fd..00000000
--- a/vendor/pytz/zoneinfo/Universal.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Universal.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Universal(StaticTzInfo):
- '''Universal timezone definition. See datetime.tzinfo for details'''
- zone = 'Universal'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UTC'
-
-Universal = Universal()
-
diff --git a/vendor/pytz/zoneinfo/WET.py b/vendor/pytz/zoneinfo/WET.py
deleted file mode 100644
index a721990d..00000000
--- a/vendor/pytz/zoneinfo/WET.py
+++ /dev/null
@@ -1,264 +0,0 @@
-'''tzinfo timezone information for WET.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class WET(DstTzInfo):
- '''WET timezone definition. See datetime.tzinfo for details'''
-
- zone = 'WET'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1977,4,3,1,0,0),
-d(1977,9,25,1,0,0),
-d(1978,4,2,1,0,0),
-d(1978,10,1,1,0,0),
-d(1979,4,1,1,0,0),
-d(1979,9,30,1,0,0),
-d(1980,4,6,1,0,0),
-d(1980,9,28,1,0,0),
-d(1981,3,29,1,0,0),
-d(1981,9,27,1,0,0),
-d(1982,3,28,1,0,0),
-d(1982,9,26,1,0,0),
-d(1983,3,27,1,0,0),
-d(1983,9,25,1,0,0),
-d(1984,3,25,1,0,0),
-d(1984,9,30,1,0,0),
-d(1985,3,31,1,0,0),
-d(1985,9,29,1,0,0),
-d(1986,3,30,1,0,0),
-d(1986,9,28,1,0,0),
-d(1987,3,29,1,0,0),
-d(1987,9,27,1,0,0),
-d(1988,3,27,1,0,0),
-d(1988,9,25,1,0,0),
-d(1989,3,26,1,0,0),
-d(1989,9,24,1,0,0),
-d(1990,3,25,1,0,0),
-d(1990,9,30,1,0,0),
-d(1991,3,31,1,0,0),
-d(1991,9,29,1,0,0),
-d(1992,3,29,1,0,0),
-d(1992,9,27,1,0,0),
-d(1993,3,28,1,0,0),
-d(1993,9,26,1,0,0),
-d(1994,3,27,1,0,0),
-d(1994,9,25,1,0,0),
-d(1995,3,26,1,0,0),
-d(1995,9,24,1,0,0),
-d(1996,3,31,1,0,0),
-d(1996,10,27,1,0,0),
-d(1997,3,30,1,0,0),
-d(1997,10,26,1,0,0),
-d(1998,3,29,1,0,0),
-d(1998,10,25,1,0,0),
-d(1999,3,28,1,0,0),
-d(1999,10,31,1,0,0),
-d(2000,3,26,1,0,0),
-d(2000,10,29,1,0,0),
-d(2001,3,25,1,0,0),
-d(2001,10,28,1,0,0),
-d(2002,3,31,1,0,0),
-d(2002,10,27,1,0,0),
-d(2003,3,30,1,0,0),
-d(2003,10,26,1,0,0),
-d(2004,3,28,1,0,0),
-d(2004,10,31,1,0,0),
-d(2005,3,27,1,0,0),
-d(2005,10,30,1,0,0),
-d(2006,3,26,1,0,0),
-d(2006,10,29,1,0,0),
-d(2007,3,25,1,0,0),
-d(2007,10,28,1,0,0),
-d(2008,3,30,1,0,0),
-d(2008,10,26,1,0,0),
-d(2009,3,29,1,0,0),
-d(2009,10,25,1,0,0),
-d(2010,3,28,1,0,0),
-d(2010,10,31,1,0,0),
-d(2011,3,27,1,0,0),
-d(2011,10,30,1,0,0),
-d(2012,3,25,1,0,0),
-d(2012,10,28,1,0,0),
-d(2013,3,31,1,0,0),
-d(2013,10,27,1,0,0),
-d(2014,3,30,1,0,0),
-d(2014,10,26,1,0,0),
-d(2015,3,29,1,0,0),
-d(2015,10,25,1,0,0),
-d(2016,3,27,1,0,0),
-d(2016,10,30,1,0,0),
-d(2017,3,26,1,0,0),
-d(2017,10,29,1,0,0),
-d(2018,3,25,1,0,0),
-d(2018,10,28,1,0,0),
-d(2019,3,31,1,0,0),
-d(2019,10,27,1,0,0),
-d(2020,3,29,1,0,0),
-d(2020,10,25,1,0,0),
-d(2021,3,28,1,0,0),
-d(2021,10,31,1,0,0),
-d(2022,3,27,1,0,0),
-d(2022,10,30,1,0,0),
-d(2023,3,26,1,0,0),
-d(2023,10,29,1,0,0),
-d(2024,3,31,1,0,0),
-d(2024,10,27,1,0,0),
-d(2025,3,30,1,0,0),
-d(2025,10,26,1,0,0),
-d(2026,3,29,1,0,0),
-d(2026,10,25,1,0,0),
-d(2027,3,28,1,0,0),
-d(2027,10,31,1,0,0),
-d(2028,3,26,1,0,0),
-d(2028,10,29,1,0,0),
-d(2029,3,25,1,0,0),
-d(2029,10,28,1,0,0),
-d(2030,3,31,1,0,0),
-d(2030,10,27,1,0,0),
-d(2031,3,30,1,0,0),
-d(2031,10,26,1,0,0),
-d(2032,3,28,1,0,0),
-d(2032,10,31,1,0,0),
-d(2033,3,27,1,0,0),
-d(2033,10,30,1,0,0),
-d(2034,3,26,1,0,0),
-d(2034,10,29,1,0,0),
-d(2035,3,25,1,0,0),
-d(2035,10,28,1,0,0),
-d(2036,3,30,1,0,0),
-d(2036,10,26,1,0,0),
-d(2037,3,29,1,0,0),
-d(2037,10,25,1,0,0),
- ]
-
- _transition_info = [
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
-i(3600,3600,'WEST'),
-i(0,0,'WET'),
- ]
-
-WET = WET()
-
diff --git a/vendor/pytz/zoneinfo/W_minus_SU.py b/vendor/pytz/zoneinfo/W_minus_SU.py
deleted file mode 100644
index a897cbde..00000000
--- a/vendor/pytz/zoneinfo/W_minus_SU.py
+++ /dev/null
@@ -1,278 +0,0 @@
-'''tzinfo timezone information for W_minus_SU.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class W_minus_SU(DstTzInfo):
- '''W_minus_SU timezone definition. See datetime.tzinfo for details'''
-
- zone = 'W_minus_SU'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1916,7,2,21,30,0),
-d(1917,7,1,20,29,12),
-d(1917,12,27,20,29,12),
-d(1918,5,31,19,29,12),
-d(1918,9,15,20,29,12),
-d(1919,5,31,19,29,12),
-d(1919,6,30,21,29,12),
-d(1919,8,15,20,0,0),
-d(1921,2,14,20,0,0),
-d(1921,3,20,19,0,0),
-d(1921,8,31,19,0,0),
-d(1921,9,30,20,0,0),
-d(1922,9,30,21,0,0),
-d(1930,6,20,22,0,0),
-d(1981,3,31,21,0,0),
-d(1981,9,30,20,0,0),
-d(1982,3,31,21,0,0),
-d(1982,9,30,20,0,0),
-d(1983,3,31,21,0,0),
-d(1983,9,30,20,0,0),
-d(1984,3,31,21,0,0),
-d(1984,9,29,23,0,0),
-d(1985,3,30,23,0,0),
-d(1985,9,28,23,0,0),
-d(1986,3,29,23,0,0),
-d(1986,9,27,23,0,0),
-d(1987,3,28,23,0,0),
-d(1987,9,26,23,0,0),
-d(1988,3,26,23,0,0),
-d(1988,9,24,23,0,0),
-d(1989,3,25,23,0,0),
-d(1989,9,23,23,0,0),
-d(1990,3,24,23,0,0),
-d(1990,9,29,23,0,0),
-d(1991,3,30,23,0,0),
-d(1991,9,29,0,0,0),
-d(1992,1,19,0,0,0),
-d(1992,3,28,20,0,0),
-d(1992,9,26,19,0,0),
-d(1993,3,27,23,0,0),
-d(1993,9,25,23,0,0),
-d(1994,3,26,23,0,0),
-d(1994,9,24,23,0,0),
-d(1995,3,25,23,0,0),
-d(1995,9,23,23,0,0),
-d(1996,3,30,23,0,0),
-d(1996,10,26,23,0,0),
-d(1997,3,29,23,0,0),
-d(1997,10,25,23,0,0),
-d(1998,3,28,23,0,0),
-d(1998,10,24,23,0,0),
-d(1999,3,27,23,0,0),
-d(1999,10,30,23,0,0),
-d(2000,3,25,23,0,0),
-d(2000,10,28,23,0,0),
-d(2001,3,24,23,0,0),
-d(2001,10,27,23,0,0),
-d(2002,3,30,23,0,0),
-d(2002,10,26,23,0,0),
-d(2003,3,29,23,0,0),
-d(2003,10,25,23,0,0),
-d(2004,3,27,23,0,0),
-d(2004,10,30,23,0,0),
-d(2005,3,26,23,0,0),
-d(2005,10,29,23,0,0),
-d(2006,3,25,23,0,0),
-d(2006,10,28,23,0,0),
-d(2007,3,24,23,0,0),
-d(2007,10,27,23,0,0),
-d(2008,3,29,23,0,0),
-d(2008,10,25,23,0,0),
-d(2009,3,28,23,0,0),
-d(2009,10,24,23,0,0),
-d(2010,3,27,23,0,0),
-d(2010,10,30,23,0,0),
-d(2011,3,26,23,0,0),
-d(2011,10,29,23,0,0),
-d(2012,3,24,23,0,0),
-d(2012,10,27,23,0,0),
-d(2013,3,30,23,0,0),
-d(2013,10,26,23,0,0),
-d(2014,3,29,23,0,0),
-d(2014,10,25,23,0,0),
-d(2015,3,28,23,0,0),
-d(2015,10,24,23,0,0),
-d(2016,3,26,23,0,0),
-d(2016,10,29,23,0,0),
-d(2017,3,25,23,0,0),
-d(2017,10,28,23,0,0),
-d(2018,3,24,23,0,0),
-d(2018,10,27,23,0,0),
-d(2019,3,30,23,0,0),
-d(2019,10,26,23,0,0),
-d(2020,3,28,23,0,0),
-d(2020,10,24,23,0,0),
-d(2021,3,27,23,0,0),
-d(2021,10,30,23,0,0),
-d(2022,3,26,23,0,0),
-d(2022,10,29,23,0,0),
-d(2023,3,25,23,0,0),
-d(2023,10,28,23,0,0),
-d(2024,3,30,23,0,0),
-d(2024,10,26,23,0,0),
-d(2025,3,29,23,0,0),
-d(2025,10,25,23,0,0),
-d(2026,3,28,23,0,0),
-d(2026,10,24,23,0,0),
-d(2027,3,27,23,0,0),
-d(2027,10,30,23,0,0),
-d(2028,3,25,23,0,0),
-d(2028,10,28,23,0,0),
-d(2029,3,24,23,0,0),
-d(2029,10,27,23,0,0),
-d(2030,3,30,23,0,0),
-d(2030,10,26,23,0,0),
-d(2031,3,29,23,0,0),
-d(2031,10,25,23,0,0),
-d(2032,3,27,23,0,0),
-d(2032,10,30,23,0,0),
-d(2033,3,26,23,0,0),
-d(2033,10,29,23,0,0),
-d(2034,3,25,23,0,0),
-d(2034,10,28,23,0,0),
-d(2035,3,24,23,0,0),
-d(2035,10,27,23,0,0),
-d(2036,3,29,23,0,0),
-d(2036,10,25,23,0,0),
-d(2037,3,28,23,0,0),
-d(2037,10,24,23,0,0),
- ]
-
- _transition_info = [
-i(9000,0,'MMT'),
-i(9060,0,'MMT'),
-i(12660,3600,'MST'),
-i(9060,0,'MMT'),
-i(16260,7200,'MDST'),
-i(12660,3600,'MST'),
-i(16260,7200,'MDST'),
-i(14400,5340,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(18000,7200,'MSD'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(10800,0,'EEST'),
-i(7200,0,'EET'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
-i(14400,3600,'MSD'),
-i(10800,0,'MSK'),
- ]
-
-W_minus_SU = W_minus_SU()
-
diff --git a/vendor/pytz/zoneinfo/Zulu.py b/vendor/pytz/zoneinfo/Zulu.py
deleted file mode 100644
index 4d6142a5..00000000
--- a/vendor/pytz/zoneinfo/Zulu.py
+++ /dev/null
@@ -1,12 +0,0 @@
-'''tzinfo timezone information for Zulu.'''
-from pytz.tzinfo import StaticTzInfo
-from pytz.tzinfo import memorized_timedelta as timedelta
-
-class Zulu(StaticTzInfo):
- '''Zulu timezone definition. See datetime.tzinfo for details'''
- zone = 'Zulu'
- _utcoffset = timedelta(seconds=0)
- _tzname = 'UTC'
-
-Zulu = Zulu()
-
diff --git a/vendor/pytz/zoneinfo/__init__.py b/vendor/pytz/zoneinfo/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/pytz/zoneinfo/posixrules.py b/vendor/pytz/zoneinfo/posixrules.py
deleted file mode 100644
index dd34e6e1..00000000
--- a/vendor/pytz/zoneinfo/posixrules.py
+++ /dev/null
@@ -1,490 +0,0 @@
-'''tzinfo timezone information for posixrules.'''
-from pytz.tzinfo import DstTzInfo
-from pytz.tzinfo import memorized_datetime as d
-from pytz.tzinfo import memorized_ttinfo as i
-
-class posixrules(DstTzInfo):
- '''posixrules timezone definition. See datetime.tzinfo for details'''
-
- zone = 'posixrules'
-
- _utc_transition_times = [
-d(1,1,1,0,0,0),
-d(1918,3,31,7,0,0),
-d(1918,10,27,6,0,0),
-d(1919,3,30,7,0,0),
-d(1919,10,26,6,0,0),
-d(1920,3,28,7,0,0),
-d(1920,10,31,6,0,0),
-d(1921,4,24,7,0,0),
-d(1921,9,25,6,0,0),
-d(1922,4,30,7,0,0),
-d(1922,9,24,6,0,0),
-d(1923,4,29,7,0,0),
-d(1923,9,30,6,0,0),
-d(1924,4,27,7,0,0),
-d(1924,9,28,6,0,0),
-d(1925,4,26,7,0,0),
-d(1925,9,27,6,0,0),
-d(1926,4,25,7,0,0),
-d(1926,9,26,6,0,0),
-d(1927,4,24,7,0,0),
-d(1927,9,25,6,0,0),
-d(1928,4,29,7,0,0),
-d(1928,9,30,6,0,0),
-d(1929,4,28,7,0,0),
-d(1929,9,29,6,0,0),
-d(1930,4,27,7,0,0),
-d(1930,9,28,6,0,0),
-d(1931,4,26,7,0,0),
-d(1931,9,27,6,0,0),
-d(1932,4,24,7,0,0),
-d(1932,9,25,6,0,0),
-d(1933,4,30,7,0,0),
-d(1933,9,24,6,0,0),
-d(1934,4,29,7,0,0),
-d(1934,9,30,6,0,0),
-d(1935,4,28,7,0,0),
-d(1935,9,29,6,0,0),
-d(1936,4,26,7,0,0),
-d(1936,9,27,6,0,0),
-d(1937,4,25,7,0,0),
-d(1937,9,26,6,0,0),
-d(1938,4,24,7,0,0),
-d(1938,9,25,6,0,0),
-d(1939,4,30,7,0,0),
-d(1939,9,24,6,0,0),
-d(1940,4,28,7,0,0),
-d(1940,9,29,6,0,0),
-d(1941,4,27,7,0,0),
-d(1941,9,28,6,0,0),
-d(1942,2,9,7,0,0),
-d(1945,8,14,23,0,0),
-d(1945,9,30,6,0,0),
-d(1946,4,28,7,0,0),
-d(1946,9,29,6,0,0),
-d(1947,4,27,7,0,0),
-d(1947,9,28,6,0,0),
-d(1948,4,25,7,0,0),
-d(1948,9,26,6,0,0),
-d(1949,4,24,7,0,0),
-d(1949,9,25,6,0,0),
-d(1950,4,30,7,0,0),
-d(1950,9,24,6,0,0),
-d(1951,4,29,7,0,0),
-d(1951,9,30,6,0,0),
-d(1952,4,27,7,0,0),
-d(1952,9,28,6,0,0),
-d(1953,4,26,7,0,0),
-d(1953,9,27,6,0,0),
-d(1954,4,25,7,0,0),
-d(1954,9,26,6,0,0),
-d(1955,4,24,7,0,0),
-d(1955,10,30,6,0,0),
-d(1956,4,29,7,0,0),
-d(1956,10,28,6,0,0),
-d(1957,4,28,7,0,0),
-d(1957,10,27,6,0,0),
-d(1958,4,27,7,0,0),
-d(1958,10,26,6,0,0),
-d(1959,4,26,7,0,0),
-d(1959,10,25,6,0,0),
-d(1960,4,24,7,0,0),
-d(1960,10,30,6,0,0),
-d(1961,4,30,7,0,0),
-d(1961,10,29,6,0,0),
-d(1962,4,29,7,0,0),
-d(1962,10,28,6,0,0),
-d(1963,4,28,7,0,0),
-d(1963,10,27,6,0,0),
-d(1964,4,26,7,0,0),
-d(1964,10,25,6,0,0),
-d(1965,4,25,7,0,0),
-d(1965,10,31,6,0,0),
-d(1966,4,24,7,0,0),
-d(1966,10,30,6,0,0),
-d(1967,4,30,7,0,0),
-d(1967,10,29,6,0,0),
-d(1968,4,28,7,0,0),
-d(1968,10,27,6,0,0),
-d(1969,4,27,7,0,0),
-d(1969,10,26,6,0,0),
-d(1970,4,26,7,0,0),
-d(1970,10,25,6,0,0),
-d(1971,4,25,7,0,0),
-d(1971,10,31,6,0,0),
-d(1972,4,30,7,0,0),
-d(1972,10,29,6,0,0),
-d(1973,4,29,7,0,0),
-d(1973,10,28,6,0,0),
-d(1974,1,6,7,0,0),
-d(1974,10,27,6,0,0),
-d(1975,2,23,7,0,0),
-d(1975,10,26,6,0,0),
-d(1976,4,25,7,0,0),
-d(1976,10,31,6,0,0),
-d(1977,4,24,7,0,0),
-d(1977,10,30,6,0,0),
-d(1978,4,30,7,0,0),
-d(1978,10,29,6,0,0),
-d(1979,4,29,7,0,0),
-d(1979,10,28,6,0,0),
-d(1980,4,27,7,0,0),
-d(1980,10,26,6,0,0),
-d(1981,4,26,7,0,0),
-d(1981,10,25,6,0,0),
-d(1982,4,25,7,0,0),
-d(1982,10,31,6,0,0),
-d(1983,4,24,7,0,0),
-d(1983,10,30,6,0,0),
-d(1984,4,29,7,0,0),
-d(1984,10,28,6,0,0),
-d(1985,4,28,7,0,0),
-d(1985,10,27,6,0,0),
-d(1986,4,27,7,0,0),
-d(1986,10,26,6,0,0),
-d(1987,4,5,7,0,0),
-d(1987,10,25,6,0,0),
-d(1988,4,3,7,0,0),
-d(1988,10,30,6,0,0),
-d(1989,4,2,7,0,0),
-d(1989,10,29,6,0,0),
-d(1990,4,1,7,0,0),
-d(1990,10,28,6,0,0),
-d(1991,4,7,7,0,0),
-d(1991,10,27,6,0,0),
-d(1992,4,5,7,0,0),
-d(1992,10,25,6,0,0),
-d(1993,4,4,7,0,0),
-d(1993,10,31,6,0,0),
-d(1994,4,3,7,0,0),
-d(1994,10,30,6,0,0),
-d(1995,4,2,7,0,0),
-d(1995,10,29,6,0,0),
-d(1996,4,7,7,0,0),
-d(1996,10,27,6,0,0),
-d(1997,4,6,7,0,0),
-d(1997,10,26,6,0,0),
-d(1998,4,5,7,0,0),
-d(1998,10,25,6,0,0),
-d(1999,4,4,7,0,0),
-d(1999,10,31,6,0,0),
-d(2000,4,2,7,0,0),
-d(2000,10,29,6,0,0),
-d(2001,4,1,7,0,0),
-d(2001,10,28,6,0,0),
-d(2002,4,7,7,0,0),
-d(2002,10,27,6,0,0),
-d(2003,4,6,7,0,0),
-d(2003,10,26,6,0,0),
-d(2004,4,4,7,0,0),
-d(2004,10,31,6,0,0),
-d(2005,4,3,7,0,0),
-d(2005,10,30,6,0,0),
-d(2006,4,2,7,0,0),
-d(2006,10,29,6,0,0),
-d(2007,3,11,7,0,0),
-d(2007,11,4,6,0,0),
-d(2008,3,9,7,0,0),
-d(2008,11,2,6,0,0),
-d(2009,3,8,7,0,0),
-d(2009,11,1,6,0,0),
-d(2010,3,14,7,0,0),
-d(2010,11,7,6,0,0),
-d(2011,3,13,7,0,0),
-d(2011,11,6,6,0,0),
-d(2012,3,11,7,0,0),
-d(2012,11,4,6,0,0),
-d(2013,3,10,7,0,0),
-d(2013,11,3,6,0,0),
-d(2014,3,9,7,0,0),
-d(2014,11,2,6,0,0),
-d(2015,3,8,7,0,0),
-d(2015,11,1,6,0,0),
-d(2016,3,13,7,0,0),
-d(2016,11,6,6,0,0),
-d(2017,3,12,7,0,0),
-d(2017,11,5,6,0,0),
-d(2018,3,11,7,0,0),
-d(2018,11,4,6,0,0),
-d(2019,3,10,7,0,0),
-d(2019,11,3,6,0,0),
-d(2020,3,8,7,0,0),
-d(2020,11,1,6,0,0),
-d(2021,3,14,7,0,0),
-d(2021,11,7,6,0,0),
-d(2022,3,13,7,0,0),
-d(2022,11,6,6,0,0),
-d(2023,3,12,7,0,0),
-d(2023,11,5,6,0,0),
-d(2024,3,10,7,0,0),
-d(2024,11,3,6,0,0),
-d(2025,3,9,7,0,0),
-d(2025,11,2,6,0,0),
-d(2026,3,8,7,0,0),
-d(2026,11,1,6,0,0),
-d(2027,3,14,7,0,0),
-d(2027,11,7,6,0,0),
-d(2028,3,12,7,0,0),
-d(2028,11,5,6,0,0),
-d(2029,3,11,7,0,0),
-d(2029,11,4,6,0,0),
-d(2030,3,10,7,0,0),
-d(2030,11,3,6,0,0),
-d(2031,3,9,7,0,0),
-d(2031,11,2,6,0,0),
-d(2032,3,14,7,0,0),
-d(2032,11,7,6,0,0),
-d(2033,3,13,7,0,0),
-d(2033,11,6,6,0,0),
-d(2034,3,12,7,0,0),
-d(2034,11,5,6,0,0),
-d(2035,3,11,7,0,0),
-d(2035,11,4,6,0,0),
-d(2036,3,9,7,0,0),
-d(2036,11,2,6,0,0),
-d(2037,3,8,7,0,0),
-d(2037,11,1,6,0,0),
- ]
-
- _transition_info = [
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EWT'),
-i(-14400,3600,'EPT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
-i(-14400,3600,'EDT'),
-i(-18000,0,'EST'),
- ]
-
-posixrules = posixrules()
-
diff --git a/vendor/requests/LICENSE b/vendor/requests/LICENSE
deleted file mode 100644
index 8c1dd448..00000000
--- a/vendor/requests/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2016 Kenneth Reitz
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/vendor/requests/__init__.py b/vendor/requests/__init__.py
deleted file mode 100644
index 9c3b7695..00000000
--- a/vendor/requests/__init__.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# __
-# /__) _ _ _ _ _/ _
-# / ( (- (/ (/ (- _) / _)
-# /
-
-"""
-Requests HTTP library
-~~~~~~~~~~~~~~~~~~~~~
-
-Requests is an HTTP library, written in Python, for human beings. Basic GET
-usage:
-
- >>> import requests
- >>> r = requests.get('https://www.python.org')
- >>> r.status_code
- 200
- >>> 'Python is a programming language' in r.content
- True
-
-... or POST:
-
- >>> payload = dict(key1='value1', key2='value2')
- >>> r = requests.post('http://httpbin.org/post', data=payload)
- >>> print(r.text)
- {
- ...
- "form": {
- "key2": "value2",
- "key1": "value1"
- },
- ...
- }
-
-The other HTTP methods are supported - see `requests.api`. Full documentation
-is at .
-
-:copyright: (c) 2016 by Kenneth Reitz.
-:license: Apache 2.0, see LICENSE for more details.
-"""
-
-__title__ = 'requests'
-__version__ = '2.11.1'
-__build__ = 0x021101
-__author__ = 'Kenneth Reitz'
-__license__ = 'Apache 2.0'
-__copyright__ = 'Copyright 2016 Kenneth Reitz'
-
-# Attempt to enable urllib3's SNI support, if possible
-try:
- from .packages.urllib3.contrib import pyopenssl
- pyopenssl.inject_into_urllib3()
-except ImportError:
- pass
-
-import warnings
-
-# urllib3's DependencyWarnings should be silenced.
-from .packages.urllib3.exceptions import DependencyWarning
-warnings.simplefilter('ignore', DependencyWarning)
-
-from . import utils
-from .models import Request, Response, PreparedRequest
-from .api import request, get, head, post, patch, put, delete, options
-from .sessions import session, Session
-from .status_codes import codes
-from .exceptions import (
- RequestException, Timeout, URLRequired,
- TooManyRedirects, HTTPError, ConnectionError,
- FileModeWarning, ConnectTimeout, ReadTimeout
-)
-
-# Set default logging handler to avoid "No handler found" warnings.
-import logging
-try: # Python 2.7+
- from logging import NullHandler
-except ImportError:
- class NullHandler(logging.Handler):
- def emit(self, record):
- pass
-
-logging.getLogger(__name__).addHandler(NullHandler())
-
-# FileModeWarnings go off per the default.
-warnings.simplefilter('default', FileModeWarning, append=True)
diff --git a/vendor/requests/adapters.py b/vendor/requests/adapters.py
deleted file mode 100644
index 4a4c4e0e..00000000
--- a/vendor/requests/adapters.py
+++ /dev/null
@@ -1,503 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.adapters
-~~~~~~~~~~~~~~~~~
-
-This module contains the transport adapters that Requests uses to define
-and maintain connections.
-"""
-
-import os.path
-import socket
-
-from .models import Response
-from .packages.urllib3.poolmanager import PoolManager, proxy_from_url
-from .packages.urllib3.response import HTTPResponse
-from .packages.urllib3.util import Timeout as TimeoutSauce
-from .packages.urllib3.util.retry import Retry
-from .compat import urlparse, basestring
-from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers,
- prepend_scheme_if_needed, get_auth_from_url, urldefragauth,
- select_proxy, to_native_string)
-from .structures import CaseInsensitiveDict
-from .packages.urllib3.exceptions import ClosedPoolError
-from .packages.urllib3.exceptions import ConnectTimeoutError
-from .packages.urllib3.exceptions import HTTPError as _HTTPError
-from .packages.urllib3.exceptions import MaxRetryError
-from .packages.urllib3.exceptions import NewConnectionError
-from .packages.urllib3.exceptions import ProxyError as _ProxyError
-from .packages.urllib3.exceptions import ProtocolError
-from .packages.urllib3.exceptions import ReadTimeoutError
-from .packages.urllib3.exceptions import SSLError as _SSLError
-from .packages.urllib3.exceptions import ResponseError
-from .cookies import extract_cookies_to_jar
-from .exceptions import (ConnectionError, ConnectTimeout, ReadTimeout, SSLError,
- ProxyError, RetryError, InvalidSchema)
-from .auth import _basic_auth_str
-
-try:
- from .packages.urllib3.contrib.socks import SOCKSProxyManager
-except ImportError:
- def SOCKSProxyManager(*args, **kwargs):
- raise InvalidSchema("Missing dependencies for SOCKS support.")
-
-DEFAULT_POOLBLOCK = False
-DEFAULT_POOLSIZE = 10
-DEFAULT_RETRIES = 0
-DEFAULT_POOL_TIMEOUT = None
-
-
-class BaseAdapter(object):
- """The Base Transport Adapter"""
-
- def __init__(self):
- super(BaseAdapter, self).__init__()
-
- def send(self, request, stream=False, timeout=None, verify=True,
- cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
-
- :param request: The :class:`PreparedRequest ` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) ` tuple.
- :type timeout: float or tuple
- :param verify: (optional) Whether to verify SSL certificates.
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- """
- raise NotImplementedError
-
- def close(self):
- """Cleans up adapter specific items."""
- raise NotImplementedError
-
-
-class HTTPAdapter(BaseAdapter):
- """The built-in HTTP Adapter for urllib3.
-
- Provides a general-case interface for Requests sessions to contact HTTP and
- HTTPS urls by implementing the Transport Adapter interface. This class will
- usually be created by the :class:`Session ` class under the
- covers.
-
- :param pool_connections: The number of urllib3 connection pools to cache.
- :param pool_maxsize: The maximum number of connections to save in the pool.
- :param max_retries: The maximum number of retries each connection
- should attempt. Note, this applies only to failed DNS lookups, socket
- connections and connection timeouts, never to requests where data has
- made it to the server. By default, Requests does not retry failed
- connections. If you need granular control over the conditions under
- which we retry a request, import urllib3's ``Retry`` class and pass
- that instead.
- :param pool_block: Whether the connection pool should block for connections.
-
- Usage::
-
- >>> import requests
- >>> s = requests.Session()
- >>> a = requests.adapters.HTTPAdapter(max_retries=3)
- >>> s.mount('http://', a)
- """
- __attrs__ = ['max_retries', 'config', '_pool_connections', '_pool_maxsize',
- '_pool_block']
-
- def __init__(self, pool_connections=DEFAULT_POOLSIZE,
- pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_RETRIES,
- pool_block=DEFAULT_POOLBLOCK):
- if max_retries == DEFAULT_RETRIES:
- self.max_retries = Retry(0, read=False)
- else:
- self.max_retries = Retry.from_int(max_retries)
- self.config = {}
- self.proxy_manager = {}
-
- super(HTTPAdapter, self).__init__()
-
- self._pool_connections = pool_connections
- self._pool_maxsize = pool_maxsize
- self._pool_block = pool_block
-
- self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)
-
- def __getstate__(self):
- return dict((attr, getattr(self, attr, None)) for attr in
- self.__attrs__)
-
- def __setstate__(self, state):
- # Can't handle by adding 'proxy_manager' to self.__attrs__ because
- # self.poolmanager uses a lambda function, which isn't pickleable.
- self.proxy_manager = {}
- self.config = {}
-
- for attr, value in state.items():
- setattr(self, attr, value)
-
- self.init_poolmanager(self._pool_connections, self._pool_maxsize,
- block=self._pool_block)
-
- def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs):
- """Initializes a urllib3 PoolManager.
-
- This method should not be called from user code, and is only
- exposed for use when subclassing the
- :class:`HTTPAdapter `.
-
- :param connections: The number of urllib3 connection pools to cache.
- :param maxsize: The maximum number of connections to save in the pool.
- :param block: Block when no free connections are available.
- :param pool_kwargs: Extra keyword arguments used to initialize the Pool Manager.
- """
- # save these values for pickling
- self._pool_connections = connections
- self._pool_maxsize = maxsize
- self._pool_block = block
-
- self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize,
- block=block, strict=True, **pool_kwargs)
-
- def proxy_manager_for(self, proxy, **proxy_kwargs):
- """Return urllib3 ProxyManager for the given proxy.
-
- This method should not be called from user code, and is only
- exposed for use when subclassing the
- :class:`HTTPAdapter `.
-
- :param proxy: The proxy to return a urllib3 ProxyManager for.
- :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager.
- :returns: ProxyManager
- :rtype: requests.packages.urllib3.ProxyManager
- """
- if proxy in self.proxy_manager:
- manager = self.proxy_manager[proxy]
- elif proxy.lower().startswith('socks'):
- username, password = get_auth_from_url(proxy)
- manager = self.proxy_manager[proxy] = SOCKSProxyManager(
- proxy,
- username=username,
- password=password,
- num_pools=self._pool_connections,
- maxsize=self._pool_maxsize,
- block=self._pool_block,
- **proxy_kwargs
- )
- else:
- proxy_headers = self.proxy_headers(proxy)
- manager = self.proxy_manager[proxy] = proxy_from_url(
- proxy,
- proxy_headers=proxy_headers,
- num_pools=self._pool_connections,
- maxsize=self._pool_maxsize,
- block=self._pool_block,
- **proxy_kwargs)
-
- return manager
-
- def cert_verify(self, conn, url, verify, cert):
- """Verify a SSL certificate. This method should not be called from user
- code, and is only exposed for use when subclassing the
- :class:`HTTPAdapter `.
-
- :param conn: The urllib3 connection object associated with the cert.
- :param url: The requested URL.
- :param verify: Whether we should actually verify the certificate.
- :param cert: The SSL certificate to verify.
- """
- if url.lower().startswith('https') and verify:
-
- cert_loc = None
-
- # Allow self-specified cert location.
- if verify is not True:
- cert_loc = verify
-
- if not cert_loc:
- cert_loc = DEFAULT_CA_BUNDLE_PATH
-
- if not cert_loc:
- raise Exception("Could not find a suitable SSL CA certificate bundle.")
-
- conn.cert_reqs = 'CERT_REQUIRED'
-
- if not os.path.isdir(cert_loc):
- conn.ca_certs = cert_loc
- else:
- conn.ca_cert_dir = cert_loc
- else:
- conn.cert_reqs = 'CERT_NONE'
- conn.ca_certs = None
- conn.ca_cert_dir = None
-
- if cert:
- if not isinstance(cert, basestring):
- conn.cert_file = cert[0]
- conn.key_file = cert[1]
- else:
- conn.cert_file = cert
-
- def build_response(self, req, resp):
- """Builds a :class:`Response ` object from a urllib3
- response. This should not be called from user code, and is only exposed
- for use when subclassing the
- :class:`HTTPAdapter `
-
- :param req: The :class:`PreparedRequest ` used to generate the response.
- :param resp: The urllib3 response object.
- :rtype: requests.Response
- """
- response = Response()
-
- # Fallback to None if there's no status_code, for whatever reason.
- response.status_code = getattr(resp, 'status', None)
-
- # Make headers case-insensitive.
- response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {}))
-
- # Set encoding.
- response.encoding = get_encoding_from_headers(response.headers)
- response.raw = resp
- response.reason = response.raw.reason
-
- if isinstance(req.url, bytes):
- response.url = req.url.decode('utf-8')
- else:
- response.url = req.url
-
- # Add new cookies from the server.
- extract_cookies_to_jar(response.cookies, req, resp)
-
- # Give the Response some context.
- response.request = req
- response.connection = self
-
- return response
-
- def get_connection(self, url, proxies=None):
- """Returns a urllib3 connection for the given URL. This should not be
- called from user code, and is only exposed for use when subclassing the
- :class:`HTTPAdapter `.
-
- :param url: The URL to connect to.
- :param proxies: (optional) A Requests-style dictionary of proxies used on this request.
- :rtype: requests.packages.urllib3.ConnectionPool
- """
- proxy = select_proxy(url, proxies)
-
- if proxy:
- proxy = prepend_scheme_if_needed(proxy, 'http')
- proxy_manager = self.proxy_manager_for(proxy)
- conn = proxy_manager.connection_from_url(url)
- else:
- # Only scheme should be lower case
- parsed = urlparse(url)
- url = parsed.geturl()
- conn = self.poolmanager.connection_from_url(url)
-
- return conn
-
- def close(self):
- """Disposes of any internal state.
-
- Currently, this closes the PoolManager and any active ProxyManager,
- which closes any pooled connections.
- """
- self.poolmanager.clear()
- for proxy in self.proxy_manager.values():
- proxy.clear()
-
- def request_url(self, request, proxies):
- """Obtain the url to use when making the final request.
-
- If the message is being sent through a HTTP proxy, the full URL has to
- be used. Otherwise, we should only use the path portion of the URL.
-
- This should not be called from user code, and is only exposed for use
- when subclassing the
- :class:`HTTPAdapter `.
-
- :param request: The :class:`PreparedRequest ` being sent.
- :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs.
- :rtype: str
- """
- proxy = select_proxy(request.url, proxies)
- scheme = urlparse(request.url).scheme
-
- is_proxied_http_request = (proxy and scheme != 'https')
- using_socks_proxy = False
- if proxy:
- proxy_scheme = urlparse(proxy).scheme.lower()
- using_socks_proxy = proxy_scheme.startswith('socks')
-
- url = request.path_url
- if is_proxied_http_request and not using_socks_proxy:
- url = urldefragauth(request.url)
-
- return url
-
- def add_headers(self, request, **kwargs):
- """Add any headers needed by the connection. As of v2.0 this does
- nothing by default, but is left for overriding by users that subclass
- the :class:`HTTPAdapter `.
-
- This should not be called from user code, and is only exposed for use
- when subclassing the
- :class:`HTTPAdapter `.
-
- :param request: The :class:`PreparedRequest ` to add headers to.
- :param kwargs: The keyword arguments from the call to send().
- """
- pass
-
- def proxy_headers(self, proxy):
- """Returns a dictionary of the headers to add to any request sent
- through a proxy. This works with urllib3 magic to ensure that they are
- correctly sent to the proxy, rather than in a tunnelled request if
- CONNECT is being used.
-
- This should not be called from user code, and is only exposed for use
- when subclassing the
- :class:`HTTPAdapter `.
-
- :param proxies: The url of the proxy being used for this request.
- :rtype: dict
- """
- headers = {}
- username, password = get_auth_from_url(proxy)
-
- if username and password:
- headers['Proxy-Authorization'] = _basic_auth_str(username,
- password)
-
- return headers
-
- def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
-
- :param request: The :class:`PreparedRequest ` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) ` tuple.
- :type timeout: float or tuple
- :param verify: (optional) Whether to verify SSL certificates.
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- :rtype: requests.Response
- """
-
- conn = self.get_connection(request.url, proxies)
-
- self.cert_verify(conn, request.url, verify, cert)
- url = self.request_url(request, proxies)
- self.add_headers(request)
-
- chunked = not (request.body is None or 'Content-Length' in request.headers)
-
- if isinstance(timeout, tuple):
- try:
- connect, read = timeout
- timeout = TimeoutSauce(connect=connect, read=read)
- except ValueError as e:
- # this may raise a string formatting error.
- err = ("Invalid timeout {0}. Pass a (connect, read) "
- "timeout tuple, or a single float to set "
- "both timeouts to the same value".format(timeout))
- raise ValueError(err)
- else:
- timeout = TimeoutSauce(connect=timeout, read=timeout)
-
- try:
- if not chunked:
- resp = conn.urlopen(
- method=request.method,
- url=url,
- body=request.body,
- headers=request.headers,
- redirect=False,
- assert_same_host=False,
- preload_content=False,
- decode_content=False,
- retries=self.max_retries,
- timeout=timeout
- )
-
- # Send the request.
- else:
- if hasattr(conn, 'proxy_pool'):
- conn = conn.proxy_pool
-
- low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
-
- try:
- low_conn.putrequest(request.method,
- url,
- skip_accept_encoding=True)
-
- for header, value in request.headers.items():
- low_conn.putheader(header, value)
-
- low_conn.endheaders()
-
- for i in request.body:
- low_conn.send(hex(len(i))[2:].encode('utf-8'))
- low_conn.send(b'\r\n')
- low_conn.send(i)
- low_conn.send(b'\r\n')
- low_conn.send(b'0\r\n\r\n')
-
- # Receive the response from the server
- try:
- # For Python 2.7+ versions, use buffering of HTTP
- # responses
- r = low_conn.getresponse(buffering=True)
- except TypeError:
- # For compatibility with Python 2.6 versions and back
- r = low_conn.getresponse()
-
- resp = HTTPResponse.from_httplib(
- r,
- pool=conn,
- connection=low_conn,
- preload_content=False,
- decode_content=False
- )
- except:
- # If we hit any problems here, clean up the connection.
- # Then, reraise so that we can handle the actual exception.
- low_conn.close()
- raise
-
- except (ProtocolError, socket.error) as err:
- raise ConnectionError(err, request=request)
-
- except MaxRetryError as e:
- if isinstance(e.reason, ConnectTimeoutError):
- # TODO: Remove this in 3.0.0: see #2811
- if not isinstance(e.reason, NewConnectionError):
- raise ConnectTimeout(e, request=request)
-
- if isinstance(e.reason, ResponseError):
- raise RetryError(e, request=request)
-
- if isinstance(e.reason, _ProxyError):
- raise ProxyError(e, request=request)
-
- raise ConnectionError(e, request=request)
-
- except ClosedPoolError as e:
- raise ConnectionError(e, request=request)
-
- except _ProxyError as e:
- raise ProxyError(e)
-
- except (_SSLError, _HTTPError) as e:
- if isinstance(e, _SSLError):
- raise SSLError(e, request=request)
- elif isinstance(e, ReadTimeoutError):
- raise ReadTimeout(e, request=request)
- else:
- raise
-
- return self.build_response(request, resp)
diff --git a/vendor/requests/api.py b/vendor/requests/api.py
deleted file mode 100644
index 580b3f35..00000000
--- a/vendor/requests/api.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.api
-~~~~~~~~~~~~
-
-This module implements the Requests API.
-
-:copyright: (c) 2012 by Kenneth Reitz.
-:license: Apache2, see LICENSE for more details.
-"""
-
-from . import sessions
-
-
-def request(method, url, **kwargs):
- """Constructs and sends a :class:`Request `.
-
- :param method: method for the new :class:`Request` object.
- :param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
- :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
- :param json: (optional) json data to send in the body of the :class:`Request`.
- :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
- :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
- :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
- ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
- or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
- defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
- to add for the file.
- :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
- :param timeout: (optional) How long to wait for the server to send data
- before giving up, as a float, or a :ref:`(connect timeout, read
- timeout) ` tuple.
- :type timeout: float or tuple
- :param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
- :type allow_redirects: bool
- :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
- :param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``.
- :param stream: (optional) if ``False``, the response content will be immediately downloaded.
- :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
- :return: :class:`Response ` object
- :rtype: requests.Response
-
- Usage::
-
- >>> import requests
- >>> req = requests.request('GET', 'http://httpbin.org/get')
-
- """
-
- # By using the 'with' statement we are sure the session is closed, thus we
- # avoid leaving sockets open which can trigger a ResourceWarning in some
- # cases, and look like a memory leak in others.
- with sessions.Session() as session:
- return session.request(method=method, url=url, **kwargs)
-
-
-def get(url, params=None, **kwargs):
- """Sends a GET request.
-
- :param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- kwargs.setdefault('allow_redirects', True)
- return request('get', url, params=params, **kwargs)
-
-
-def options(url, **kwargs):
- """Sends a OPTIONS request.
-
- :param url: URL for the new :class:`Request` object.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- kwargs.setdefault('allow_redirects', True)
- return request('options', url, **kwargs)
-
-
-def head(url, **kwargs):
- """Sends a HEAD request.
-
- :param url: URL for the new :class:`Request` object.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- kwargs.setdefault('allow_redirects', False)
- return request('head', url, **kwargs)
-
-
-def post(url, data=None, json=None, **kwargs):
- """Sends a POST request.
-
- :param url: URL for the new :class:`Request` object.
- :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
- :param json: (optional) json data to send in the body of the :class:`Request`.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- return request('post', url, data=data, json=json, **kwargs)
-
-
-def put(url, data=None, **kwargs):
- """Sends a PUT request.
-
- :param url: URL for the new :class:`Request` object.
- :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- return request('put', url, data=data, **kwargs)
-
-
-def patch(url, data=None, **kwargs):
- """Sends a PATCH request.
-
- :param url: URL for the new :class:`Request` object.
- :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- return request('patch', url, data=data, **kwargs)
-
-
-def delete(url, **kwargs):
- """Sends a DELETE request.
-
- :param url: URL for the new :class:`Request` object.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response ` object
- :rtype: requests.Response
- """
-
- return request('delete', url, **kwargs)
diff --git a/vendor/requests/auth.py b/vendor/requests/auth.py
deleted file mode 100644
index 49bcb24a..00000000
--- a/vendor/requests/auth.py
+++ /dev/null
@@ -1,252 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.auth
-~~~~~~~~~~~~~
-
-This module contains the authentication handlers for Requests.
-"""
-
-import os
-import re
-import time
-import hashlib
-import threading
-
-from base64 import b64encode
-
-from .compat import urlparse, str
-from .cookies import extract_cookies_to_jar
-from .utils import parse_dict_header, to_native_string
-from .status_codes import codes
-
-CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded'
-CONTENT_TYPE_MULTI_PART = 'multipart/form-data'
-
-
-def _basic_auth_str(username, password):
- """Returns a Basic Auth string."""
-
- authstr = 'Basic ' + to_native_string(
- b64encode(('%s:%s' % (username, password)).encode('latin1')).strip()
- )
-
- return authstr
-
-
-class AuthBase(object):
- """Base class that all auth implementations derive from"""
-
- def __call__(self, r):
- raise NotImplementedError('Auth hooks must be callable.')
-
-
-class HTTPBasicAuth(AuthBase):
- """Attaches HTTP Basic Authentication to the given Request object."""
-
- def __init__(self, username, password):
- self.username = username
- self.password = password
-
- def __eq__(self, other):
- return all([
- self.username == getattr(other, 'username', None),
- self.password == getattr(other, 'password', None)
- ])
-
- def __ne__(self, other):
- return not self == other
-
- def __call__(self, r):
- r.headers['Authorization'] = _basic_auth_str(self.username, self.password)
- return r
-
-
-class HTTPProxyAuth(HTTPBasicAuth):
- """Attaches HTTP Proxy Authentication to a given Request object."""
-
- def __call__(self, r):
- r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password)
- return r
-
-
-class HTTPDigestAuth(AuthBase):
- """Attaches HTTP Digest Authentication to the given Request object."""
-
- def __init__(self, username, password):
- self.username = username
- self.password = password
- # Keep state in per-thread local storage
- self._thread_local = threading.local()
-
- def init_per_thread_state(self):
- # Ensure state is initialized just once per-thread
- if not hasattr(self._thread_local, 'init'):
- self._thread_local.init = True
- self._thread_local.last_nonce = ''
- self._thread_local.nonce_count = 0
- self._thread_local.chal = {}
- self._thread_local.pos = None
- self._thread_local.num_401_calls = None
-
- def build_digest_header(self, method, url):
- """
- :rtype: str
- """
-
- realm = self._thread_local.chal['realm']
- nonce = self._thread_local.chal['nonce']
- qop = self._thread_local.chal.get('qop')
- algorithm = self._thread_local.chal.get('algorithm')
- opaque = self._thread_local.chal.get('opaque')
- hash_utf8 = None
-
- if algorithm is None:
- _algorithm = 'MD5'
- else:
- _algorithm = algorithm.upper()
- # lambdas assume digest modules are imported at the top level
- if _algorithm == 'MD5' or _algorithm == 'MD5-SESS':
- def md5_utf8(x):
- if isinstance(x, str):
- x = x.encode('utf-8')
- return hashlib.md5(x).hexdigest()
- hash_utf8 = md5_utf8
- elif _algorithm == 'SHA':
- def sha_utf8(x):
- if isinstance(x, str):
- x = x.encode('utf-8')
- return hashlib.sha1(x).hexdigest()
- hash_utf8 = sha_utf8
-
- KD = lambda s, d: hash_utf8("%s:%s" % (s, d))
-
- if hash_utf8 is None:
- return None
-
- # XXX not implemented yet
- entdig = None
- p_parsed = urlparse(url)
- #: path is request-uri defined in RFC 2616 which should not be empty
- path = p_parsed.path or "/"
- if p_parsed.query:
- path += '?' + p_parsed.query
-
- A1 = '%s:%s:%s' % (self.username, realm, self.password)
- A2 = '%s:%s' % (method, path)
-
- HA1 = hash_utf8(A1)
- HA2 = hash_utf8(A2)
-
- if nonce == self._thread_local.last_nonce:
- self._thread_local.nonce_count += 1
- else:
- self._thread_local.nonce_count = 1
- ncvalue = '%08x' % self._thread_local.nonce_count
- s = str(self._thread_local.nonce_count).encode('utf-8')
- s += nonce.encode('utf-8')
- s += time.ctime().encode('utf-8')
- s += os.urandom(8)
-
- cnonce = (hashlib.sha1(s).hexdigest()[:16])
- if _algorithm == 'MD5-SESS':
- HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce))
-
- if not qop:
- respdig = KD(HA1, "%s:%s" % (nonce, HA2))
- elif qop == 'auth' or 'auth' in qop.split(','):
- noncebit = "%s:%s:%s:%s:%s" % (
- nonce, ncvalue, cnonce, 'auth', HA2
- )
- respdig = KD(HA1, noncebit)
- else:
- # XXX handle auth-int.
- return None
-
- self._thread_local.last_nonce = nonce
-
- # XXX should the partial digests be encoded too?
- base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \
- 'response="%s"' % (self.username, realm, nonce, path, respdig)
- if opaque:
- base += ', opaque="%s"' % opaque
- if algorithm:
- base += ', algorithm="%s"' % algorithm
- if entdig:
- base += ', digest="%s"' % entdig
- if qop:
- base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce)
-
- return 'Digest %s' % (base)
-
- def handle_redirect(self, r, **kwargs):
- """Reset num_401_calls counter on redirects."""
- if r.is_redirect:
- self._thread_local.num_401_calls = 1
-
- def handle_401(self, r, **kwargs):
- """
- Takes the given response and tries digest-auth, if needed.
-
- :rtype: requests.Response
- """
-
- if self._thread_local.pos is not None:
- # Rewind the file position indicator of the body to where
- # it was to resend the request.
- r.request.body.seek(self._thread_local.pos)
- s_auth = r.headers.get('www-authenticate', '')
-
- if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2:
-
- self._thread_local.num_401_calls += 1
- pat = re.compile(r'digest ', flags=re.IGNORECASE)
- self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1))
-
- # Consume content and release the original connection
- # to allow our new request to reuse the same one.
- r.content
- r.close()
- prep = r.request.copy()
- extract_cookies_to_jar(prep._cookies, r.request, r.raw)
- prep.prepare_cookies(prep._cookies)
-
- prep.headers['Authorization'] = self.build_digest_header(
- prep.method, prep.url)
- _r = r.connection.send(prep, **kwargs)
- _r.history.append(r)
- _r.request = prep
-
- return _r
-
- self._thread_local.num_401_calls = 1
- return r
-
- def __call__(self, r):
- # Initialize per-thread state, if needed
- self.init_per_thread_state()
- # If we have a saved nonce, skip the 401
- if self._thread_local.last_nonce:
- r.headers['Authorization'] = self.build_digest_header(r.method, r.url)
- try:
- self._thread_local.pos = r.body.tell()
- except AttributeError:
- # In the case of HTTPDigestAuth being reused and the body of
- # the previous request was a file-like object, pos has the
- # file position of the previous body. Ensure it's set to
- # None.
- self._thread_local.pos = None
- r.register_hook('response', self.handle_401)
- r.register_hook('response', self.handle_redirect)
- self._thread_local.num_401_calls = 1
-
- return r
-
- def __eq__(self, other):
- return all([
- self.username == getattr(other, 'username', None),
- self.password == getattr(other, 'password', None)
- ])
-
- def __ne__(self, other):
- return not self == other
diff --git a/vendor/requests/cacert.pem b/vendor/requests/cacert.pem
deleted file mode 100644
index 6a66daa9..00000000
--- a/vendor/requests/cacert.pem
+++ /dev/null
@@ -1,5616 +0,0 @@
-
-# Issuer: O=Equifax OU=Equifax Secure Certificate Authority
-# Subject: O=Equifax OU=Equifax Secure Certificate Authority
-# Label: "Equifax Secure CA"
-# Serial: 903804111
-# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
-# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
-# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-
-# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
-# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
-# Label: "GlobalSign Root CA"
-# Serial: 4835703278459707669005204
-# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a
-# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c
-# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
-# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
-# Label: "GlobalSign Root CA - R2"
-# Serial: 4835703278459682885658125
-# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30
-# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe
-# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Label: "Verisign Class 3 Public Primary Certification Authority - G3"
-# Serial: 206684696279472310254277870180966723415
-# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09
-# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6
-# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Label: "Verisign Class 4 Public Primary Certification Authority - G3"
-# Serial: 314531972711909413743075096039378935511
-# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df
-# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d
-# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
-# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
-# Label: "Entrust.net Premium 2048 Secure Server CA"
-# Serial: 946069240
-# MD5 Fingerprint: ee:29:31:bc:32:7e:9a:e6:e8:b5:f7:51:b4:34:71:90
-# SHA1 Fingerprint: 50:30:06:09:1d:97:d4:f5:ae:39:f7:cb:e7:92:7d:7d:65:2d:34:31
-# SHA256 Fingerprint: 6d:c4:71:72:e0:1c:bc:b0:bf:62:58:0d:89:5f:e2:b8:ac:9a:d4:f8:73:80:1e:0c:10:b9:c8:37:d2:1e:b1:77
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
-MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
-sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
-MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
-XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
-HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
-HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
-j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
-U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
-u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
-bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
-fF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
-# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
-# Label: "Baltimore CyberTrust Root"
-# Serial: 33554617
-# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4
-# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74
-# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Label: "AddTrust Low-Value Services Root"
-# Serial: 1
-# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc
-# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d
-# SHA256 Fingerprint: 8c:72:09:27:9a:c0:4e:27:5e:16:d0:7f:d3:b7:75:e8:01:54:b5:96:80:46:e3:1f:52:dd:25:76:63:24:e9:a7
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
-MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
-VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
-CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
-tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
-dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
-PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
-+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
-BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
-MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
-7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
-43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
-pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
-WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
-# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
-# Label: "AddTrust External Root"
-# Serial: 1
-# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f
-# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68
-# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Label: "AddTrust Public Services Root"
-# Serial: 1
-# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f
-# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5
-# SHA256 Fingerprint: 07:91:ca:07:49:b2:07:82:aa:d3:c7:d7:bd:0c:df:c9:48:58:35:84:3e:b2:d7:99:60:09:ce:43:ab:6c:69:27
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
-MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
-ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
-BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
-6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
-GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
-dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
-1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
-62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
-BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
-b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
-IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
-iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
-4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
-XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
-# Label: "AddTrust Qualified Certificates Root"
-# Serial: 1
-# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb
-# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf
-# SHA256 Fingerprint: 80:95:21:08:05:db:4b:bc:35:5e:44:28:d8:fd:6e:c2:cd:e3:ab:5f:b9:7a:99:42:98:8e:b8:f4:dc:d0:60:16
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
-MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
-EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
-BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
-xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
-87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
-2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
-WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
-0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
-A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
-pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
-aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
-hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
-hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
-P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
-iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
-xqE=
------END CERTIFICATE-----
-
-# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
-# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
-# Label: "Entrust Root Certification Authority"
-# Serial: 1164660820
-# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4
-# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9
-# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
-Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
-KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
-NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
-NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
-ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
-BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
-Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
-4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
-KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
-rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
-94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
-sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
-gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
-kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
-vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
-O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
-AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
-9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
-eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
-0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-# Issuer: O=RSA Security Inc OU=RSA Security 2048 V3
-# Subject: O=RSA Security Inc OU=RSA Security 2048 V3
-# Label: "RSA Security 2048 v3"
-# Serial: 13297492616345471454730593562152402946
-# MD5 Fingerprint: 77:0d:19:b1:21:fd:00:42:9c:3e:0c:a5:dd:0b:02:8e
-# SHA1 Fingerprint: 25:01:90:19:cf:fb:d9:99:1c:b7:68:25:74:8d:94:5f:30:93:95:42
-# SHA256 Fingerprint: af:8b:67:62:a1:e5:28:22:81:61:a9:5d:5c:55:9e:e2:66:27:8f:75:d7:9e:83:01:89:a5:03:50:6a:bd:6b:4c
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
-MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
-eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
-/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
-wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
-AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
-PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
-AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
-MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
-HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
-Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
-rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
-6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
-7CAFYd4=
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc.
-# Subject: CN=GeoTrust Global CA O=GeoTrust Inc.
-# Label: "GeoTrust Global CA"
-# Serial: 144470
-# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5
-# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12
-# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
-# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
-# Label: "GeoTrust Global CA 2"
-# Serial: 1
-# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9
-# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d
-# SHA256 Fingerprint: ca:2d:82:a0:86:77:07:2f:8a:b6:76:4f:f0:35:67:6c:fe:3e:5e:32:5e:01:21:72:df:3f:92:09:6d:b7:9b:85
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
-IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
-R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
-PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
-Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
-TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
-5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
-S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
-2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
-EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
-EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
-/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
-A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
-abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
-I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
-4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc.
-# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc.
-# Label: "GeoTrust Universal CA"
-# Serial: 1
-# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48
-# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79
-# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
-IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
-VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
-cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
-QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
-F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
-c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
-mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
-VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
-teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
-f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
-Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
-nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
-/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
-MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
-IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
-ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
-uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
-Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
-QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
-koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
-ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
-DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
-bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
-# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
-# Label: "GeoTrust Universal CA 2"
-# Serial: 1
-# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7
-# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79
-# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
-VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
-c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
-WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
-FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
-XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
-se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
-KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
-IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
-y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
-hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
-QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
-Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
-HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
-KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
-L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
-Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
-ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
-T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
-GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
-1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
-OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
-6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
-QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-# Issuer: CN=Visa eCommerce Root O=VISA OU=Visa International Service Association
-# Subject: CN=Visa eCommerce Root O=VISA OU=Visa International Service Association
-# Label: "Visa eCommerce Root"
-# Serial: 25952180776285836048024890241505565794
-# MD5 Fingerprint: fc:11:b8:d8:08:93:30:00:6d:23:f9:7e:eb:52:1e:02
-# SHA1 Fingerprint: 70:17:9b:86:8c:00:a4:fa:60:91:52:22:3f:9f:3e:32:bd:e0:05:62
-# SHA256 Fingerprint: 69:fa:c9:bd:55:fb:0a:c7:8d:53:bb:ee:5c:f1:d5:97:98:9f:d0:aa:ab:20:a2:51:51:bd:f1:73:3e:e7:d1:22
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
-MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
-cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
-CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
-dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
-cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
-2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
-lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
-ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
-299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
-vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
-dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
-AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
-AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
-LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
-7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
-++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-# Issuer: CN=Certum CA O=Unizeto Sp. z o.o.
-# Subject: CN=Certum CA O=Unizeto Sp. z o.o.
-# Label: "Certum Root CA"
-# Serial: 65568
-# MD5 Fingerprint: 2c:8f:9f:66:1d:18:90:b1:47:26:9d:8e:86:82:8c:a9
-# SHA1 Fingerprint: 62:52:dc:40:f7:11:43:a2:2f:de:9e:f7:34:8e:06:42:51:b1:81:18
-# SHA256 Fingerprint: d8:e0:fe:bc:1d:b2:e3:8d:00:94:0f:37:d2:7d:41:34:4d:99:3e:73:4b:99:d5:65:6d:97:78:d4:d8:14:36:24
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
-jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
-ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
-ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
-Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
-AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
-HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
-uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
-TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
-xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
-CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
-O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
-6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-# Issuer: CN=AAA Certificate Services O=Comodo CA Limited
-# Subject: CN=AAA Certificate Services O=Comodo CA Limited
-# Label: "Comodo AAA Services root"
-# Serial: 1
-# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0
-# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49
-# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-# Issuer: CN=Secure Certificate Services O=Comodo CA Limited
-# Subject: CN=Secure Certificate Services O=Comodo CA Limited
-# Label: "Comodo Secure Services root"
-# Serial: 1
-# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd
-# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1
-# SHA256 Fingerprint: bd:81:ce:3b:4f:65:91:d1:1a:67:b5:fc:7a:47:fd:ef:25:52:1b:f9:aa:4e:18:b9:e3:df:2e:34:a7:80:3b:e8
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
-ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
-fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
-BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
-cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
-HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
-CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
-3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
-6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
-HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
-Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
-Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
-DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
-5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
-gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
-aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
-izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited
-# Subject: CN=Trusted Certificate Services O=Comodo CA Limited
-# Label: "Comodo Trusted Services root"
-# Serial: 1
-# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27
-# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd
-# SHA256 Fingerprint: 3f:06:e5:56:81:d4:96:f5:be:16:9e:b5:38:9f:9f:2b:8f:f6:1e:17:08:df:68:81:72:48:49:cd:5d:27:cb:69
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
-aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
-MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
-BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
-VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
-fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
-TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
-fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
-1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
-kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
-A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
-ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
-dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
-Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
-HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
-jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
-xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
-dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority
-# Subject: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority
-# Label: "QuoVadis Root CA"
-# Serial: 985026699
-# MD5 Fingerprint: 27:de:36:fe:72:b7:00:03:00:9d:f4:f0:1e:6c:04:24
-# SHA1 Fingerprint: de:3f:40:bd:50:93:d3:9b:6c:60:f6:da:bc:07:62:01:00:89:76:c9
-# SHA256 Fingerprint: a4:5e:de:3b:bb:f0:9c:8a:e1:5c:72:ef:c0:72:68:d6:93:a2:1c:99:6f:d5:1e:67:ca:07:94:60:fd:6d:88:73
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
-SnQ2+Q==
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited
-# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited
-# Label: "QuoVadis Root CA 2"
-# Serial: 1289
-# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b
-# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7
-# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
-GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
-Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
-WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
-rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
-+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
-ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
-Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
-PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
-/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
-oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
-yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
-EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
-A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
-MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
-BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
-g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
-fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
-WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
-B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
-hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
-TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
-mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
-ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
-4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
-8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited
-# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited
-# Label: "QuoVadis Root CA 3"
-# Serial: 1478
-# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf
-# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85
-# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
-V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
-4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
-H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
-8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
-vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
-mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
-btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
-T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
-WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
-c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
-4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
-VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
-CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
-aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
-dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
-czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
-A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
-Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
-7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
-d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
-+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
-4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
-t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
-DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
-k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
-zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
-Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
-mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
-4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-# Issuer: O=SECOM Trust.net OU=Security Communication RootCA1
-# Subject: O=SECOM Trust.net OU=Security Communication RootCA1
-# Label: "Security Communication Root CA"
-# Serial: 0
-# MD5 Fingerprint: f1:bc:63:6a:54:e0:b5:27:f5:cd:e7:1a:e3:4d:6e:4a
-# SHA1 Fingerprint: 36:b1:2b:49:f9:81:9e:d7:4c:9e:bc:38:0f:c6:56:8f:5d:ac:b2:f7
-# SHA256 Fingerprint: e7:5e:72:ed:9f:56:0e:ec:6e:b4:80:00:73:a4:3f:c3:ad:19:19:5a:39:22:82:01:78:95:97:4a:99:02:6b:6c
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
-MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
-dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
-WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
-VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
-9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
-DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
-Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
-QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
-xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
-A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
-kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
-Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
-JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
-RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
------END CERTIFICATE-----
-
-# Issuer: CN=Sonera Class2 CA O=Sonera
-# Subject: CN=Sonera Class2 CA O=Sonera
-# Label: "Sonera Class 2 Root CA"
-# Serial: 29
-# MD5 Fingerprint: a3:ec:75:0f:2e:88:df:fa:48:01:4e:0b:5c:48:6f:fb
-# SHA1 Fingerprint: 37:f7:6d:e6:07:7c:90:c5:b1:3e:93:1a:b7:41:10:b4:f2:e4:9a:27
-# SHA256 Fingerprint: 79:08:b4:03:14:c1:38:10:0b:51:8d:07:35:80:7f:fb:fc:f8:51:8a:00:95:33:71:05:ba:38:6b:15:3d:d9:27
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
-MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
-MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
-BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
-Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
-5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
-3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
-vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
-8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
-DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
-zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
-3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
-FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
-Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
-ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
------END CERTIFICATE-----
-
-# Issuer: CN=Staat der Nederlanden Root CA O=Staat der Nederlanden
-# Subject: CN=Staat der Nederlanden Root CA O=Staat der Nederlanden
-# Label: "Staat der Nederlanden Root CA"
-# Serial: 10000010
-# MD5 Fingerprint: 60:84:7c:5a:ce:db:0c:d4:cb:a7:e9:fe:02:c6:a9:c0
-# SHA1 Fingerprint: 10:1d:fa:3f:d5:0b:cb:bb:9b:b5:60:0c:19:55:a4:1a:f4:73:3a:04
-# SHA256 Fingerprint: d4:1d:82:9e:8c:16:59:82:2a:f9:3f:ce:62:bf:fc:de:26:4f:c8:4e:8b:95:0c:5f:f2:75:d0:52:35:46:95:a3
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
-TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
-MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
-ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
-ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
-9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
-hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
-tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
-BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
-SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
-OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
-cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
-7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
-eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
-u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
-7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Label: "UTN DATACorp SGC Root CA"
-# Serial: 91374294542884689855167577680241077609
-# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06
-# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4
-# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
-kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
-IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
-EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
-dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
-E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
-D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
-4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
-lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
-bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
-o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
-LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
-BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
-AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
-j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
-KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
-2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
-mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
-# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
-# Label: "UTN USERFirst Hardware Root CA"
-# Serial: 91374294542884704022267039221184531197
-# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39
-# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7
-# SHA256 Fingerprint: 6e:a5:47:41:d0:04:66:7e:ed:1b:48:16:63:4a:a3:a7:9e:6e:4b:96:95:0f:82:79:da:fc:8d:9b:d8:81:21:37
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
-lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
-SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
-A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
-MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
-d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
-cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
-0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
-M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
-MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
-oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
-DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
-oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
-dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
-bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
-BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
-CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
-CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
-3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
-KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
------END CERTIFICATE-----
-
-# Issuer: CN=Chambers of Commerce Root O=AC Camerfirma SA CIF A82743287 OU=http://www.chambersign.org
-# Subject: CN=Chambers of Commerce Root O=AC Camerfirma SA CIF A82743287 OU=http://www.chambersign.org
-# Label: "Camerfirma Chambers of Commerce Root"
-# Serial: 0
-# MD5 Fingerprint: b0:01:ee:14:d9:af:29:18:94:76:8e:f1:69:33:2a:84
-# SHA1 Fingerprint: 6e:3a:55:a4:19:0c:19:5c:93:84:3c:c0:db:72:2e:31:30:61:f0:b1
-# SHA256 Fingerprint: 0c:25:8a:12:a5:67:4a:ef:25:f2:8b:a7:dc:fa:ec:ee:a3:48:e5:41:e6:f5:cc:4e:e6:3b:71:b3:61:60:6a:c3
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
-b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
-MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
-ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
-IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
-AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
-unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
-BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
-7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
-0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
-roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
-A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
-aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
-26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
-BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
-EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
-BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
-AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
-p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
-1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
-XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
-eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
-tGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-# Issuer: CN=Global Chambersign Root O=AC Camerfirma SA CIF A82743287 OU=http://www.chambersign.org
-# Subject: CN=Global Chambersign Root O=AC Camerfirma SA CIF A82743287 OU=http://www.chambersign.org
-# Label: "Camerfirma Global Chambersign Root"
-# Serial: 0
-# MD5 Fingerprint: c5:e6:7b:bf:06:d0:4f:43:ed:c4:7a:65:8a:fb:6b:19
-# SHA1 Fingerprint: 33:9b:6b:14:50:24:9b:55:7a:01:87:72:84:d9:e0:2f:c3:d2:d8:e9
-# SHA256 Fingerprint: ef:3c:b4:17:fc:8e:bf:6f:97:87:6c:9e:4e:ce:39:de:1e:a5:fe:64:91:41:d1:02:8b:7d:11:c0:b2:29:8c:ed
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
-YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
-MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
-NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
-A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
-A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
-Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
-QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
-eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
-B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
-z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
-AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
-ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
-TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
-MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
-VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
-VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
-AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
-bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
-ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
-VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
-ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
-AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-# Issuer: CN=NetLock Kozjegyzoi (Class A) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Subject: CN=NetLock Kozjegyzoi (Class A) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Label: "NetLock Notary (Class A) Root"
-# Serial: 259
-# MD5 Fingerprint: 86:38:6d:5e:49:63:6c:85:5c:db:6d:dc:94:b7:d0:f7
-# SHA1 Fingerprint: ac:ed:5f:65:53:fd:25:ce:01:5f:1f:7a:48:3b:6a:74:9f:61:78:c6
-# SHA256 Fingerprint: 7f:12:cd:5f:7e:5e:29:0e:c7:d8:51:79:d5:b7:2c:20:a5:be:75:08:ff:db:5b:f8:1a:b9:68:4a:7f:c9:f6:67
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV
-MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe
-TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
-dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0
-N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC
-dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu
-MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL
-b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD
-zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi
-3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8
-WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY
-Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi
-NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
-ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4
-QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0
-YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz
-aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm
-ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg
-ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs
-amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv
-IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3
-Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6
-ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1
-YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg
-dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs
-b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
-CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
-xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP
-0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ
-QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk
-f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK
-8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
-# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
-# Label: "XRamp Global CA Root"
-# Serial: 107108908803651509692980124233745014957
-# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1
-# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6
-# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
-gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
-MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
-UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
-NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
-dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
-dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
-38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
-KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
-DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
-qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
-JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
-PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
-BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
-jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
-eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
-vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
-IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
-i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
-O+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
-# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
-# Label: "Go Daddy Class 2 CA"
-# Serial: 0
-# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67
-# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4
-# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
-
-# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
-# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
-# Label: "Starfield Class 2 CA"
-# Serial: 0
-# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24
-# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a
-# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
-MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
-U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
-NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
-ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
-ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
-DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
-8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
-+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
-X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
-K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
-1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
-A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
-zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
-YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
-bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
-DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
-L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
-eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
-VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
-WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
-# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
-# Label: "StartCom Certification Authority"
-# Serial: 1
-# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16
-# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f
-# SHA256 Fingerprint: c7:66:a9:be:f2:d4:07:1c:86:3a:31:aa:49:20:e8:13:b2:d1:98:60:8c:b7:b7:cf:e2:11:43:b8:36:df:09:ea
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
-LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
-BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
-dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
-cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
-YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
-dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
-bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
-YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
-TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
-9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
-jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
-FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
-ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
-ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
-EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
-L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
-O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
-um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
-NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
------END CERTIFICATE-----
-
-# Issuer: O=Government Root Certification Authority
-# Subject: O=Government Root Certification Authority
-# Label: "Taiwan GRCA"
-# Serial: 42023070807708724159991140556527066870
-# MD5 Fingerprint: 37:85:44:53:32:45:1f:20:f0:f3:95:e1:25:c4:43:4e
-# SHA1 Fingerprint: f4:8b:11:bf:de:ab:be:94:54:20:71:e6:41:de:6b:be:88:2b:40:b9
-# SHA256 Fingerprint: 76:00:29:5e:ef:e8:5b:9e:1f:d6:24:db:76:06:2a:aa:ae:59:81:8a:54:d2:77:4c:d4:c0:b2:c0:11:31:e1:b3
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
-MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
-PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
-IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
-gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
-yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
-F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
-jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
-ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
-VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
-YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
-EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
-Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
-DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
-MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
-UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
-qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
-ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
-JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
-hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
-EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
-nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
-udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
-ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
-LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
-pYYsfPQS
------END CERTIFICATE-----
-
-# Issuer: CN=Swisscom Root CA 1 O=Swisscom OU=Digital Certificate Services
-# Subject: CN=Swisscom Root CA 1 O=Swisscom OU=Digital Certificate Services
-# Label: "Swisscom Root CA 1"
-# Serial: 122348795730808398873664200247279986742
-# MD5 Fingerprint: f8:38:7c:77:88:df:2c:16:68:2e:c2:e2:52:4b:b8:f9
-# SHA1 Fingerprint: 5f:3a:fc:0a:8b:64:f6:86:67:34:74:df:7e:a9:a2:fe:f9:fa:7a:51
-# SHA256 Fingerprint: 21:db:20:12:36:60:bb:2e:d4:18:20:5d:a1:1e:e7:a8:5a:65:e2:bc:6e:55:b5:af:7e:78:99:c8:a2:66:d9:2e
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
-m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
-FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
-TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
-EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
-kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
-HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
-vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
-19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
-L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
-bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
-JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
-K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
-ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
-Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
-sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
-3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
-ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
-mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
-b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
-rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
-hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
-zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
-MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Assured ID Root CA"
-# Serial: 17154717934120587862167794914071425081
-# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72
-# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43
-# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
-JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
-mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
-wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
-VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
-AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
-AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
-pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
-dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
-fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
-NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
-H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Global Root CA"
-# Serial: 10944719598952040374951832963794454346
-# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e
-# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36
-# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
-QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
-CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
-nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
-43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
-T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
-gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
-BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
-TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
-DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
-hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
-06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
-PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
-YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert High Assurance EV Root CA"
-# Serial: 3553400076410547919724730734378100087
-# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a
-# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25
-# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
-
-# Issuer: CN=Class 2 Primary CA O=Certplus
-# Subject: CN=Class 2 Primary CA O=Certplus
-# Label: "Certplus Class 2 Primary CA"
-# Serial: 177770208045934040241468760488327595043
-# MD5 Fingerprint: 88:2c:8c:52:b8:a2:3c:f3:f7:bb:03:ea:ae:ac:42:0b
-# SHA1 Fingerprint: 74:20:74:41:72:9c:dd:92:ec:79:31:d8:23:10:8d:c2:81:92:e2:bb
-# SHA256 Fingerprint: 0f:99:3c:8a:ef:97:ba:af:56:87:14:0e:d5:9a:d1:82:1b:b4:af:ac:f0:aa:9a:58:b5:d5:7a:33:8a:3a:fb:cb
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw
-PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
-cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9
-MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
-IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ
-ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR
-VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL
-kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd
-EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas
-H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0
-HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
-DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4
-QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
-Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/
-AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
-yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
-FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
-ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
-kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-# Issuer: CN=DST Root CA X3 O=Digital Signature Trust Co.
-# Subject: CN=DST Root CA X3 O=Digital Signature Trust Co.
-# Label: "DST Root CA X3"
-# Serial: 91299735575339953335919266965803778155
-# MD5 Fingerprint: 41:03:52:dc:0f:f7:50:1b:16:f0:02:8e:ba:6f:45:c5
-# SHA1 Fingerprint: da:c9:02:4f:54:d8:f6:df:94:93:5f:b1:73:26:38:ca:6a:d7:7c:13
-# SHA256 Fingerprint: 06:87:26:03:31:a7:24:03:d9:09:f1:05:e6:9b:cf:0d:32:e1:bd:24:93:ff:c6:d9:20:6d:11:bc:d6:77:07:39
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-# Issuer: CN=DST ACES CA X6 O=Digital Signature Trust OU=DST ACES
-# Subject: CN=DST ACES CA X6 O=Digital Signature Trust OU=DST ACES
-# Label: "DST ACES CA X6"
-# Serial: 17771143917277623872238992636097467865
-# MD5 Fingerprint: 21:d8:4c:82:2b:99:09:33:a2:eb:14:24:8d:8e:5f:e8
-# SHA1 Fingerprint: 40:54:da:6f:1c:3f:40:74:ac:ed:0f:ec:cd:db:79:d1:53:fb:90:1d
-# SHA256 Fingerprint: 76:7c:95:5a:76:41:2c:89:af:68:8e:90:a1:c7:0f:55:6c:fd:6b:60:25:db:ea:10:41:6d:7e:b6:83:1f:8c:40
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx
-ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w
-MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD
-VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx
-FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu
-ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7
-gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH
-fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a
-ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT
-ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk
-c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto
-dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
-aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI
-hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk
-QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/
-h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR
-rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2
-9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Label: "TURKTRUST Certificate Services Provider Root 2"
-# Serial: 1
-# MD5 Fingerprint: 37:a5:6e:d4:b1:25:84:97:b7:fd:56:15:7a:f9:a2:00
-# SHA1 Fingerprint: b4:35:d4:e1:11:9d:1c:66:90:a7:49:eb:b3:94:bd:63:7b:a7:82:b7
-# SHA256 Fingerprint: c4:70:cf:54:7e:23:02:b9:77:fb:29:dd:71:a8:9a:7b:6c:1f:60:77:7b:03:29:f5:60:17:f3:28:bf:4f:6b:e6
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3
-WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv
-bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU
-UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw
-bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe
-LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef
-J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh
-R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ
-Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX
-JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
-zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S
-Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
-KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq
-ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz
-gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH
-uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS
-y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI=
------END CERTIFICATE-----
-
-# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG
-# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG
-# Label: "SwissSign Gold CA - G2"
-# Serial: 13492815561806991280
-# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93
-# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61
-# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
-BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
-biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
-MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
-d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
-76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
-bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
-6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
-emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
-MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
-MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
-MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
-FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
-aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
-gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
-qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
-lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
-8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
-45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
-UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
-O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
-bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
-GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
-77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
-hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
-92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
-Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
-ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
-Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-# Issuer: CN=SwissSign Silver CA - G2 O=SwissSign AG
-# Subject: CN=SwissSign Silver CA - G2 O=SwissSign AG
-# Label: "SwissSign Silver CA - G2"
-# Serial: 5700383053117599563
-# MD5 Fingerprint: e0:06:a1:c9:7d:cf:c9:fc:0d:c0:56:75:96:d8:62:13
-# SHA1 Fingerprint: 9b:aa:e5:9f:56:ee:21:cb:43:5a:be:25:93:df:a7:f0:40:d1:1d:cb
-# SHA256 Fingerprint: be:6c:4d:a2:bb:b9:ba:59:b6:f3:93:97:68:37:42:46:c3:c0:05:99:3f:a9:8f:02:0d:1d:ed:be:d4:8a:81:d5
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
-BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
-IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
-RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
-U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
-Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
-YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
-nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
-6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
-eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
-c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
-MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
-HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
-jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
-5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
-rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
-F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
-wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
-AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
-WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
-xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
-2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
-IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
-aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
-em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
-dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
-OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
-hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
-tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
-# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
-# Label: "GeoTrust Primary Certification Authority"
-# Serial: 32798226551256963324313806436981982369
-# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf
-# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96
-# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
-R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
-MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
-AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
-ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
-7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
-kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
-mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
-KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
-6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
-4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
-oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
-UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
-AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
-# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
-# Label: "thawte Primary Root CA"
-# Serial: 69529181992039203566298953787712940909
-# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12
-# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81
-# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
-NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
-LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
-A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
-W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
-3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
-6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
-Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
-NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
-r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
-DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
-YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
-/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
-LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
-jVaMaA==
------END CERTIFICATE-----
-
-# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
-# Label: "VeriSign Class 3 Public Primary Certification Authority - G5"
-# Serial: 33037644167568058970164719475676101450
-# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c
-# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5
-# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
-ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
-nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
-t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
-SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
-BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
-rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
-NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
-BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
-BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
-MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
-p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
-5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
-WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
-4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
-hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-# Issuer: CN=SecureTrust CA O=SecureTrust Corporation
-# Subject: CN=SecureTrust CA O=SecureTrust Corporation
-# Label: "SecureTrust CA"
-# Serial: 17199774589125277788362757014266862032
-# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1
-# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11
-# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
-MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
-cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
-Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
-0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
-wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
-7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
-8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
-BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
-JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
-NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
-6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
-3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
-D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
-CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-# Issuer: CN=Secure Global CA O=SecureTrust Corporation
-# Subject: CN=Secure Global CA O=SecureTrust Corporation
-# Label: "Secure Global CA"
-# Serial: 9751836167731051554232119481456978597
-# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de
-# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b
-# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
-MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
-Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
-iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
-/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
-jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
-HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
-sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
-gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
-KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
-AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
-URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
-H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
-I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
-iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited
-# Subject: CN=COMODO Certification Authority O=COMODO CA Limited
-# Label: "COMODO Certification Authority"
-# Serial: 104350513648249232941998508985834464573
-# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75
-# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b
-# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
-gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
-BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
-MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
-YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
-RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
-UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
-2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
-Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
-+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
-DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
-nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
-/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
-PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
-QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
-SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
-IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
-zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
-BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
-ZQ==
------END CERTIFICATE-----
-
-# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
-# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
-# Label: "Network Solutions Certificate Authority"
-# Serial: 116697915152937497490437556386812487904
-# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e
-# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce
-# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
-MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
-UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
-ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
-c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
-OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
-mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
-BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
-qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
-gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
-bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
-dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
-6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
-h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
-/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
-pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-# Issuer: CN=WellsSecure Public Root Certificate Authority O=Wells Fargo WellsSecure OU=Wells Fargo Bank NA
-# Subject: CN=WellsSecure Public Root Certificate Authority O=Wells Fargo WellsSecure OU=Wells Fargo Bank NA
-# Label: "WellsSecure Public Root Certificate Authority"
-# Serial: 1
-# MD5 Fingerprint: 15:ac:a5:c2:92:2d:79:bc:e8:7f:cb:67:ed:02:cf:36
-# SHA1 Fingerprint: e7:b4:f6:9d:61:ec:90:69:db:7e:90:a7:40:1a:3c:f4:7d:4f:e8:ee
-# SHA256 Fingerprint: a7:12:72:ae:aa:a3:cf:e8:72:7f:7f:b3:9f:0f:b3:d1:e5:42:6e:90:60:b0:6e:e6:f1:3e:9a:3c:58:33:cd:43
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs
-cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v
-dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0
-MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl
-bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD
-DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r
-WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU
-Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs
-HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj
-z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf
-SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl
-AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG
-KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P
-AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j
-BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC
-VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX
-ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB
-ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd
-/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB
-A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn
-k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9
-iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv
-2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited
-# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited
-# Label: "COMODO ECC Certification Authority"
-# Serial: 41578283867086692638256921589707938090
-# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23
-# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11
-# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
-IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
-MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
-ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
-T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
-FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
-cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
-BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
-fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
-GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-# Issuer: CN=IGC/A O=PM/SGDN OU=DCSSI
-# Subject: CN=IGC/A O=PM/SGDN OU=DCSSI
-# Label: "IGC/A"
-# Serial: 245102874772
-# MD5 Fingerprint: 0c:7f:dd:6a:f4:2a:b9:c8:9b:bd:20:7e:a9:db:5c:37
-# SHA1 Fingerprint: 60:d6:89:74:b5:c2:65:9e:8a:0f:c1:88:7c:88:d2:46:69:1b:18:2c
-# SHA256 Fingerprint: b9:be:a7:86:0a:96:2e:a3:61:1d:ab:97:ab:6d:a3:e2:1c:10:68:b9:7d:55:57:5e:d0:e1:12:79:c1:1c:89:32
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
-AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
-TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
-9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
-MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
-BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
-MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
-LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
-s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
-xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
-u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
-F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
-Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
-PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
-HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
-NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
-AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
-L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
-YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
-NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
-0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
------END CERTIFICATE-----
-
-# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication EV RootCA1
-# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication EV RootCA1
-# Label: "Security Communication EV RootCA1"
-# Serial: 0
-# MD5 Fingerprint: 22:2d:a6:01:ea:7c:0a:f7:f0:6c:56:43:3f:77:76:d3
-# SHA1 Fingerprint: fe:b8:c4:32:dc:f9:76:9a:ce:ae:3d:d8:90:8f:fd:28:86:65:64:7d
-# SHA256 Fingerprint: a2:2d:ba:68:1e:97:37:6e:2d:39:7d:72:8a:ae:3a:9b:62:96:b9:fd:ba:60:bc:2e:11:f6:47:f2:c6:75:fb:37
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
-MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
-IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
-bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
-RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
-zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
-bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
-MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
-VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
-OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
-tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
-q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
-EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
-Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
-VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-# Issuer: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed
-# Subject: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed
-# Label: "OISTE WISeKey Global Root GA CA"
-# Serial: 86718877871133159090080555911823548314
-# MD5 Fingerprint: bc:6c:51:33:a7:e9:d3:66:63:54:15:72:1b:21:92:93
-# SHA1 Fingerprint: 59:22:a1:e1:5a:ea:16:35:21:f8:98:39:6a:46:46:b0:44:1b:0f:a9
-# SHA256 Fingerprint: 41:c9:23:86:6a:b4:ca:d6:b7:ad:57:80:81:58:2e:02:07:97:a6:cb:df:4f:ff:78:ce:83:96:b3:89:37:d7:f5
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
-ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
-aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
-ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
-NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
-A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
-VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
-SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
-VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
-w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
-mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
-4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
-4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
-EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
-SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
-ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
-vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
-Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
-/L7fCg0=
------END CERTIFICATE-----
-
-# Issuer: CN=Microsec e-Szigno Root CA O=Microsec Ltd. OU=e-Szigno CA
-# Subject: CN=Microsec e-Szigno Root CA O=Microsec Ltd. OU=e-Szigno CA
-# Label: "Microsec e-Szigno Root CA"
-# Serial: 272122594155480254301341951808045322001
-# MD5 Fingerprint: f0:96:b6:2f:c5:10:d5:67:8e:83:25:32:e8:5e:2e:e5
-# SHA1 Fingerprint: 23:88:c9:d3:71:cc:9e:96:3d:ff:7d:3c:a7:ce:fc:d6:25:ec:19:0d
-# SHA256 Fingerprint: 32:7a:3d:76:1a:ba:de:a0:34:eb:99:84:06:27:5c:b1:a4:77:6e:fd:ae:2f:df:6d:01:68:ea:1c:4f:55:67:d0
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
-cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
-b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
-ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
-NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
-TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
-Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
-uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
-LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
-vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
-Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
-62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
-AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
-LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
-BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
-AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
-MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
-ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
-AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
-ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
-AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
-AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
-bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
-Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
-PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
-Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
-EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
-w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
-cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
-HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
-VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
-BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
-b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
-8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
-ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
-7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
-hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
-MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-# Issuer: CN=Certigna O=Dhimyotis
-# Subject: CN=Certigna O=Dhimyotis
-# Label: "Certigna"
-# Serial: 18364802974209362175
-# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff
-# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97
-# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
-BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
-DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
-BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
-QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
-gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
-zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
-130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
-JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
-ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
-AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
-AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
-9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
-bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
-fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
-HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
-t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-# Issuer: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center
-# Subject: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center
-# Label: "Deutsche Telekom Root CA 2"
-# Serial: 38
-# MD5 Fingerprint: 74:01:4a:91:b1:08:c4:58:ce:47:cd:f0:dd:11:53:08
-# SHA1 Fingerprint: 85:a4:08:c0:9c:19:3e:5d:51:58:7d:cd:d6:13:30:fd:8c:de:37:bf
-# SHA256 Fingerprint: b6:19:1a:50:d0:c3:97:7f:7d:a9:9b:cd:aa:c8:6a:22:7d:ae:b9:67:9e:c7:0b:a3:b0:c9:d9:22:71:c1:70:d3
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
-MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
-IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
-IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
-RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
-U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
-IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
-ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
-QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
-rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
-NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
-QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
-txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
-BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
-tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
-IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
-6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
-xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc
-# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc
-# Label: "Cybertrust Global Root"
-# Serial: 4835703278459682877484360
-# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1
-# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6
-# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
-A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
-bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
-ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
-b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
-7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
-J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
-HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
-t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
-FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
-XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
-MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
-hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
-MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
-A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
-Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
-XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
-omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
-A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority
-# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority
-# Label: "ePKI Root Certification Authority"
-# Serial: 28956088682735189655030529057352760477
-# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3
-# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0
-# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
-MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
-ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
-IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
-SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
-SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
-ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
-DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
-TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
-fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
-sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
-WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
-nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
-dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
-NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
-AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
-MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
-uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
-PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
-JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
-gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
-j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
-5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
-o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
-/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
-Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
-W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
-hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-# Issuer: CN=TÜBİTAK UEKAE Kök Sertifika Hizmet Sağlayıcısı - Sürüm 3 O=Türkiye Bilimsel ve Teknolojik Araştırma Kurumu - TÜBİTAK OU=Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü - UEKAE/Kamu Sertifikasyon Merkezi
-# Subject: CN=TÜBİTAK UEKAE Kök Sertifika Hizmet Sağlayıcısı - Sürüm 3 O=Türkiye Bilimsel ve Teknolojik Araştırma Kurumu - TÜBİTAK OU=Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü - UEKAE/Kamu Sertifikasyon Merkezi
-# Label: "T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3"
-# Serial: 17
-# MD5 Fingerprint: ed:41:f5:8c:50:c5:2b:9c:73:e6:ee:6c:eb:c2:a8:26
-# SHA1 Fingerprint: 1b:4b:39:61:26:27:6b:64:91:a2:68:6d:d7:02:43:21:2d:1f:1d:96
-# SHA256 Fingerprint: e4:c7:34:30:d7:a5:b5:09:25:df:43:37:0a:0d:21:6e:9a:79:b9:d6:db:83:73:a0:c6:9e:b1:cc:31:c7:c5:2a
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
-MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
-bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
-VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
-YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
-dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
-Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
-GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
-aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
-QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
-xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
-aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
-IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
-gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
-O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
-fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
-lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
-AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
-NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
-wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
-7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
-gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
-oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
-yZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-# Issuer: CN=Buypass Class 2 CA 1 O=Buypass AS-983163327
-# Subject: CN=Buypass Class 2 CA 1 O=Buypass AS-983163327
-# Label: "Buypass Class 2 CA 1"
-# Serial: 1
-# MD5 Fingerprint: b8:08:9a:f0:03:cc:1b:0d:c8:6c:0b:76:a1:75:64:23
-# SHA1 Fingerprint: a0:a1:ab:90:c9:fc:84:7b:3b:12:61:e8:97:7d:5f:d3:22:61:d3:cc
-# SHA256 Fingerprint: 0f:4e:9c:dd:26:4b:02:55:50:d1:70:80:63:40:21:4f:e9:44:34:c9:b0:2f:69:7e:c7:10:fc:5f:ea:fb:5e:38
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
-Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL
-MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
-VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0
-ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX
-l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB
-HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B
-5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3
-WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD
-AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP
-gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+
-DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu
-BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs
-h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk
-LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-# Issuer: CN=EBG Elektronik Sertifika Hizmet Sağlayıcısı O=EBG Bilişim Teknolojileri ve Hizmetleri A.Ş.
-# Subject: CN=EBG Elektronik Sertifika Hizmet Sağlayıcısı O=EBG Bilişim Teknolojileri ve Hizmetleri A.Ş.
-# Label: "EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1"
-# Serial: 5525761995591021570
-# MD5 Fingerprint: 2c:20:26:9d:cb:1a:4a:00:85:b5:b7:5a:ae:c2:01:37
-# SHA1 Fingerprint: 8c:96:ba:eb:dd:2b:07:07:48:ee:30:32:66:a0:f3:98:6e:7c:ae:58
-# SHA256 Fingerprint: 35:ae:5b:dd:d8:f7:ae:63:5c:ff:ba:56:82:a8:f0:0b:95:f4:84:62:c7:10:8e:e9:a0:e5:29:2b:07:4a:af:b2
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV
-BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt
-ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4
-MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl
-a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h
-4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk
-tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s
-tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL
-dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4
-c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um
-TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z
-+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O
-Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW
-OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW
-fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2
-l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw
-FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+
-8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI
-6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO
-TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME
-wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY
-Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn
-xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q
-DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q
-Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t
-hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4
-7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7
-QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-# Issuer: O=certSIGN OU=certSIGN ROOT CA
-# Subject: O=certSIGN OU=certSIGN ROOT CA
-# Label: "certSIGN ROOT CA"
-# Serial: 35210227249154
-# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17
-# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b
-# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
-AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
-QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
-MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
-0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
-UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
-RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
-OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
-JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
-AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
-BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
-LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
-MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
-44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
-Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
-i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
-9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-# Issuer: CN=CNNIC ROOT O=CNNIC
-# Subject: CN=CNNIC ROOT O=CNNIC
-# Label: "CNNIC ROOT"
-# Serial: 1228079105
-# MD5 Fingerprint: 21:bc:82:ab:49:c4:13:3b:4b:b2:2b:5c:6b:90:9c:19
-# SHA1 Fingerprint: 8b:af:4c:9b:1d:f0:2a:92:f7:da:12:8e:b9:1b:ac:f4:98:60:4b:6f
-# SHA256 Fingerprint: e2:83:93:77:3d:a8:45:a6:79:f2:08:0c:c7:fb:44:a3:b7:a1:c3:79:2c:b7:eb:77:29:fd:cb:6a:8d:99:ae:a7
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
-TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
-MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
-Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
-IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
-dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
-V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
-GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
-v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
-AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
-Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
-76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
-OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
-ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
-yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
-buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
-2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
------END CERTIFICATE-----
-
-# Issuer: O=Japanese Government OU=ApplicationCA
-# Subject: O=Japanese Government OU=ApplicationCA
-# Label: "ApplicationCA - Japanese Government"
-# Serial: 49
-# MD5 Fingerprint: 7e:23:4e:5b:a7:a5:b4:25:e9:00:07:74:11:62:ae:d6
-# SHA1 Fingerprint: 7f:8a:b0:cf:d0:51:87:6a:66:f3:36:0f:47:c8:8d:8c:d3:35:fc:74
-# SHA256 Fingerprint: 2d:47:43:7d:e1:79:51:21:5a:12:f3:c5:8e:51:c7:29:a5:80:26:ef:1f:cc:0a:5f:b3:d9:dc:01:2f:60:0d:19
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
-MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
-b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
-AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
-aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
-j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
-f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
-IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
-FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
-QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
-/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
-k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
-MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
-seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
-hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
-eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
-DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
-B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
-# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
-# Label: "GeoTrust Primary Certification Authority - G3"
-# Serial: 28809105769928564313984085209975885599
-# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05
-# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd
-# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
-mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
-MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
-BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
-BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
-+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
-hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
-5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
-JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
-DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
-huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
-HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
-AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
-zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
-kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
-SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
-spki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
-# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
-# Label: "thawte Primary Root CA - G2"
-# Serial: 71758320672825410020661621085256472406
-# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f
-# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12
-# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
-IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
-BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
-MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
-YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
-dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
-BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
-papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
-DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
-KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
-XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
-# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
-# Label: "thawte Primary Root CA - G3"
-# Serial: 127614157056681299805556476275995414779
-# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31
-# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2
-# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
-rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
-BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
-Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
-LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
-MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
-gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
-YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
-b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
-9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
-zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
-OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
-2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
-oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
-KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
-m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
-MdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
-# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
-# Label: "GeoTrust Primary Certification Authority - G2"
-# Serial: 80682863203381065782177908751794619243
-# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a
-# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0
-# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
-MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
-KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
-MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
-NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
-BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
-So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
-tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
-CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
-qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
-rD6ogRLQy7rQkgu2npaqBA+K
------END CERTIFICATE-----
-
-# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
-# Label: "VeriSign Universal Root Certification Authority"
-# Serial: 85209574734084581917763752644031726877
-# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19
-# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54
-# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
-vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
-ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
-IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
-IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
-bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
-9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
-H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
-LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
-/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
-rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
-WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
-exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
-sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
-seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
-4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
-BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
-lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
-7M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
-# Label: "VeriSign Class 3 Public Primary Certification Authority - G4"
-# Serial: 63143484348153506665311985501458640051
-# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41
-# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a
-# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
-U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
-SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
-biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
-GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
-fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
-aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
-aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
-kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
-4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
-FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-# Issuer: CN=NetLock Arany (Class Gold) FÅ‘tanúsÃtvány O=NetLock Kft. OU=TanúsÃtványkiadók (Certification Services)
-# Subject: CN=NetLock Arany (Class Gold) FÅ‘tanúsÃtvány O=NetLock Kft. OU=TanúsÃtványkiadók (Certification Services)
-# Label: "NetLock Arany (Class Gold) FÅ‘tanúsÃtvány"
-# Serial: 80544274841616
-# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88
-# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91
-# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
-EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
-MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
-cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
-dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
-pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
-b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
-IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
-lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
-AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
-VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
-ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
-BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
-AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
-U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
-bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
-+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
-uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
-XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-# Issuer: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden
-# Subject: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden
-# Label: "Staat der Nederlanden Root CA - G2"
-# Serial: 10000012
-# MD5 Fingerprint: 7c:a5:0f:f8:5b:9a:7d:6d:30:ae:54:5a:e3:42:a2:8a
-# SHA1 Fingerprint: 59:af:82:79:91:86:c7:b4:75:07:cb:cf:03:57:46:eb:04:dd:b7:16
-# SHA256 Fingerprint: 66:8c:83:94:7d:a6:3b:72:4b:ec:e1:74:3c:31:a0:e6:ae:d0:db:8e:c5:b3:1b:e3:77:bb:78:4f:91:b6:71:6f
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
-DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
-qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
-uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
-Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
-pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
-5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
-UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
-GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
-5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
-6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
-eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
-B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
-BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
-L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
-SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
-CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
-5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
-IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
-gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
-+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
-vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
-bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
-N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
-Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
-ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
------END CERTIFICATE-----
-
-# Issuer: CN=CA Disig O=Disig a.s.
-# Subject: CN=CA Disig O=Disig a.s.
-# Label: "CA Disig"
-# Serial: 1
-# MD5 Fingerprint: 3f:45:96:39:e2:50:87:f7:bb:fe:98:0c:3c:20:98:e6
-# SHA1 Fingerprint: 2a:c8:d5:8b:57:ce:bf:2f:49:af:f2:fc:76:8f:51:14:62:90:7a:41
-# SHA256 Fingerprint: 92:bf:51:19:ab:ec:ca:d0:b1:33:2d:c4:e1:d0:5f:ba:75:b5:67:90:44:ee:0c:a2:6e:93:1f:74:4f:2f:33:cf
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
-MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
-AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
-CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
-YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
-Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
-mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
-XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
-S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
-FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
-AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
-ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
-ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
-Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
-DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
-yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
-EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
-EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
-PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-# Issuer: CN=Juur-SK O=AS Sertifitseerimiskeskus
-# Subject: CN=Juur-SK O=AS Sertifitseerimiskeskus
-# Label: "Juur-SK"
-# Serial: 999181308
-# MD5 Fingerprint: aa:8e:5d:d9:f8:db:0a:58:b7:8d:26:87:6c:82:35:55
-# SHA1 Fingerprint: 40:9d:4b:d9:17:b5:5c:27:b6:9b:64:cb:98:22:44:0d:cd:09:b8:89
-# SHA256 Fingerprint: ec:c3:e9:c3:40:75:03:be:e0:91:aa:95:2f:41:34:8f:f8:8b:aa:86:3b:22:64:be:fa:c8:07:90:15:74:e9:39
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN
-AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp
-dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw
-MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw
-CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ
-MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB
-SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz
-ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH
-LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP
-PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL
-2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w
-ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC
-MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk
-AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0
-AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz
-AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz
-AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f
-BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY
-P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi
-CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g
-kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95
-HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS
-na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
-qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
-TbvGRNs2yyqcjg==
------END CERTIFICATE-----
-
-# Issuer: CN=Hongkong Post Root CA 1 O=Hongkong Post
-# Subject: CN=Hongkong Post Root CA 1 O=Hongkong Post
-# Label: "Hongkong Post Root CA 1"
-# Serial: 1000
-# MD5 Fingerprint: a8:0d:6f:39:78:b9:43:6d:77:42:6d:98:5a:cc:23:ca
-# SHA1 Fingerprint: d6:da:a8:20:8d:09:d2:15:4d:24:b5:2f:cb:34:6e:b2:58:b2:8a:58
-# SHA256 Fingerprint: f9:e6:7d:33:6c:51:00:2a:c0:54:c6:32:02:2d:66:dd:a2:e7:e3:ff:f1:0a:d0:61:ed:31:d8:bb:b4:10:cf:b2
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
-FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
-Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
-A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
-b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
-jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
-PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
-ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
-nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
-q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
-MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
-mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
-7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
-oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
-EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
-fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
-AmvZWg==
------END CERTIFICATE-----
-
-# Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc.
-# Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc.
-# Label: "SecureSign RootCA11"
-# Serial: 1
-# MD5 Fingerprint: b7:52:74:e2:92:b4:80:93:f2:75:e4:cc:d7:f2:ea:26
-# SHA1 Fingerprint: 3b:c4:9f:48:f8:f3:73:a0:9c:1e:bd:f8:5b:b1:c3:65:c7:d8:11:b3
-# SHA256 Fingerprint: bf:0f:ee:fb:9e:3a:58:1a:d5:f9:e9:db:75:89:98:57:43:d2:61:08:5c:4d:31:4f:6f:5d:72:59:aa:42:16:12
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
-MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
-A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
-MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
-Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
-QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
-i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
-h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
-MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
-UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
-8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
-h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
-VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
-AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
-KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
-X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
-QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
-pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
-QSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-# Issuer: CN=ACEDICOM Root O=EDICOM OU=PKI
-# Subject: CN=ACEDICOM Root O=EDICOM OU=PKI
-# Label: "ACEDICOM Root"
-# Serial: 7029493972724711941
-# MD5 Fingerprint: 42:81:a0:e2:1c:e3:55:10:de:55:89:42:65:96:22:e6
-# SHA1 Fingerprint: e0:b4:32:2e:b2:f6:a5:68:b6:54:53:84:48:18:4a:50:36:87:43:84
-# SHA256 Fingerprint: 03:95:0f:b4:9a:53:1f:3e:19:91:94:23:98:df:a9:e0:ea:32:d7:ba:1c:dd:9b:c8:5d:b5:7e:d9:40:0b:43:4a
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
-AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
-CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
-MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
-RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
-AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
-09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
-XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
-Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
-t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
-X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
-MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
-fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
-2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
-K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
-ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
-BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
-MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
-RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
-fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
-gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
-I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
-5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
-ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
-MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
-o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
-zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
-GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
-r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
-Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.
-# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.
-# Label: "Microsec e-Szigno Root CA 2009"
-# Serial: 14014712776195784473
-# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1
-# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e
-# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
-ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
-OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
-FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
-Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
-kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
-cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
-fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
-N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
-xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
-+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
-Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
-SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
-mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
-ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
-2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
-HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
-# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
-# Label: "GlobalSign Root CA - R3"
-# Serial: 4835703278459759426209954
-# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28
-# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad
-# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
-
-# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
-# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
-# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068"
-# Serial: 6047274297262753887
-# MD5 Fingerprint: 73:3a:74:7a:ec:bb:a3:96:a6:c2:e4:e2:c8:9b:c0:c3
-# SHA1 Fingerprint: ae:c5:fb:3f:c8:e1:bf:c4:e5:4f:03:07:5a:9a:e8:00:b7:f7:b6:fa
-# SHA256 Fingerprint: 04:04:80:28:bf:1f:28:64:d4:8f:9a:d4:d8:32:94:36:6a:82:88:56:55:3f:3b:14:30:3f:90:14:7f:5d:40:ef
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
-BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
-cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
-MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
-Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
-thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
-cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
-L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
-NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
-X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
-m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
-Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
-EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
-KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
-6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
-OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
-VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
-ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
-AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
-661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
-am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
-ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
-PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
-3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
-SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
-3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
-ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
-StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
-Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
-jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-# Issuer: CN=Izenpe.com O=IZENPE S.A.
-# Subject: CN=Izenpe.com O=IZENPE S.A.
-# Label: "Izenpe.com"
-# Serial: 917563065490389241595536686991402621
-# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73
-# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19
-# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
-MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
-ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
-VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
-b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
-scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
-xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
-LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
-uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
-yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
-JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
-rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
-BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
-hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
-QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
-HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
-Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
-QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
-BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
-A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
-laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
-awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
-JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
-LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
-VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
-LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
-UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
-QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
-naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
-QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-# Issuer: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A.
-# Subject: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A.
-# Label: "Chambers of Commerce Root - 2008"
-# Serial: 11806822484801597146
-# MD5 Fingerprint: 5e:80:9e:84:5a:0e:65:0b:17:02:f3:55:18:2a:3e:d7
-# SHA1 Fingerprint: 78:6a:74:ac:76:ab:14:7f:9c:6a:30:50:ba:9e:a8:7e:fe:9a:ce:3c
-# SHA256 Fingerprint: 06:3e:4a:fa:c4:91:df:d3:32:f3:08:9b:85:42:e9:46:17:d8:93:d7:fe:94:4e:10:a7:93:7e:e2:9d:96:93:c0
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
-IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
-MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
-dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
-EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
-MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
-28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
-VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
-DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
-5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
-ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
-Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
-UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
-+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
-Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
-hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
-HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
-+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
-YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
-L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
-ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
-IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
-HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
-DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
-PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
-5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
-glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
-FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
-pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
-xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
-tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
-jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
-fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
-d0jQ
------END CERTIFICATE-----
-
-# Issuer: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A.
-# Subject: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A.
-# Label: "Global Chambersign Root - 2008"
-# Serial: 14541511773111788494
-# MD5 Fingerprint: 9e:80:ff:78:01:0c:2e:c1:36:bd:fe:96:90:6e:08:f3
-# SHA1 Fingerprint: 4a:bd:ee:ec:95:0d:35:9c:89:ae:c7:52:a1:2c:5b:29:f6:d6:aa:0c
-# SHA256 Fingerprint: 13:63:35:43:93:34:a7:69:80:16:a0:d3:24:de:72:28:4e:07:9d:7b:52:20:bb:8f:bd:74:78:16:ee:be:ba:ca
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
-MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
-cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
-A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
-BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
-KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
-G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
-zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
-ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
-HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
-Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
-yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
-beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
-6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
-zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
-BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
-ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
-ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
-cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
-YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
-CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
-KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
-hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
-UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
-X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
-fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
-a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
-Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
-SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
-AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
-M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
-v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
-# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
-# Label: "Go Daddy Root Certificate Authority - G2"
-# Serial: 0
-# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01
-# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b
-# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
-EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
-ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
-NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
-EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
-AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
-E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
-/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
-DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
-GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
-tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
-AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
-FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
-WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
-9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
-gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
-2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
-4uJEvlz36hz1
------END CERTIFICATE-----
-
-# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
-# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
-# Label: "Starfield Root Certificate Authority - G2"
-# Serial: 0
-# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96
-# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e
-# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
-ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
-MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
-aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
-Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
-nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
-HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
-Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
-dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
-HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
-CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
-sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
-4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
-8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
-mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
-# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
-# Label: "Starfield Services Root Certificate Authority - G2"
-# Serial: 0
-# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2
-# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f
-# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
-ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
-ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
-dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
-OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
-8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
-Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
-hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
-6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
-DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
-AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
-bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
-ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
-qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
-0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
-sSi6
------END CERTIFICATE-----
-
-# Issuer: CN=AffirmTrust Commercial O=AffirmTrust
-# Subject: CN=AffirmTrust Commercial O=AffirmTrust
-# Label: "AffirmTrust Commercial"
-# Serial: 8608355977964138876
-# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7
-# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7
-# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
-Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
-ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
-MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
-yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
-VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
-nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
-XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
-vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
-Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
-N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
-nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-# Issuer: CN=AffirmTrust Networking O=AffirmTrust
-# Subject: CN=AffirmTrust Networking O=AffirmTrust
-# Label: "AffirmTrust Networking"
-# Serial: 8957382827206547757
-# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f
-# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f
-# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
-YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
-kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
-QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
-6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
-yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
-QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
-tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
-QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
-Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
-olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
-x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-# Issuer: CN=AffirmTrust Premium O=AffirmTrust
-# Subject: CN=AffirmTrust Premium O=AffirmTrust
-# Label: "AffirmTrust Premium"
-# Serial: 7893706540734352110
-# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57
-# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27
-# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
-dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
-A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
-cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
-qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
-JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
-+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
-s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
-HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
-70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
-V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
-qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
-5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
-C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
-OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
-FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
-KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
-8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
-MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
-0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
-u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
-u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
-YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
-GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
-RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
-KeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust
-# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust
-# Label: "AffirmTrust Premium ECC"
-# Serial: 8401224907861490260
-# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d
-# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb
-# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
-VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
-cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
-BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
-VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
-0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
-ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
-A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
-aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
-flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
------END CERTIFICATE-----
-
-# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority
-# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority
-# Label: "Certum Trusted Network CA"
-# Serial: 279744
-# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78
-# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e
-# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
-MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
-ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
-cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
-WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
-Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
-IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
-UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
-TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
-BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
-kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
-AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
-HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
-sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
-I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
-J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
-VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-# Issuer: CN=Certinomis - Autorité Racine O=Certinomis OU=0002 433998903
-# Subject: CN=Certinomis - Autorité Racine O=Certinomis OU=0002 433998903
-# Label: "Certinomis - Autorité Racine"
-# Serial: 1
-# MD5 Fingerprint: 7f:30:78:8c:03:e3:ca:c9:0a:e2:c9:ea:1e:aa:55:1a
-# SHA1 Fingerprint: 2e:14:da:ec:28:f0:fa:1e:8e:38:9a:4e:ab:eb:26:c0:0a:d3:83:c3
-# SHA256 Fingerprint: fc:bf:e2:88:62:06:f7:2b:27:59:3c:8b:07:02:97:e1:2d:76:9e:d1:0e:d7:93:07:05:a8:09:8e:ff:c1:4d:17
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
-BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
-Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
-cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
-aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
-F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
-8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
-rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
-/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
-7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
-28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
-lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
-nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
-0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
-5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
-WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
-jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
-ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
-OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
-619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
-2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
-o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
-nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
-5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
-pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
-dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
-BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-# Issuer: CN=Root CA Generalitat Valenciana O=Generalitat Valenciana OU=PKIGVA
-# Subject: CN=Root CA Generalitat Valenciana O=Generalitat Valenciana OU=PKIGVA
-# Label: "Root CA Generalitat Valenciana"
-# Serial: 994436456
-# MD5 Fingerprint: 2c:8c:17:5e:b1:54:ab:93:17:b5:36:5a:db:d1:c6:f2
-# SHA1 Fingerprint: a0:73:e5:c5:bd:43:61:0d:86:4c:21:13:0a:85:58:57:cc:9c:ea:46
-# SHA256 Fingerprint: 8c:4e:df:d0:43:48:f3:22:96:9e:7e:29:a4:cd:4d:ca:00:46:55:06:1c:16:e1:b0:76:42:2e:f3:42:ad:63:0e
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
-UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
-R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
-MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
-JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
-WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
-SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
-u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
-A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
-Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
-MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
-aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
-IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
-cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
-YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
-bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
-bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
-aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
-ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
-YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
-ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
-LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
-Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
-eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
-CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
-A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
-Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
-lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
-b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
-9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
-ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
-IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-# Issuer: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Subject: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Label: "A-Trust-nQual-03"
-# Serial: 93214
-# MD5 Fingerprint: 49:63:ae:27:f4:d5:95:3d:d8:db:24:86:b8:9c:07:53
-# SHA1 Fingerprint: d3:c0:63:f2:19:ed:07:3e:34:ad:5d:75:0b:32:76:29:ff:d5:9a:f2
-# SHA256 Fingerprint: 79:3c:bf:45:59:b9:fd:e3:8a:b2:2d:f1:68:69:f6:98:81:ae:14:c4:b0:13:9a:c7:88:a7:8a:1a:fc:ca:02:fb
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
-VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
-bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
-dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTA1MDgxNzIyMDAw
-MFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
-dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
-ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
-EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
-lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
-znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
-2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
-k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
-2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
-VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAVdRU0VlIXLOThaq/Yy/kgM40ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fG
-KOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmrsQd7TZjTXLDR8KdCoLXEjq/+
-8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZdJXDRZslo+S4R
-FGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmE
-DNuxUCAKGkq6ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
-# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
-# Label: "TWCA Root Certification Authority"
-# Serial: 1
-# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79
-# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48
-# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
-MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
-V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
-WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
-LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
-AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
-K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
-RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
-rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
-3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
-hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
-MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
-XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
-lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
-aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
-YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2
-# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2
-# Label: "Security Communication RootCA2"
-# Serial: 0
-# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43
-# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74
-# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
-DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
-dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
-YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
-OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
-zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
-VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
-hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
-ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
-awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
-OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
-coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
-okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
-t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
-1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
-SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority
-# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority
-# Label: "Hellenic Academic and Research Institutions RootCA 2011"
-# Serial: 0
-# MD5 Fingerprint: 73:9f:4c:4b:73:5b:79:e9:fa:ba:1c:ef:6e:cb:d5:c9
-# SHA1 Fingerprint: fe:45:65:9b:79:03:5b:98:a1:61:b5:51:2e:ac:da:58:09:48:22:4d
-# SHA256 Fingerprint: bc:10:4f:15:a4:8b:e7:09:dc:a5:42:a7:e1:d4:b9:df:6f:05:45:27:e8:02:ea:a9:2d:59:54:44:25:8a:fe:71
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
-RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
-dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
-YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
-NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
-EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
-cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
-c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
-dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
-fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
-bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
-75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
-FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
-HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
-5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
-b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
-A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
-6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
-dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
-Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
-l7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967
-# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967
-# Label: "Actalis Authentication Root CA"
-# Serial: 6271844772424770508
-# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6
-# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac
-# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
-BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
-MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
-SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
-ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
-UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
-4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
-KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
-gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
-rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
-51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
-be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
-KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
-v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
-fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
-jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
-ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
-e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
-jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
-WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
-SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
-pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
-X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
-fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
-K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
-ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
-LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
-LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-# Issuer: O=Trustis Limited OU=Trustis FPS Root CA
-# Subject: O=Trustis Limited OU=Trustis FPS Root CA
-# Label: "Trustis FPS Root CA"
-# Serial: 36053640375399034304724988975563710553
-# MD5 Fingerprint: 30:c9:e7:1e:6b:e6:14:eb:65:b2:16:69:20:31:67:4d
-# SHA1 Fingerprint: 3b:c0:38:0b:33:c3:f6:a6:0c:86:15:22:93:d9:df:f5:4b:81:c0:04
-# SHA256 Fingerprint: c1:b4:82:99:ab:a5:20:8f:e9:63:0a:ce:55:ca:68:a0:3e:da:5a:51:9c:88:02:a0:d3:a6:73:be:8f:8e:55:7d
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
-MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
-ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
-MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc
-MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
-AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
-iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
-vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
-0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
-OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
-BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
-FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
-GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
-zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
-1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
-f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
-jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
-ZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
-# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
-# Label: "StartCom Certification Authority"
-# Serial: 45
-# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16
-# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0
-# SHA256 Fingerprint: e1:78:90:ee:09:a3:fb:f4:f4:8b:9c:41:4a:17:d6:37:b7:a5:06:47:e9:bc:75:23:22:72:7f:cc:17:42:a9:11
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
-F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
-ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
-ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
-aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
-YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
-c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
-d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
-CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
-wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
-Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
-0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
-pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
-CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
-P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
-1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
-KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
-8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
-fyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd.
-# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd.
-# Label: "StartCom Certification Authority G2"
-# Serial: 59
-# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64
-# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17
-# SHA256 Fingerprint: c7:ba:65:67:de:93:a7:98:ae:1f:aa:79:1e:71:2d:37:8f:ae:1f:93:c4:39:7f:ea:44:1b:b7:cb:e6:fd:59:95
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
-OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
-A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
-JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
-vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
-D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
-Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
-RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
-HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
-nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
-0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
-UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
-Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
-TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
-BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
-UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
-6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
-9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
-HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
-wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
-XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
-IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
-hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
-so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327
-# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327
-# Label: "Buypass Class 2 Root CA"
-# Serial: 2
-# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29
-# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99
-# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
-6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
-L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
-1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
-MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
-QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
-arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
-Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
-FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
-P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
-9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
-uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
-9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
-OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
-+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
-KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
-DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
-H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
-I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
-5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
-3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
-Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
------END CERTIFICATE-----
-
-# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327
-# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327
-# Label: "Buypass Class 3 Root CA"
-# Serial: 2
-# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec
-# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57
-# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
-ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
-N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
-tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
-0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
-/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
-KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
-zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
-O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
-34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
-K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
-Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
-QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
-IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
-HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
-O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
-033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
-dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
-kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
-3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
-u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
-4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
------END CERTIFICATE-----
-
-# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center
-# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center
-# Label: "T-TeleSec GlobalRoot Class 3"
-# Serial: 1
-# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef
-# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1
-# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
-8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
-RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
-hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
-ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
-EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
-A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
-WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
-1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
-6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
-91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
-TpPDpFQUWw==
------END CERTIFICATE-----
-
-# Issuer: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus
-# Subject: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus
-# Label: "EE Certification Centre Root CA"
-# Serial: 112324828676200291871926431888494945866
-# MD5 Fingerprint: 43:5e:88:d4:7d:1a:4a:7e:fd:84:2e:52:eb:01:d4:6f
-# SHA1 Fingerprint: c9:a8:b9:e7:55:80:5e:58:e3:53:77:a7:25:eb:af:c3:7b:27:cc:d7
-# SHA256 Fingerprint: 3e:84:ba:43:42:90:85:16:e7:75:73:c0:99:2f:09:79:ca:08:4e:46:85:68:1f:f1:95:cc:ba:8a:22:9b:8a:76
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
-czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
-CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
-MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
-ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
-b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
-euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
-bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
-WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
-MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
-1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
-zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
-BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
-BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
-v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
-E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
-iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
-GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
------END CERTIFICATE-----
-
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Aralık 2007
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Aralık 2007
-# Label: "TURKTRUST Certificate Services Provider Root 2007"
-# Serial: 1
-# MD5 Fingerprint: 2b:70:20:56:86:82:a0:18:c8:07:53:12:28:70:21:72
-# SHA1 Fingerprint: f1:7f:6f:b6:31:dc:99:e3:a3:c8:7f:fe:1c:f1:81:10:88:d9:60:33
-# SHA256 Fingerprint: 97:8c:d9:66:f2:fa:a0:7b:a7:aa:95:00:d9:c0:2e:9d:77:f2:cd:ad:a6:ad:6b:a7:4a:f4:b9:1c:66:59:3c:50
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4XDTA3MTIyNTE4Mzcx
-OVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxla3Ry
-b25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMC
-VFIxDzANBgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDE
-sGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7F
-ni4gKGMpIEFyYWzEsWsgMjAwNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9NYvDdE3ePYakqtdTyuTFY
-KTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQvKUmi8wUG
-+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveG
-HtyaKhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6P
-IzdezKKqdfcYbwnTrqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M
-733WB2+Y8a+xwXrXgTW4qhe04MsCAwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHk
-Yb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/sPx+EnWVUXKgW
-AkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5
-mxRZNTZPz/OOXl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsa
-XRik7r4EW5nVcV9VZWRi1aKbBFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZ
-qxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAKpoRq0Tl9
------END CERTIFICATE-----
-
-# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH
-# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH
-# Label: "D-TRUST Root Class 3 CA 2 2009"
-# Serial: 623603
-# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f
-# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0
-# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
-ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
-HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
-UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
-tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
-ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
-lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
-/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
-A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
-A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
-dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
-MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
-cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
-L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
-BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
-acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
-zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
-PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
-Johw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH
-# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH
-# Label: "D-TRUST Root Class 3 CA 2 EV 2009"
-# Serial: 623604
-# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6
-# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83
-# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
-NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
-BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
-ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
-3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
-qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
-p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
-HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
-ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
-HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
-Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
-c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
-RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
-dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
-Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
-3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
-CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
-xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
-KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-# Issuer: CN=Autoridad de Certificacion Raiz del Estado Venezolano O=Sistema Nacional de Certificacion Electronica OU=Superintendencia de Servicios de Certificacion Electronica
-# Subject: CN=PSCProcert O=Sistema Nacional de Certificacion Electronica OU=Proveedor de Certificados PROCERT
-# Label: "PSCProcert"
-# Serial: 11
-# MD5 Fingerprint: e6:24:e9:12:01:ae:0c:de:8e:85:c4:ce:a3:12:dd:ec
-# SHA1 Fingerprint: 70:c1:8d:74:b4:28:81:0a:e4:fd:a5:75:d7:01:9f:99:b0:3d:50:74
-# SHA256 Fingerprint: 3c:fc:3c:14:d1:f6:84:ff:17:e3:8c:43:ca:44:0c:00:b9:67:ec:93:3e:8b:fe:06:4c:a1:d7:2c:90:f2:ad:b0
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1
-dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
-YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
-dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
-aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
-IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
-KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEw
-MFoXDTIwMTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHBy
-b2NlcnQubmV0LnZlMQ8wDQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGEx
-KjAoBgNVBAsTIVByb3ZlZWRvciBkZSBDZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQG
-A1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9u
-aWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo9
-7BVCwfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74
-BCXfgI8Qhd19L3uA3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38G
-ieU89RLAu9MLmV+QfI4tL3czkkohRqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9
-JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmOEO8GqQKJ/+MMbpfg353bIdD0
-PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG20qCZyFSTXai2
-0b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/
-6mnbVSKVUyqUtd+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1m
-v6JpIzi4mWCZDlZTOpx+FIywBm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7
-K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvpr2uKGcfLFFb14dq12fy/czja+eev
-bqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/AgEBMDcGA1UdEgQw
-MC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0w
-MB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFD
-gBStuyIdxuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0
-b3JpZGFkIGRlIENlcnRpZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xh
-bm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0
-cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRp
-ZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEg
-ZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkq
-hkiG9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQD
-AgEGME0GA1UdEQRGMESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0w
-MDAwMDKgGwYFYIZeAgKgEgwQUklGLUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEag
-RKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9sY3IvQ0VSVElGSUNBRE8t
-UkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNyYWl6LnN1c2Nl
-cnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsG
-AQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcN
-AQELBQADggIBACtZ6yKZu4SqT96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS
-1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmNg7+mvTV+LFwxNG9s2/NkAZiqlCxB
-3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4quxtxj7mkoP3Yldmv
-Wb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1n8Gh
-HVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHm
-pHmJWhSnFFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXz
-sOfIt+FTvZLm8wyWuevo5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bE
-qCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq3TNWOByyrYDT13K9mmyZY+gAu0F2Bbdb
-mRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5poLWccret9W6aAjtmcz9
-opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3YeMLEYC/H
-YvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-# Issuer: CN=China Internet Network Information Center EV Certificates Root O=China Internet Network Information Center
-# Subject: CN=China Internet Network Information Center EV Certificates Root O=China Internet Network Information Center
-# Label: "China Internet Network Information Center EV Certificates Root"
-# Serial: 1218379777
-# MD5 Fingerprint: 55:5d:63:00:97:bd:6a:97:f5:67:ab:4b:fb:6e:63:15
-# SHA1 Fingerprint: 4f:99:aa:93:fb:2b:d1:37:26:a1:99:4a:ce:7f:f0:05:f2:93:5d:1e
-# SHA256 Fingerprint: 1c:01:c6:f4:db:b2:fe:fc:22:55:8b:2b:ca:32:56:3f:49:84:4a:cf:c3:2b:7b:e4:b0:ff:59:9f:9e:8c:7a:f7
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
-Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g
-Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0
-aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa
-Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg
-SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo
-aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp
-ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z
-7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//
-DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx
-zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8
-hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs
-4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u
-gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY
-NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
-FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3
-j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG
-52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB
-echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI
-zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
-wy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-# Issuer: CN=Swisscom Root CA 2 O=Swisscom OU=Digital Certificate Services
-# Subject: CN=Swisscom Root CA 2 O=Swisscom OU=Digital Certificate Services
-# Label: "Swisscom Root CA 2"
-# Serial: 40698052477090394928831521023204026294
-# MD5 Fingerprint: 5b:04:69:ec:a5:83:94:63:18:a7:86:d0:e4:f2:6e:19
-# SHA1 Fingerprint: 77:47:4f:c6:30:e4:0f:4c:47:64:3f:84:ba:b8:c6:95:4a:8a:41:ec
-# SHA256 Fingerprint: f0:9b:12:2c:71:14:f4:a0:9b:d4:ea:4f:4a:99:d5:58:b4:6e:4c:25:cd:81:14:0d:29:c0:56:13:91:4c:38:41
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr
-jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r
-0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f
-2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP
-ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF
-y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA
-tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL
-6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0
-uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL
-acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh
-k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q
-VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh
-b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R
-fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv
-/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI
-REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx
-srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv
-aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT
-woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n
-Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W
-t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N
-8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2
-9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5
-wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-# Issuer: CN=Swisscom Root EV CA 2 O=Swisscom OU=Digital Certificate Services
-# Subject: CN=Swisscom Root EV CA 2 O=Swisscom OU=Digital Certificate Services
-# Label: "Swisscom Root EV CA 2"
-# Serial: 322973295377129385374608406479535262296
-# MD5 Fingerprint: 7b:30:34:9f:dd:0a:4b:6b:35:ca:31:51:28:5d:ae:ec
-# SHA1 Fingerprint: e7:a1:90:29:d3:d5:52:dc:0d:0f:c6:92:d3:ea:88:0d:15:2e:1a:6b
-# SHA256 Fingerprint: d9:5f:ea:3c:a4:ee:dc:e7:4c:d7:6e:75:fc:6d:1f:f6:2c:44:1f:0f:a8:bc:77:f0:34:b1:9e:5d:b2:58:01:5d
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw
-ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp
-dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290
-IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD
-VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy
-dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg
-MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx
-UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD
-1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH
-oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR
-HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/
-5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv
-idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL
-OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC
-NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f
-46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB
-UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth
-7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G
-A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB
-bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x
-XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T
-PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0
-Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70
-WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL
-Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm
-7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S
-nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN
-vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB
-WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI
-fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb
-I+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-# Issuer: CN=CA Disig Root R1 O=Disig a.s.
-# Subject: CN=CA Disig Root R1 O=Disig a.s.
-# Label: "CA Disig Root R1"
-# Serial: 14052245610670616104
-# MD5 Fingerprint: be:ec:11:93:9a:f5:69:21:bc:d7:c1:c0:67:89:cc:2a
-# SHA1 Fingerprint: 8e:1c:74:f8:a6:20:b9:e5:8a:f4:61:fa:ec:2b:47:56:51:1a:52:c6
-# SHA256 Fingerprint: f9:6f:23:f4:c3:e7:9c:07:7a:46:98:8d:5a:f5:90:06:76:a0:f0:39:cb:64:5d:d1:75:49:b2:16:c8:24:40:ce
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy
-MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk
-D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o
-OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A
-fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe
-IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n
-oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK
-/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj
-rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD
-3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE
-7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC
-yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd
-qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI
-hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA
-SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo
-HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB
-emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC
-AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb
-7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x
-DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk
-F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF
-a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT
-Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-# Issuer: CN=CA Disig Root R2 O=Disig a.s.
-# Subject: CN=CA Disig Root R2 O=Disig a.s.
-# Label: "CA Disig Root R2"
-# Serial: 10572350602393338211
-# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03
-# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71
-# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
-MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
-NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
-PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
-x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
-QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
-yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
-QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
-H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
-QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
-i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
-nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
-rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
-hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
-GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
-lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
-+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
-TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
-nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
-gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
-G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
-zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
-L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV
-# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV
-# Label: "ACCVRAIZ1"
-# Serial: 6828503384748696800
-# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02
-# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17
-# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
-AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
-CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
-BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
-VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
-qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
-HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
-G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
-lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
-IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
-0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
-k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
-4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
-m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
-cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
-uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
-KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
-ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
-AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
-VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
-CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
-cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
-QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
-7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
-cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
-QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
-czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
-aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
-aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
-DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
-BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
-D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
-JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
-AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
-vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
-tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
-7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
-h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
-d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
-pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA
-# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA
-# Label: "TWCA Global Root CA"
-# Serial: 3262
-# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96
-# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65
-# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
-EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
-VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
-NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
-B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
-10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
-0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
-MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
-zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
-46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
-yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
-laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
-oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
-BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
-qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
-4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
-1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
-H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
-RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
-nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
-15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
-6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
-nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
-wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
-aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
-KwbQBM0=
------END CERTIFICATE-----
-
-# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera
-# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera
-# Label: "TeliaSonera Root CA v1"
-# Serial: 199041966741090107964904287217786801558
-# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c
-# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37
-# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
-NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
-b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
-VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
-MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
-VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
-7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
-Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
-/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
-81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
-dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
-Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
-sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
-pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
-slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
-arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
-VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
-9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
-dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
-TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
-Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
-Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
-OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
-vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
-t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
-HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
-SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-# Issuer: CN=E-Tugra Certification Authority O=E-TuÄŸra EBG BiliÅŸim Teknolojileri ve Hizmetleri A.Åž. OU=E-Tugra Sertifikasyon Merkezi
-# Subject: CN=E-Tugra Certification Authority O=E-TuÄŸra EBG BiliÅŸim Teknolojileri ve Hizmetleri A.Åž. OU=E-Tugra Sertifikasyon Merkezi
-# Label: "E-Tugra Certification Authority"
-# Serial: 7667447206703254355
-# MD5 Fingerprint: b8:a1:03:63:b0:bd:21:71:70:8a:6f:13:3a:bb:79:49
-# SHA1 Fingerprint: 51:c6:e7:08:49:06:6e:f3:92:d4:5c:a0:0d:6d:a3:62:8f:c3:52:39
-# SHA256 Fingerprint: b0:bf:d5:2b:b0:d7:d9:bd:92:bf:5d:4d:c1:3d:a2:55:c0:2c:54:2f:37:83:65:ea:89:39:11:f5:5e:55:f2:3c
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
-BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
-aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
-BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
-Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
-MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
-BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
-em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
-B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
-D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
-Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
-q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
-k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
-fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
-dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
-ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
-zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
-U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
-Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
-XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
-Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
-HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
-GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
-77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
-+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
-vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
-FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
-yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
-AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
-y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
-NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center
-# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center
-# Label: "T-TeleSec GlobalRoot Class 2"
-# Serial: 1
-# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a
-# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9
-# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd
-AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC
-FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi
-1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq
-jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ
-wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/
-WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy
-NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC
-uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw
-IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6
-g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP
-BSeOE6Fuwg==
------END CERTIFICATE-----
-
-# Issuer: CN=Atos TrustedRoot 2011 O=Atos
-# Subject: CN=Atos TrustedRoot 2011 O=Atos
-# Label: "Atos TrustedRoot 2011"
-# Serial: 6643877497813316402
-# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56
-# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21
-# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
-AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
-EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
-FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
-REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
-Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
-VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
-SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
-4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
-cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
-eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
-HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
-A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
-DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
-vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
-DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
-maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
-lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
-KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited
-# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited
-# Label: "QuoVadis Root CA 1 G3"
-# Serial: 687049649626669250736271037606554624078720034195
-# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab
-# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67
-# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
-MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
-wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
-rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
-68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
-4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
-UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
-abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
-3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
-KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
-hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
-Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
-zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
-ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
-cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
-qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
-YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
-b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
-8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
-NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
-ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
-q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
-nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited
-# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited
-# Label: "QuoVadis Root CA 2 G3"
-# Serial: 390156079458959257446133169266079962026824725800
-# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06
-# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36
-# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
-MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
-qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
-n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
-c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
-O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
-o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
-IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
-IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
-8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
-vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
-7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
-cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
-ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
-roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
-W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
-lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
-+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
-csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
-dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
-KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
-HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
-WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-
-# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited
-# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited
-# Label: "QuoVadis Root CA 3 G3"
-# Serial: 268090761170461462463995952157327242137089239581
-# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7
-# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d
-# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
-MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
-/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
-FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
-U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
-ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
-FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
-A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
-eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
-sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
-VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
-A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
-ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
-ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
-FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
-oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
-u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
-0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
-3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
-8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
-DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
-PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
-ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Assured ID Root G2"
-# Serial: 15385348160840213938643033620894905419
-# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d
-# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f
-# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
-n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
-biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
-EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
-bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
-YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
-BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
-QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
-0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
-lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
-B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
-ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Assured ID Root G3"
-# Serial: 15459312981008553731928384953135426796
-# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb
-# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89
-# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
-RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
-hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
-Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
-RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
-AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
-JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
-6pZjamVFkpUBtA==
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Global Root G2"
-# Serial: 4293743540046975378534879503202253541
-# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44
-# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4
-# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
-MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
-2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
-1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
-q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
-tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
-vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
-5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
-1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
-NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
-Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
-8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
-pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Global Root G3"
-# Serial: 7089244469030293291760083333884364146
-# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca
-# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e
-# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
-Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
-EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
-IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
-K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
-fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
-Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
-BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
-AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
-oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
-sycX
------END CERTIFICATE-----
-
-# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com
-# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com
-# Label: "DigiCert Trusted Root G4"
-# Serial: 7451500558977370777930084869016614236
-# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49
-# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4
-# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
-RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
-ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
-xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
-ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
-DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
-jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
-CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
-EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
-fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
-uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
-chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
-9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
-SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
-+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
-fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
-sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
-cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
-0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
-4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
-r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
-/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
-gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
------END CERTIFICATE-----
-
-# Issuer: CN=Certification Authority of WoSign O=WoSign CA Limited
-# Subject: CN=Certification Authority of WoSign O=WoSign CA Limited
-# Label: "WoSign"
-# Serial: 125491772294754854453622855443212256657
-# MD5 Fingerprint: a1:f2:f9:b5:d2:c8:7a:74:b8:f3:05:f1:d7:e1:84:8d
-# SHA1 Fingerprint: b9:42:94:bf:91:ea:8f:b6:4b:e6:10:97:c7:fb:00:13:59:b6:76:cb
-# SHA256 Fingerprint: 4b:22:d5:a6:ae:c9:9f:3c:db:79:aa:5e:c0:68:38:47:9c:d5:ec:ba:71:64:f7:f2:2d:c1:d6:5f:63:d8:57:08
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
-BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
-MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
-b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN
-rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U
-fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc
-f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2
-ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M
-x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR
-aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch
-zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar
-uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K
-mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA
-Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv
-HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H
-EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ
-MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e
-JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN
-g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp
-dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab
-R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ
-PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce
-xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+
-J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl
-OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT
-ee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-
-# Issuer: CN=CA æ²ƒé€šæ ¹è¯ä¹¦ O=WoSign CA Limited
-# Subject: CN=CA æ²ƒé€šæ ¹è¯ä¹¦ O=WoSign CA Limited
-# Label: "WoSign China"
-# Serial: 106921963437422998931660691310149453965
-# MD5 Fingerprint: 78:83:5b:52:16:76:c4:24:3b:83:78:e8:ac:da:9a:93
-# SHA1 Fingerprint: 16:32:47:8d:89:f9:21:3a:92:00:85:63:f5:a4:a7:d3:12:40:8a:d6
-# SHA256 Fingerprint: d6:f0:34:bd:94:aa:23:3f:02:97:ec:a4:24:5b:28:39:73:e4:47:aa:59:0f:31:0c:77:f4:8f:df:83:11:22:54
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV
-BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw
-MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl
-ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r
-D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1
-9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf
-v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk
-UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L
-NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb
-+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V
-qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K
-yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G
-AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK
-J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4
-WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj
-/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6
-jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2
-ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX
-X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n
-FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D
-u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l
-O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le
-ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1
-2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ==
------END CERTIFICATE-----
-
-# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited
-# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited
-# Label: "COMODO RSA Certification Authority"
-# Serial: 101909084537582093308941363524873193117
-# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18
-# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4
-# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
-hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
-BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
-EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
-6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
-pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
-9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
-/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
-Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
-+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
-qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
-SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
-u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
-Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
-crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
-/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
-wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
-4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
-2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
-FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
-CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
-boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
-jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
-S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
-QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
-0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
-NVOFBkpdn627G190
------END CERTIFICATE-----
-
-# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network
-# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network
-# Label: "USERTrust RSA Certification Authority"
-# Serial: 2645093764781058787591871645665788717
-# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5
-# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e
-# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
-iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
-cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
-BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
-MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
-BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
-dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
-AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
-3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
-tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
-Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
-VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
-79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
-c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
-Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
-c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
-UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
-Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
-Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
-VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
-ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
-8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
-iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
-Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
-XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
-qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
-VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
-L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
-jjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
-
-# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network
-# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network
-# Label: "USERTrust ECC Certification Authority"
-# Serial: 123013823720199481456569720443997572134
-# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1
-# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0
-# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
-MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
-eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
-JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
-Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
-VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
-I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
-o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
-A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
-zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
-RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
-
-# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4
-# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4
-# Label: "GlobalSign ECC Root CA - R4"
-# Serial: 14367148294922964480859022125800977897474
-# MD5 Fingerprint: 20:f0:27:68:d1:7e:a0:9d:0e:e6:2a:ca:df:5c:89:8e
-# SHA1 Fingerprint: 69:69:56:2e:40:80:f4:24:a1:e7:19:9f:14:ba:f3:ee:58:ab:6a:bb
-# SHA256 Fingerprint: be:c9:49:11:c2:95:56:76:db:6c:0a:55:09:86:d7:6e:3b:a0:05:66:7c:44:2c:97:62:b4:fb:b7:73:de:22:8c
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ
-FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F
-uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX
-kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs
-ewv4n4Q=
------END CERTIFICATE-----
-
-# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5
-# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5
-# Label: "GlobalSign ECC Root CA - R5"
-# Serial: 32785792099990507226680698011560947931244
-# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08
-# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa
-# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
-8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
-hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
-KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
-515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
-xwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
-
-# Issuer: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden
-# Subject: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden
-# Label: "Staat der Nederlanden Root CA - G3"
-# Serial: 10003001
-# MD5 Fingerprint: 0b:46:67:07:db:10:2f:19:8c:35:50:60:d1:0b:f4:37
-# SHA1 Fingerprint: d8:eb:6b:41:51:92:59:e0:f3:e7:85:00:c0:3d:b6:88:97:c9:ee:fc
-# SHA256 Fingerprint: 3c:4f:b0:b9:5a:b8:b3:00:32:f4:32:b8:6f:53:5f:e1:72:c1:85:d0:fd:39:86:58:37:cf:36:18:7f:a6:f4:28
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX
-DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP
-cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW
-IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX
-xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy
-KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR
-9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az
-5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8
-6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7
-Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP
-bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt
-BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt
-XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd
-INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp
-LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8
-Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp
-gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh
-/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw
-0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A
-fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq
-4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR
-1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/
-QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM
-94B7IWcnMFk=
------END CERTIFICATE-----
-
-# Issuer: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden
-# Subject: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden
-# Label: "Staat der Nederlanden EV Root CA"
-# Serial: 10000013
-# MD5 Fingerprint: fc:06:af:7b:e8:1a:f1:9a:b4:e8:d2:70:1f:c0:f5:ba
-# SHA1 Fingerprint: 76:e2:7e:c1:4f:db:82:c1:c0:a6:75:b5:05:be:3d:29:b4:ed:db:bb
-# SHA256 Fingerprint: 4d:24:91:41:4c:fe:95:67:46:ec:4c:ef:a6:cf:6f:72:e2:8a:13:29:43:2f:9d:8a:90:7a:c4:cb:5d:ad:c1:5a
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y
-MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg
-TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS
-b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS
-M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC
-UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d
-Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p
-rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l
-pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb
-j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC
-KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS
-/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X
-cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH
-1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP
-px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7
-MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u
-2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS
-v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC
-wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy
-CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e
-vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6
-Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa
-Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL
-eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8
-FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc
-7uzXLg==
------END CERTIFICATE-----
-
-# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust
-# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust
-# Label: "IdenTrust Commercial Root CA 1"
-# Serial: 13298821034946342390520003877796839426
-# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7
-# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25
-# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
-VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
-MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
-JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
-3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
-+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
-S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
-bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
-T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
-vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
-Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
-dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
-c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
-l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
-iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
-ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
-LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
-nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
-+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
-W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
-AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
-l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
-4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
-mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
-7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
-
-# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust
-# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust
-# Label: "IdenTrust Public Sector Root CA 1"
-# Serial: 13298821034946342390521976156843933698
-# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba
-# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd
-# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
-VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
-MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
-MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
-ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
-RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
-bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
-/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
-3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
-EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
-9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
-GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
-2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
-WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
-W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
-AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
-DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
-TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
-lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
-mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
-WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
-+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
-tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
-GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
-8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
-
-# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only
-# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only
-# Label: "Entrust Root Certification Authority - G2"
-# Serial: 1246989352
-# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2
-# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4
-# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
-cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
-IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
-dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
-NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
-dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
-dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
-aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
-RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
-cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
-wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
-U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
-jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
-BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
-jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
-1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
-nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
-VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
------END CERTIFICATE-----
-
-# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only
-# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only
-# Label: "Entrust Root Certification Authority - EC1"
-# Serial: 51543124481930649114116133369
-# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc
-# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47
-# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
-A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
-d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
-dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
-RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
-MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
-VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
-L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
-Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
-A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
-ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
-Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
-R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
-hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
-
-# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority
-# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority
-# Label: "CFCA EV ROOT"
-# Serial: 407555286
-# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30
-# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83
-# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
-TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
-MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
-aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
-T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
-sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
-TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
-/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
-7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
-EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
-hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
-a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
-aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
-TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
-PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
-cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
-tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
-BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
-ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
-jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
-ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
-P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
-xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
-Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
-5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
-/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
-AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
-5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
-
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.
-# Label: "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
-# Serial: 156233699172481
-# MD5 Fingerprint: da:70:8e:f0:22:df:93:26:f6:5f:9f:d3:15:06:52:4e
-# SHA1 Fingerprint: c4:18:f6:4d:46:d1:df:00:3d:27:30:13:72:43:a9:12:11:c6:75:fb
-# SHA256 Fingerprint: 49:35:1b:90:34:44:c1:85:cc:dc:5c:69:3d:24:d8:55:5c:b2:08:d6:a8:14:13:07:69:9f:4a:f0:63:19:9d:78
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE
-BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn
-aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg
-QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0
-MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD
-VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
-dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom
-/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR
-Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3
-4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z
-5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0
-hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID
-AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX
-SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l
-VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf
-peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF
-Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW
-+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
-
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6 O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6 O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.
-# Label: "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6"
-# Serial: 138134509972618
-# MD5 Fingerprint: f8:c5:ee:2a:6b:be:95:8d:08:f7:25:4a:ea:71:3e:46
-# SHA1 Fingerprint: 8a:5c:8c:ee:a5:03:e6:05:56:ba:d8:1b:d4:f6:c9:b0:ed:e5:2f:e0
-# SHA256 Fingerprint: 8d:e7:86:55:e1:be:7f:78:47:80:0b:93:f6:94:d2:1d:36:8c:c0:6e:03:3e:7f:ab:04:bb:5e:b9:9d:a6:b7:00
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQG
-EwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdp
-IMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBB
-LsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBI
-aXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5MDQxMFoXDTIzMTIx
-NjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBLBgNV
-BAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2
-ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVs
-ZWt0cm9uaWsgU2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdsGjW6L0UlqMACprx9MfMkU1x
-eHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a2uqsxgbPJQ1BgfbBOCK9
-+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EEDwnS3/faA
-z1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0p
-u5FbHH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6p
-lVxiSvgNZ1GpryHV+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMB
-AAGjQjBAMB0GA1UdDgQWBBTdVRcT9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAb1gNl0Oq
-FlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3RfdCaqaXKGDsC
-QC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKID
-gI6tflEATseWhvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm
-9ocJV612ph1jmv3XZch4gyt1O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsG
-tAuYSyher4hYyw==
------END CERTIFICATE-----
-
-# Issuer: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903
-# Subject: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903
-# Label: "Certinomis - Root CA"
-# Serial: 1
-# MD5 Fingerprint: 14:0a:fd:8d:a8:28:b5:38:69:db:56:7e:61:22:03:3f
-# SHA1 Fingerprint: 9d:70:bb:01:a5:a4:a0:18:11:2e:f7:1c:01:b9:32:c5:34:e7:88:a8
-# SHA256 Fingerprint: 2a:99:f5:bc:11:74:b7:3c:bb:1d:62:08:84:e0:1c:34:e5:1c:cb:39:78:da:12:5f:0e:33:26:88:83:bf:41:58
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb
-BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz
-MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx
-FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g
-Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2
-fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl
-LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV
-WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF
-TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb
-5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc
-CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri
-wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ
-wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG
-m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4
-F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng
-WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0
-2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/
-0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw
-F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS
-g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj
-qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN
-h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/
-ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V
-btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj
-Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ
-8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
-gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
------END CERTIFICATE-----
-# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
-# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
-# Label: "Entrust.net Secure Server CA"
-# Serial: 927650371
-# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee
-# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39
-# SHA256 Fingerprint: 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
-ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
-KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
-ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
-MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
-b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
-U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
-I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
-wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
-AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
-oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
-BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
-dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
-MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
-MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
-E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
-MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
-hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
-95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
-2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
-# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
-# Label: "ValiCert Class 2 VA"
-# Serial: 1
-# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87
-# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6
-# SHA256 Fingerprint: 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
-NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
-dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
-WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
-v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
-UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
-IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
-W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
------END CERTIFICATE-----
-
-# Issuer: CN=NetLock Expressz (Class C) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Subject: CN=NetLock Expressz (Class C) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Label: "NetLock Express (Class C) Root"
-# Serial: 104
-# MD5 Fingerprint: 4f:eb:f1:f0:70:c2:80:63:5d:58:9f:da:12:3c:a9:c4
-# SHA1 Fingerprint: e3:92:51:2f:0a:cf:f5:05:df:f6:de:06:7f:75:37:e1:65:ea:57:4b
-# SHA256 Fingerprint: 0b:5e:ed:4e:84:64:03:cf:55:e0:65:84:84:40:ed:2a:82:75:8b:f5:b9:aa:1f:25:3d:46:13:cf:a0:80:ff:3f
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQD
-EytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0dmFueWtpYWRvMB4X
-DTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJBgNVBAYTAkhVMREw
-DwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9u
-c2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMr
-TmV0TG9jayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNA
-OoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC
-2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwW
-RMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0P
-AQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEW
-ggJNRklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0
-YWxhbm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz
-b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBO
-ZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2ZWRpLiBB
-IGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0ZWxlIGF6IGVs
-b2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25s
-YXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kg
-a2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4g
-SU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0
-aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUg
-YXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQg
-Y3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmY
-ta3UzbM2xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2g
-pO0u9f38vf5NNwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4
-Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-# Issuer: CN=NetLock Uzleti (Class B) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Subject: CN=NetLock Uzleti (Class B) Tanusitvanykiado O=NetLock Halozatbiztonsagi Kft. OU=Tanusitvanykiadok
-# Label: "NetLock Business (Class B) Root"
-# Serial: 105
-# MD5 Fingerprint: 39:16:aa:b9:6a:41:e1:14:69:df:9e:6c:3b:72:dc:b6
-# SHA1 Fingerprint: 87:9f:4b:ee:05:df:98:58:3b:e3:60:d6:33:e7:0d:3f:fe:98:71:af
-# SHA256 Fingerprint: 39:df:7b:68:2b:7b:93:8f:84:71:54:81:cc:de:8d:60:d8:f2:2e:c5:98:87:7d:0a:aa:c1:2b:59:18:2b:03:12
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQD
-EylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZhbnlraWFkbzAeFw05
-OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYDVQQGEwJIVTERMA8G
-A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
-Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5l
-dExvY2sgVXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xK
-gZjupNTKihe5In+DCnVMm8Bp2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riX
-iK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvc
-Q7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8E
-BAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1G
-SUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFu
-b3MgU3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh
-bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv
-Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGln
-aXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0
-IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGph
-biBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJo
-ZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBP
-UlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmlj
-YXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNA
-bmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06
-sPgzTEdM43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXa
-n3BukxowOR0w2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKS
-NitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
-# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
-# Label: "RSA Root Certificate 1"
-# Serial: 1
-# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72
-# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb
-# SHA256 Fingerprint: bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
-NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
-cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
-2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
-JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
-Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
-n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
-PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
------END CERTIFICATE-----
-
-# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
-# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
-# Label: "ValiCert Class 1 VA"
-# Serial: 1
-# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb
-# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e
-# SHA256 Fingerprint: f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy
-NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y
-LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+
-TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y
-TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0
-LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW
-I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
-nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
------END CERTIFICATE-----
-
-# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
-# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
-# Label: "Equifax Secure eBusiness CA 1"
-# Serial: 4
-# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d
-# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41
-# SHA256 Fingerprint: cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
-ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
-MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
-LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
-RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
-WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
-Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
-AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
-eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
-zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
-WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
-/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
-# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
-# Label: "Equifax Secure Global eBusiness CA"
-# Serial: 1
-# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc
-# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45
-# SHA256 Fingerprint: 5f:0b:62:ea:b5:e3:53:ea:65:21:65:16:58:fb:b6:53:59:f4:43:28:0a:4a:fb:d1:04:d7:7d:10:f9:f0:4c:07
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
-ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
-MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
-dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
-c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
-UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
-58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
-o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
-MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
-aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
-A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
-Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
-8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
-# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
-# Label: "Thawte Premium Server CA"
-# Serial: 1
-# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a
-# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a
-# SHA256 Fingerprint: ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
-dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
-MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
-MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
-A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
-b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
-cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
-bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
-VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
-ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
-uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
-hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
-pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
-# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
-# Label: "Thawte Server CA"
-# Serial: 1
-# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d
-# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c
-# SHA256 Fingerprint: b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
-MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
-MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
-dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
-cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
-DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
-gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
-yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
-L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
-EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
-7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
-QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
-qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
-# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
-# Label: "Verisign Class 3 Public Primary Certification Authority"
-# Serial: 149843929435818692848040365716851702463
-# MD5 Fingerprint: 10:fc:63:5d:f6:26:3e:0d:f3:25:be:5f:79:cd:67:67
-# SHA1 Fingerprint: 74:2c:31:92:e6:07:e4:24:eb:45:49:54:2b:e1:bb:c5:3e:61:74:e2
-# SHA256 Fingerprint: e7:68:56:34:ef:ac:f6:9a:ce:93:9a:6b:25:5b:7b:4f:ab:ef:42:93:5b:50:a2:65:ac:b5:cb:60:27:e4:4e:70
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
-lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
-AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
-
-# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
-# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
-# Label: "Verisign Class 3 Public Primary Certification Authority"
-# Serial: 80507572722862485515306429940691309246
-# MD5 Fingerprint: ef:5a:f1:33:ef:f1:cd:bb:51:02:ee:12:14:4b:96:c4
-# SHA1 Fingerprint: a1:db:63:93:91:6f:17:e4:18:55:09:40:04:15:c7:02:40:b0:ae:6b
-# SHA256 Fingerprint: a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
-2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
-2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
------END CERTIFICATE-----
-
-# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
-# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
-# Label: "Verisign Class 3 Public Primary Certification Authority - G2"
-# Serial: 167285380242319648451154478808036881606
-# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9
-# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f
-# SHA256 Fingerprint: 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
-pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
-13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
-U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
-F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
-oJ2daZH9
------END CERTIFICATE-----
-
-# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
-# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
-# Label: "GTE CyberTrust Global Root"
-# Serial: 421
-# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db
-# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74
-# SHA256 Fingerprint: a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
-VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
-bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
-b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
-UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
-cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
-b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
-iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
-r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
-04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
-GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
-3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
-lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
diff --git a/vendor/requests/certs.py b/vendor/requests/certs.py
deleted file mode 100644
index f922b99d..00000000
--- a/vendor/requests/certs.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-requests.certs
-~~~~~~~~~~~~~~
-
-This module returns the preferred default CA certificate bundle.
-
-If you are packaging Requests, e.g., for a Linux distribution or a managed
-environment, you can change the definition of where() to return a separately
-packaged CA bundle.
-"""
-import os.path
-
-try:
- from certifi import where
-except ImportError:
- def where():
- """Return the preferred certificate bundle."""
- # vendored bundle inside Requests
- return os.path.join(os.path.dirname(__file__), 'cacert.pem')
-
-if __name__ == '__main__':
- print(where())
diff --git a/vendor/requests/compat.py b/vendor/requests/compat.py
deleted file mode 100644
index eb6530d6..00000000
--- a/vendor/requests/compat.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.compat
-~~~~~~~~~~~~~~~
-
-This module handles import compatibility issues between Python 2 and
-Python 3.
-"""
-
-from .packages import chardet
-
-import sys
-
-# -------
-# Pythons
-# -------
-
-# Syntax sugar.
-_ver = sys.version_info
-
-#: Python 2.x?
-is_py2 = (_ver[0] == 2)
-
-#: Python 3.x?
-is_py3 = (_ver[0] == 3)
-
-try:
- import simplejson as json
-except (ImportError, SyntaxError):
- # simplejson does not support Python 3.2, it throws a SyntaxError
- # because of u'...' Unicode literals.
- import json
-
-# ---------
-# Specifics
-# ---------
-
-if is_py2:
- from urllib import quote, unquote, quote_plus, unquote_plus, urlencode, getproxies, proxy_bypass
- from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag
- from urllib2 import parse_http_list
- import cookielib
- from Cookie import Morsel
- from StringIO import StringIO
- from .packages.urllib3.packages.ordered_dict import OrderedDict
-
- builtin_str = str
- bytes = str
- str = unicode
- basestring = basestring
- numeric_types = (int, long, float)
-
-elif is_py3:
- from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag
- from urllib.request import parse_http_list, getproxies, proxy_bypass
- from http import cookiejar as cookielib
- from http.cookies import Morsel
- from io import StringIO
- from collections import OrderedDict
-
- builtin_str = str
- str = str
- bytes = bytes
- basestring = (str, bytes)
- numeric_types = (int, float)
diff --git a/vendor/requests/cookies.py b/vendor/requests/cookies.py
deleted file mode 100644
index 41a2fde1..00000000
--- a/vendor/requests/cookies.py
+++ /dev/null
@@ -1,540 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.cookies
-~~~~~~~~~~~~~~~~
-
-Compatibility code to be able to use `cookielib.CookieJar` with requests.
-
-requests.utils imports from here, so be careful with imports.
-"""
-
-import copy
-import time
-import calendar
-import collections
-from .compat import cookielib, urlparse, urlunparse, Morsel
-
-try:
- import threading
- # grr, pyflakes: this fixes "redefinition of unused 'threading'"
- threading
-except ImportError:
- import dummy_threading as threading
-
-
-class MockRequest(object):
- """Wraps a `requests.Request` to mimic a `urllib2.Request`.
-
- The code in `cookielib.CookieJar` expects this interface in order to correctly
- manage cookie policies, i.e., determine whether a cookie can be set, given the
- domains of the request and the cookie.
-
- The original request object is read-only. The client is responsible for collecting
- the new headers via `get_new_headers()` and interpreting them appropriately. You
- probably want `get_cookie_header`, defined below.
- """
-
- def __init__(self, request):
- self._r = request
- self._new_headers = {}
- self.type = urlparse(self._r.url).scheme
-
- def get_type(self):
- return self.type
-
- def get_host(self):
- return urlparse(self._r.url).netloc
-
- def get_origin_req_host(self):
- return self.get_host()
-
- def get_full_url(self):
- # Only return the response's URL if the user hadn't set the Host
- # header
- if not self._r.headers.get('Host'):
- return self._r.url
- # If they did set it, retrieve it and reconstruct the expected domain
- host = self._r.headers['Host']
- parsed = urlparse(self._r.url)
- # Reconstruct the URL as we expect it
- return urlunparse([
- parsed.scheme, host, parsed.path, parsed.params, parsed.query,
- parsed.fragment
- ])
-
- def is_unverifiable(self):
- return True
-
- def has_header(self, name):
- return name in self._r.headers or name in self._new_headers
-
- def get_header(self, name, default=None):
- return self._r.headers.get(name, self._new_headers.get(name, default))
-
- def add_header(self, key, val):
- """cookielib has no legitimate use for this method; add it back if you find one."""
- raise NotImplementedError("Cookie headers should be added with add_unredirected_header()")
-
- def add_unredirected_header(self, name, value):
- self._new_headers[name] = value
-
- def get_new_headers(self):
- return self._new_headers
-
- @property
- def unverifiable(self):
- return self.is_unverifiable()
-
- @property
- def origin_req_host(self):
- return self.get_origin_req_host()
-
- @property
- def host(self):
- return self.get_host()
-
-
-class MockResponse(object):
- """Wraps a `httplib.HTTPMessage` to mimic a `urllib.addinfourl`.
-
- ...what? Basically, expose the parsed HTTP headers from the server response
- the way `cookielib` expects to see them.
- """
-
- def __init__(self, headers):
- """Make a MockResponse for `cookielib` to read.
-
- :param headers: a httplib.HTTPMessage or analogous carrying the headers
- """
- self._headers = headers
-
- def info(self):
- return self._headers
-
- def getheaders(self, name):
- self._headers.getheaders(name)
-
-
-def extract_cookies_to_jar(jar, request, response):
- """Extract the cookies from the response into a CookieJar.
-
- :param jar: cookielib.CookieJar (not necessarily a RequestsCookieJar)
- :param request: our own requests.Request object
- :param response: urllib3.HTTPResponse object
- """
- if not (hasattr(response, '_original_response') and
- response._original_response):
- return
- # the _original_response field is the wrapped httplib.HTTPResponse object,
- req = MockRequest(request)
- # pull out the HTTPMessage with the headers and put it in the mock:
- res = MockResponse(response._original_response.msg)
- jar.extract_cookies(res, req)
-
-
-def get_cookie_header(jar, request):
- """
- Produce an appropriate Cookie header string to be sent with `request`, or None.
-
- :rtype: str
- """
- r = MockRequest(request)
- jar.add_cookie_header(r)
- return r.get_new_headers().get('Cookie')
-
-
-def remove_cookie_by_name(cookiejar, name, domain=None, path=None):
- """Unsets a cookie by name, by default over all domains and paths.
-
- Wraps CookieJar.clear(), is O(n).
- """
- clearables = []
- for cookie in cookiejar:
- if cookie.name != name:
- continue
- if domain is not None and domain != cookie.domain:
- continue
- if path is not None and path != cookie.path:
- continue
- clearables.append((cookie.domain, cookie.path, cookie.name))
-
- for domain, path, name in clearables:
- cookiejar.clear(domain, path, name)
-
-
-class CookieConflictError(RuntimeError):
- """There are two cookies that meet the criteria specified in the cookie jar.
- Use .get and .set and include domain and path args in order to be more specific.
- """
-
-
-class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
- This is the CookieJar we create by default for requests and sessions that
- don't specify one, since some clients may expect response.cookies and
- session.cookies to support dict operations.
-
- Requests does not use the dict interface internally; it's just for
- compatibility with external client code. All requests code should work
- out of the box with externally provided instances of ``CookieJar``, e.g.
- ``LWPCookieJar`` and ``FileCookieJar``.
-
- Unlike a regular CookieJar, this class is pickleable.
-
- .. warning:: dictionary operations that are normally O(1) may be O(n).
- """
-
- def get(self, name, default=None, domain=None, path=None):
- """Dict-like get() that also supports optional domain and path args in
- order to resolve naming collisions from using one cookie jar over
- multiple domains.
-
- .. warning:: operation is O(n), not O(1).
- """
- try:
- return self._find_no_duplicates(name, domain, path)
- except KeyError:
- return default
-
- def set(self, name, value, **kwargs):
- """Dict-like set() that also supports optional domain and path args in
- order to resolve naming collisions from using one cookie jar over
- multiple domains.
- """
- # support client code that unsets cookies by assignment of a None value:
- if value is None:
- remove_cookie_by_name(self, name, domain=kwargs.get('domain'), path=kwargs.get('path'))
- return
-
- if isinstance(value, Morsel):
- c = morsel_to_cookie(value)
- else:
- c = create_cookie(name, value, **kwargs)
- self.set_cookie(c)
- return c
-
- def iterkeys(self):
- """Dict-like iterkeys() that returns an iterator of names of cookies
- from the jar.
-
- .. seealso:: itervalues() and iteritems().
- """
- for cookie in iter(self):
- yield cookie.name
-
- def keys(self):
- """Dict-like keys() that returns a list of names of cookies from the
- jar.
-
- .. seealso:: values() and items().
- """
- return list(self.iterkeys())
-
- def itervalues(self):
- """Dict-like itervalues() that returns an iterator of values of cookies
- from the jar.
-
- .. seealso:: iterkeys() and iteritems().
- """
- for cookie in iter(self):
- yield cookie.value
-
- def values(self):
- """Dict-like values() that returns a list of values of cookies from the
- jar.
-
- .. seealso:: keys() and items().
- """
- return list(self.itervalues())
-
- def iteritems(self):
- """Dict-like iteritems() that returns an iterator of name-value tuples
- from the jar.
-
- .. seealso:: iterkeys() and itervalues().
- """
- for cookie in iter(self):
- yield cookie.name, cookie.value
-
- def items(self):
- """Dict-like items() that returns a list of name-value tuples from the
- jar. Allows client-code to call ``dict(RequestsCookieJar)`` and get a
- vanilla python dict of key value pairs.
-
- .. seealso:: keys() and values().
- """
- return list(self.iteritems())
-
- def list_domains(self):
- """Utility method to list all the domains in the jar."""
- domains = []
- for cookie in iter(self):
- if cookie.domain not in domains:
- domains.append(cookie.domain)
- return domains
-
- def list_paths(self):
- """Utility method to list all the paths in the jar."""
- paths = []
- for cookie in iter(self):
- if cookie.path not in paths:
- paths.append(cookie.path)
- return paths
-
- def multiple_domains(self):
- """Returns True if there are multiple domains in the jar.
- Returns False otherwise.
-
- :rtype: bool
- """
- domains = []
- for cookie in iter(self):
- if cookie.domain is not None and cookie.domain in domains:
- return True
- domains.append(cookie.domain)
- return False # there is only one domain in jar
-
- def get_dict(self, domain=None, path=None):
- """Takes as an argument an optional domain and path and returns a plain
- old Python dict of name-value pairs of cookies that meet the
- requirements.
-
- :rtype: dict
- """
- dictionary = {}
- for cookie in iter(self):
- if (domain is None or cookie.domain == domain) and (path is None
- or cookie.path == path):
- dictionary[cookie.name] = cookie.value
- return dictionary
-
- def __contains__(self, name):
- try:
- return super(RequestsCookieJar, self).__contains__(name)
- except CookieConflictError:
- return True
-
- def __getitem__(self, name):
- """Dict-like __getitem__() for compatibility with client code. Throws
- exception if there are more than one cookie with name. In that case,
- use the more explicit get() method instead.
-
- .. warning:: operation is O(n), not O(1).
- """
- return self._find_no_duplicates(name)
-
- def __setitem__(self, name, value):
- """Dict-like __setitem__ for compatibility with client code. Throws
- exception if there is already a cookie of that name in the jar. In that
- case, use the more explicit set() method instead.
- """
- self.set(name, value)
-
- def __delitem__(self, name):
- """Deletes a cookie given a name. Wraps ``cookielib.CookieJar``'s
- ``remove_cookie_by_name()``.
- """
- remove_cookie_by_name(self, name)
-
- def set_cookie(self, cookie, *args, **kwargs):
- if hasattr(cookie.value, 'startswith') and cookie.value.startswith('"') and cookie.value.endswith('"'):
- cookie.value = cookie.value.replace('\\"', '')
- return super(RequestsCookieJar, self).set_cookie(cookie, *args, **kwargs)
-
- def update(self, other):
- """Updates this jar with cookies from another CookieJar or dict-like"""
- if isinstance(other, cookielib.CookieJar):
- for cookie in other:
- self.set_cookie(copy.copy(cookie))
- else:
- super(RequestsCookieJar, self).update(other)
-
- def _find(self, name, domain=None, path=None):
- """Requests uses this method internally to get cookie values.
-
- If there are conflicting cookies, _find arbitrarily chooses one.
- See _find_no_duplicates if you want an exception thrown if there are
- conflicting cookies.
-
- :param name: a string containing name of cookie
- :param domain: (optional) string containing domain of cookie
- :param path: (optional) string containing path of cookie
- :return: cookie.value
- """
- for cookie in iter(self):
- if cookie.name == name:
- if domain is None or cookie.domain == domain:
- if path is None or cookie.path == path:
- return cookie.value
-
- raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
-
- def _find_no_duplicates(self, name, domain=None, path=None):
- """Both ``__get_item__`` and ``get`` call this function: it's never
- used elsewhere in Requests.
-
- :param name: a string containing name of cookie
- :param domain: (optional) string containing domain of cookie
- :param path: (optional) string containing path of cookie
- :raises KeyError: if cookie is not found
- :raises CookieConflictError: if there are multiple cookies
- that match name and optionally domain and path
- :return: cookie.value
- """
- toReturn = None
- for cookie in iter(self):
- if cookie.name == name:
- if domain is None or cookie.domain == domain:
- if path is None or cookie.path == path:
- if toReturn is not None: # if there are multiple cookies that meet passed in criteria
- raise CookieConflictError('There are multiple cookies with name, %r' % (name))
- toReturn = cookie.value # we will eventually return this as long as no cookie conflict
-
- if toReturn:
- return toReturn
- raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
-
- def __getstate__(self):
- """Unlike a normal CookieJar, this class is pickleable."""
- state = self.__dict__.copy()
- # remove the unpickleable RLock object
- state.pop('_cookies_lock')
- return state
-
- def __setstate__(self, state):
- """Unlike a normal CookieJar, this class is pickleable."""
- self.__dict__.update(state)
- if '_cookies_lock' not in self.__dict__:
- self._cookies_lock = threading.RLock()
-
- def copy(self):
- """Return a copy of this RequestsCookieJar."""
- new_cj = RequestsCookieJar()
- new_cj.update(self)
- return new_cj
-
-
-def _copy_cookie_jar(jar):
- if jar is None:
- return None
-
- if hasattr(jar, 'copy'):
- # We're dealing with an instance of RequestsCookieJar
- return jar.copy()
- # We're dealing with a generic CookieJar instance
- new_jar = copy.copy(jar)
- new_jar.clear()
- for cookie in jar:
- new_jar.set_cookie(copy.copy(cookie))
- return new_jar
-
-
-def create_cookie(name, value, **kwargs):
- """Make a cookie from underspecified parameters.
-
- By default, the pair of `name` and `value` will be set for the domain ''
- and sent on every request (this is sometimes called a "supercookie").
- """
- result = dict(
- version=0,
- name=name,
- value=value,
- port=None,
- domain='',
- path='/',
- secure=False,
- expires=None,
- discard=True,
- comment=None,
- comment_url=None,
- rest={'HttpOnly': None},
- rfc2109=False,)
-
- badargs = set(kwargs) - set(result)
- if badargs:
- err = 'create_cookie() got unexpected keyword arguments: %s'
- raise TypeError(err % list(badargs))
-
- result.update(kwargs)
- result['port_specified'] = bool(result['port'])
- result['domain_specified'] = bool(result['domain'])
- result['domain_initial_dot'] = result['domain'].startswith('.')
- result['path_specified'] = bool(result['path'])
-
- return cookielib.Cookie(**result)
-
-
-def morsel_to_cookie(morsel):
- """Convert a Morsel object into a Cookie containing the one k/v pair."""
-
- expires = None
- if morsel['max-age']:
- try:
- expires = int(time.time() + int(morsel['max-age']))
- except ValueError:
- raise TypeError('max-age: %s must be integer' % morsel['max-age'])
- elif morsel['expires']:
- time_template = '%a, %d-%b-%Y %H:%M:%S GMT'
- expires = calendar.timegm(
- time.strptime(morsel['expires'], time_template)
- )
- return create_cookie(
- comment=morsel['comment'],
- comment_url=bool(morsel['comment']),
- discard=False,
- domain=morsel['domain'],
- expires=expires,
- name=morsel.key,
- path=morsel['path'],
- port=None,
- rest={'HttpOnly': morsel['httponly']},
- rfc2109=False,
- secure=bool(morsel['secure']),
- value=morsel.value,
- version=morsel['version'] or 0,
- )
-
-
-def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True):
- """Returns a CookieJar from a key/value dictionary.
-
- :param cookie_dict: Dict of key/values to insert into CookieJar.
- :param cookiejar: (optional) A cookiejar to add the cookies to.
- :param overwrite: (optional) If False, will not replace cookies
- already in the jar with new ones.
- """
- if cookiejar is None:
- cookiejar = RequestsCookieJar()
-
- if cookie_dict is not None:
- names_from_jar = [cookie.name for cookie in cookiejar]
- for name in cookie_dict:
- if overwrite or (name not in names_from_jar):
- cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
-
- return cookiejar
-
-
-def merge_cookies(cookiejar, cookies):
- """Add cookies to cookiejar and returns a merged CookieJar.
-
- :param cookiejar: CookieJar object to add the cookies to.
- :param cookies: Dictionary or CookieJar object to be added.
- """
- if not isinstance(cookiejar, cookielib.CookieJar):
- raise ValueError('You can only merge into CookieJar')
-
- if isinstance(cookies, dict):
- cookiejar = cookiejar_from_dict(
- cookies, cookiejar=cookiejar, overwrite=False)
- elif isinstance(cookies, cookielib.CookieJar):
- try:
- cookiejar.update(cookies)
- except AttributeError:
- for cookie_in_jar in cookies:
- cookiejar.set_cookie(cookie_in_jar)
-
- return cookiejar
diff --git a/vendor/requests/exceptions.py b/vendor/requests/exceptions.py
deleted file mode 100644
index b89e0cc6..00000000
--- a/vendor/requests/exceptions.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.exceptions
-~~~~~~~~~~~~~~~~~~~
-
-This module contains the set of Requests' exceptions.
-"""
-from .packages.urllib3.exceptions import HTTPError as BaseHTTPError
-
-
-class RequestException(IOError):
- """There was an ambiguous exception that occurred while handling your
- request.
- """
-
- def __init__(self, *args, **kwargs):
- """Initialize RequestException with `request` and `response` objects."""
- response = kwargs.pop('response', None)
- self.response = response
- self.request = kwargs.pop('request', None)
- if (response is not None and not self.request and
- hasattr(response, 'request')):
- self.request = self.response.request
- super(RequestException, self).__init__(*args, **kwargs)
-
-
-class HTTPError(RequestException):
- """An HTTP error occurred."""
-
-
-class ConnectionError(RequestException):
- """A Connection error occurred."""
-
-
-class ProxyError(ConnectionError):
- """A proxy error occurred."""
-
-
-class SSLError(ConnectionError):
- """An SSL error occurred."""
-
-
-class Timeout(RequestException):
- """The request timed out.
-
- Catching this error will catch both
- :exc:`~requests.exceptions.ConnectTimeout` and
- :exc:`~requests.exceptions.ReadTimeout` errors.
- """
-
-
-class ConnectTimeout(ConnectionError, Timeout):
- """The request timed out while trying to connect to the remote server.
-
- Requests that produced this error are safe to retry.
- """
-
-
-class ReadTimeout(Timeout):
- """The server did not send any data in the allotted amount of time."""
-
-
-class URLRequired(RequestException):
- """A valid URL is required to make a request."""
-
-
-class TooManyRedirects(RequestException):
- """Too many redirects."""
-
-
-class MissingSchema(RequestException, ValueError):
- """The URL schema (e.g. http or https) is missing."""
-
-
-class InvalidSchema(RequestException, ValueError):
- """See defaults.py for valid schemas."""
-
-
-class InvalidURL(RequestException, ValueError):
- """The URL provided was somehow invalid."""
-
-
-class InvalidHeader(RequestException, ValueError):
- """The header value provided was somehow invalid."""
-
-
-class ChunkedEncodingError(RequestException):
- """The server declared chunked encoding but sent an invalid chunk."""
-
-
-class ContentDecodingError(RequestException, BaseHTTPError):
- """Failed to decode response content"""
-
-
-class StreamConsumedError(RequestException, TypeError):
- """The content for this response was already consumed"""
-
-
-class RetryError(RequestException):
- """Custom retries logic failed"""
-
-
-# Warnings
-
-
-class RequestsWarning(Warning):
- """Base warning for Requests."""
- pass
-
-
-class FileModeWarning(RequestsWarning, DeprecationWarning):
- """A file was opened in text mode, but Requests determined its binary length."""
- pass
diff --git a/vendor/requests/hooks.py b/vendor/requests/hooks.py
deleted file mode 100644
index 32b32de7..00000000
--- a/vendor/requests/hooks.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.hooks
-~~~~~~~~~~~~~~
-
-This module provides the capabilities for the Requests hooks system.
-
-Available hooks:
-
-``response``:
- The response generated from a Request.
-"""
-HOOKS = ['response']
-
-
-def default_hooks():
- return dict((event, []) for event in HOOKS)
-
-# TODO: response is the only one
-
-
-def dispatch_hook(key, hooks, hook_data, **kwargs):
- """Dispatches a hook dictionary on a given piece of data."""
- hooks = hooks or dict()
- hooks = hooks.get(key)
- if hooks:
- if hasattr(hooks, '__call__'):
- hooks = [hooks]
- for hook in hooks:
- _hook_data = hook(hook_data, **kwargs)
- if _hook_data is not None:
- hook_data = _hook_data
- return hook_data
diff --git a/vendor/requests/models.py b/vendor/requests/models.py
deleted file mode 100644
index 11434ef4..00000000
--- a/vendor/requests/models.py
+++ /dev/null
@@ -1,873 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.models
-~~~~~~~~~~~~~~~
-
-This module contains the primary objects that power Requests.
-"""
-
-import collections
-import datetime
-
-from io import BytesIO, UnsupportedOperation
-from .hooks import default_hooks
-from .structures import CaseInsensitiveDict
-
-from .auth import HTTPBasicAuth
-from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar
-from .packages.urllib3.fields import RequestField
-from .packages.urllib3.filepost import encode_multipart_formdata
-from .packages.urllib3.util import parse_url
-from .packages.urllib3.exceptions import (
- DecodeError, ReadTimeoutError, ProtocolError, LocationParseError)
-from .exceptions import (
- HTTPError, MissingSchema, InvalidURL, ChunkedEncodingError,
- ContentDecodingError, ConnectionError, StreamConsumedError)
-from .utils import (
- guess_filename, get_auth_from_url, requote_uri,
- stream_decode_response_unicode, to_key_val_list, parse_header_links,
- iter_slices, guess_json_utf, super_len, to_native_string,
- check_header_validity)
-from .compat import (
- cookielib, urlunparse, urlsplit, urlencode, str, bytes, StringIO,
- is_py2, chardet, builtin_str, basestring)
-from .compat import json as complexjson
-from .status_codes import codes
-
-#: The set of HTTP status codes that indicate an automatically
-#: processable redirect.
-REDIRECT_STATI = (
- codes.moved, # 301
- codes.found, # 302
- codes.other, # 303
- codes.temporary_redirect, # 307
- codes.permanent_redirect, # 308
-)
-
-DEFAULT_REDIRECT_LIMIT = 30
-CONTENT_CHUNK_SIZE = 10 * 1024
-ITER_CHUNK_SIZE = 512
-
-
-class RequestEncodingMixin(object):
- @property
- def path_url(self):
- """Build the path URL to use."""
-
- url = []
-
- p = urlsplit(self.url)
-
- path = p.path
- if not path:
- path = '/'
-
- url.append(path)
-
- query = p.query
- if query:
- url.append('?')
- url.append(query)
-
- return ''.join(url)
-
- @staticmethod
- def _encode_params(data):
- """Encode parameters in a piece of data.
-
- Will successfully encode parameters when passed as a dict or a list of
- 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary
- if parameters are supplied as a dict.
- """
-
- if isinstance(data, (str, bytes)):
- return data
- elif hasattr(data, 'read'):
- return data
- elif hasattr(data, '__iter__'):
- result = []
- for k, vs in to_key_val_list(data):
- if isinstance(vs, basestring) or not hasattr(vs, '__iter__'):
- vs = [vs]
- for v in vs:
- if v is not None:
- result.append(
- (k.encode('utf-8') if isinstance(k, str) else k,
- v.encode('utf-8') if isinstance(v, str) else v))
- return urlencode(result, doseq=True)
- else:
- return data
-
- @staticmethod
- def _encode_files(files, data):
- """Build the body for a multipart/form-data request.
-
- Will successfully encode files when passed as a dict or a list of
- tuples. Order is retained if data is a list of tuples but arbitrary
- if parameters are supplied as a dict.
- The tuples may be 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype)
- or 4-tuples (filename, fileobj, contentype, custom_headers).
- """
- if (not files):
- raise ValueError("Files must be provided.")
- elif isinstance(data, basestring):
- raise ValueError("Data must not be a string.")
-
- new_fields = []
- fields = to_key_val_list(data or {})
- files = to_key_val_list(files or {})
-
- for field, val in fields:
- if isinstance(val, basestring) or not hasattr(val, '__iter__'):
- val = [val]
- for v in val:
- if v is not None:
- # Don't call str() on bytestrings: in Py3 it all goes wrong.
- if not isinstance(v, bytes):
- v = str(v)
-
- new_fields.append(
- (field.decode('utf-8') if isinstance(field, bytes) else field,
- v.encode('utf-8') if isinstance(v, str) else v))
-
- for (k, v) in files:
- # support for explicit filename
- ft = None
- fh = None
- if isinstance(v, (tuple, list)):
- if len(v) == 2:
- fn, fp = v
- elif len(v) == 3:
- fn, fp, ft = v
- else:
- fn, fp, ft, fh = v
- else:
- fn = guess_filename(v) or k
- fp = v
-
- if isinstance(fp, (str, bytes, bytearray)):
- fdata = fp
- else:
- fdata = fp.read()
-
- rf = RequestField(name=k, data=fdata, filename=fn, headers=fh)
- rf.make_multipart(content_type=ft)
- new_fields.append(rf)
-
- body, content_type = encode_multipart_formdata(new_fields)
-
- return body, content_type
-
-
-class RequestHooksMixin(object):
- def register_hook(self, event, hook):
- """Properly register a hook."""
-
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
- if isinstance(hook, collections.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
- Returns True if the hook existed, False if not.
- """
-
- try:
- self.hooks[event].remove(hook)
- return True
- except ValueError:
- return False
-
-
-class Request(RequestHooksMixin):
- """A user-created :class:`Request ` object.
-
- Used to prepare a :class:`PreparedRequest `, which is sent to the server.
-
- :param method: HTTP method to use.
- :param url: URL to send.
- :param headers: dictionary of headers to send.
- :param files: dictionary of {filename: fileobject} files to multipart upload.
- :param data: the body to attach to the request. If a dictionary is provided, form-encoding will take place.
- :param json: json for the body to attach to the request (if files or data is not specified).
- :param params: dictionary of URL parameters to append to the URL.
- :param auth: Auth handler or (user, pass) tuple.
- :param cookies: dictionary or CookieJar of cookies to attach to this request.
- :param hooks: dictionary of callback hooks, for internal usage.
-
- Usage::
-
- >>> import requests
- >>> req = requests.Request('GET', 'http://httpbin.org/get')
- >>> req.prepare()
-
- """
-
- def __init__(self, method=None, url=None, headers=None, files=None,
- data=None, params=None, auth=None, cookies=None, hooks=None, json=None):
-
- # Default empty dicts for dict params.
- data = [] if data is None else data
- files = [] if files is None else files
- headers = {} if headers is None else headers
- params = {} if params is None else params
- hooks = {} if hooks is None else hooks
-
- self.hooks = default_hooks()
- for (k, v) in list(hooks.items()):
- self.register_hook(event=k, hook=v)
-
- self.method = method
- self.url = url
- self.headers = headers
- self.files = files
- self.data = data
- self.json = json
- self.params = params
- self.auth = auth
- self.cookies = cookies
-
- def __repr__(self):
- return '' % (self.method)
-
- def prepare(self):
- """Constructs a :class:`PreparedRequest ` for transmission and returns it."""
- p = PreparedRequest()
- p.prepare(
- method=self.method,
- url=self.url,
- headers=self.headers,
- files=self.files,
- data=self.data,
- json=self.json,
- params=self.params,
- auth=self.auth,
- cookies=self.cookies,
- hooks=self.hooks,
- )
- return p
-
-
-class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
- """The fully mutable :class:`PreparedRequest ` object,
- containing the exact bytes that will be sent to the server.
-
- Generated from either a :class:`Request ` object or manually.
-
- Usage::
-
- >>> import requests
- >>> req = requests.Request('GET', 'http://httpbin.org/get')
- >>> r = req.prepare()
-
-
- >>> s = requests.Session()
- >>> s.send(r)
-
- """
-
- def __init__(self):
- #: HTTP verb to send to the server.
- self.method = None
- #: HTTP URL to send the request to.
- self.url = None
- #: dictionary of HTTP headers.
- self.headers = None
- # The `CookieJar` used to create the Cookie header will be stored here
- # after prepare_cookies is called
- self._cookies = None
- #: request body to send to the server.
- self.body = None
- #: dictionary of callback hooks, for internal usage.
- self.hooks = default_hooks()
-
- def prepare(self, method=None, url=None, headers=None, files=None,
- data=None, params=None, auth=None, cookies=None, hooks=None, json=None):
- """Prepares the entire request with the given parameters."""
-
- self.prepare_method(method)
- self.prepare_url(url, params)
- self.prepare_headers(headers)
- self.prepare_cookies(cookies)
- self.prepare_body(data, files, json)
- self.prepare_auth(auth, url)
-
- # Note that prepare_auth must be last to enable authentication schemes
- # such as OAuth to work on a fully prepared request.
-
- # This MUST go after prepare_auth. Authenticators could add a hook
- self.prepare_hooks(hooks)
-
- def __repr__(self):
- return '' % (self.method)
-
- def copy(self):
- p = PreparedRequest()
- p.method = self.method
- p.url = self.url
- p.headers = self.headers.copy() if self.headers is not None else None
- p._cookies = _copy_cookie_jar(self._cookies)
- p.body = self.body
- p.hooks = self.hooks
- return p
-
- def prepare_method(self, method):
- """Prepares the given HTTP method."""
- self.method = method
- if self.method is not None:
- self.method = to_native_string(self.method.upper())
-
- def prepare_url(self, url, params):
- """Prepares the given HTTP URL."""
- #: Accept objects that have string representations.
- #: We're unable to blindly call unicode/str functions
- #: as this will include the bytestring indicator (b'')
- #: on python 3.x.
- #: https://github.com/kennethreitz/requests/pull/2238
- if isinstance(url, bytes):
- url = url.decode('utf8')
- else:
- url = unicode(url) if is_py2 else str(url)
-
- # Don't do any URL preparation for non-HTTP schemes like `mailto`,
- # `data` etc to work around exceptions from `url_parse`, which
- # handles RFC 3986 only.
- if ':' in url and not url.lower().startswith('http'):
- self.url = url
- return
-
- # Support for unicode domain names and paths.
- try:
- scheme, auth, host, port, path, query, fragment = parse_url(url)
- except LocationParseError as e:
- raise InvalidURL(*e.args)
-
- if not scheme:
- error = ("Invalid URL {0!r}: No schema supplied. Perhaps you meant http://{0}?")
- error = error.format(to_native_string(url, 'utf8'))
-
- raise MissingSchema(error)
-
- if not host:
- raise InvalidURL("Invalid URL %r: No host supplied" % url)
-
- # Only want to apply IDNA to the hostname
- try:
- host = host.encode('idna').decode('utf-8')
- except UnicodeError:
- raise InvalidURL('URL has an invalid label.')
-
- # Carefully reconstruct the network location
- netloc = auth or ''
- if netloc:
- netloc += '@'
- netloc += host
- if port:
- netloc += ':' + str(port)
-
- # Bare domains aren't valid URLs.
- if not path:
- path = '/'
-
- if is_py2:
- if isinstance(scheme, str):
- scheme = scheme.encode('utf-8')
- if isinstance(netloc, str):
- netloc = netloc.encode('utf-8')
- if isinstance(path, str):
- path = path.encode('utf-8')
- if isinstance(query, str):
- query = query.encode('utf-8')
- if isinstance(fragment, str):
- fragment = fragment.encode('utf-8')
-
- if isinstance(params, (str, bytes)):
- params = to_native_string(params)
-
- enc_params = self._encode_params(params)
- if enc_params:
- if query:
- query = '%s&%s' % (query, enc_params)
- else:
- query = enc_params
-
- url = requote_uri(urlunparse([scheme, netloc, path, None, query, fragment]))
- self.url = url
-
- def prepare_headers(self, headers):
- """Prepares the given HTTP headers."""
-
- self.headers = CaseInsensitiveDict()
- if headers:
- for header in headers.items():
- # Raise exception on invalid header value.
- check_header_validity(header)
- name, value = header
- self.headers[to_native_string(name)] = value
-
- def prepare_body(self, data, files, json=None):
- """Prepares the given HTTP body data."""
-
- # Check if file, fo, generator, iterator.
- # If not, run through normal process.
-
- # Nottin' on you.
- body = None
- content_type = None
- length = None
-
- if not data and json is not None:
- # urllib3 requires a bytes-like body. Python 2's json.dumps
- # provides this natively, but Python 3 gives a Unicode string.
- content_type = 'application/json'
- body = complexjson.dumps(json)
- if not isinstance(body, bytes):
- body = body.encode('utf-8')
-
- is_stream = all([
- hasattr(data, '__iter__'),
- not isinstance(data, (basestring, list, tuple, dict))
- ])
-
- try:
- length = super_len(data)
- except (TypeError, AttributeError, UnsupportedOperation):
- length = None
-
- if is_stream:
- body = data
-
- if files:
- raise NotImplementedError('Streamed bodies and files are mutually exclusive.')
-
- if length:
- self.headers['Content-Length'] = builtin_str(length)
- else:
- self.headers['Transfer-Encoding'] = 'chunked'
- else:
- # Multi-part file uploads.
- if files:
- (body, content_type) = self._encode_files(files, data)
- else:
- if data:
- body = self._encode_params(data)
- if isinstance(data, basestring) or hasattr(data, 'read'):
- content_type = None
- else:
- content_type = 'application/x-www-form-urlencoded'
-
- self.prepare_content_length(body)
-
- # Add content-type if it wasn't explicitly provided.
- if content_type and ('content-type' not in self.headers):
- self.headers['Content-Type'] = content_type
-
- self.body = body
-
- def prepare_content_length(self, body):
- if hasattr(body, 'seek') and hasattr(body, 'tell'):
- curr_pos = body.tell()
- body.seek(0, 2)
- end_pos = body.tell()
- self.headers['Content-Length'] = builtin_str(max(0, end_pos - curr_pos))
- body.seek(curr_pos, 0)
- elif body is not None:
- l = super_len(body)
- if l:
- self.headers['Content-Length'] = builtin_str(l)
- elif (self.method not in ('GET', 'HEAD')) and (self.headers.get('Content-Length') is None):
- self.headers['Content-Length'] = '0'
-
- def prepare_auth(self, auth, url=''):
- """Prepares the given HTTP auth data."""
-
- # If no Auth is explicitly provided, extract it from the URL first.
- if auth is None:
- url_auth = get_auth_from_url(self.url)
- auth = url_auth if any(url_auth) else None
-
- if auth:
- if isinstance(auth, tuple) and len(auth) == 2:
- # special-case basic HTTP auth
- auth = HTTPBasicAuth(*auth)
-
- # Allow auth to make its changes.
- r = auth(self)
-
- # Update self to reflect the auth changes.
- self.__dict__.update(r.__dict__)
-
- # Recompute Content-Length
- self.prepare_content_length(self.body)
-
- def prepare_cookies(self, cookies):
- """Prepares the given HTTP cookie data.
-
- This function eventually generates a ``Cookie`` header from the
- given cookies using cookielib. Due to cookielib's design, the header
- will not be regenerated if it already exists, meaning this function
- can only be called once for the life of the
- :class:`PreparedRequest ` object. Any subsequent calls
- to ``prepare_cookies`` will have no actual effect, unless the "Cookie"
- header is removed beforehand.
- """
- if isinstance(cookies, cookielib.CookieJar):
- self._cookies = cookies
- else:
- self._cookies = cookiejar_from_dict(cookies)
-
- cookie_header = get_cookie_header(self._cookies, self)
- if cookie_header is not None:
- self.headers['Cookie'] = cookie_header
-
- def prepare_hooks(self, hooks):
- """Prepares the given hooks."""
- # hooks can be passed as None to the prepare method and to this
- # method. To prevent iterating over None, simply use an empty list
- # if hooks is False-y
- hooks = hooks or []
- for event in hooks:
- self.register_hook(event, hooks[event])
-
-
-class Response(object):
- """The :class:`Response ` object, which contains a
- server's response to an HTTP request.
- """
-
- __attrs__ = [
- '_content', 'status_code', 'headers', 'url', 'history',
- 'encoding', 'reason', 'cookies', 'elapsed', 'request'
- ]
-
- def __init__(self):
- super(Response, self).__init__()
-
- self._content = False
- self._content_consumed = False
-
- #: Integer Code of responded HTTP Status, e.g. 404 or 200.
- self.status_code = None
-
- #: Case-insensitive Dictionary of Response Headers.
- #: For example, ``headers['content-encoding']`` will return the
- #: value of a ``'Content-Encoding'`` response header.
- self.headers = CaseInsensitiveDict()
-
- #: File-like object representation of response (for advanced usage).
- #: Use of ``raw`` requires that ``stream=True`` be set on the request.
- # This requirement does not apply for use internally to Requests.
- self.raw = None
-
- #: Final URL location of Response.
- self.url = None
-
- #: Encoding to decode with when accessing r.text.
- self.encoding = None
-
- #: A list of :class:`Response ` objects from
- #: the history of the Request. Any redirect responses will end
- #: up here. The list is sorted from the oldest to the most recent request.
- self.history = []
-
- #: Textual reason of responded HTTP Status, e.g. "Not Found" or "OK".
- self.reason = None
-
- #: A CookieJar of Cookies the server sent back.
- self.cookies = cookiejar_from_dict({})
-
- #: The amount of time elapsed between sending the request
- #: and the arrival of the response (as a timedelta).
- #: This property specifically measures the time taken between sending
- #: the first byte of the request and finishing parsing the headers. It
- #: is therefore unaffected by consuming the response content or the
- #: value of the ``stream`` keyword argument.
- self.elapsed = datetime.timedelta(0)
-
- #: The :class:`PreparedRequest ` object to which this
- #: is a response.
- self.request = None
-
- def __getstate__(self):
- # Consume everything; accessing the content attribute makes
- # sure the content has been fully read.
- if not self._content_consumed:
- self.content
-
- return dict(
- (attr, getattr(self, attr, None))
- for attr in self.__attrs__
- )
-
- def __setstate__(self, state):
- for name, value in state.items():
- setattr(self, name, value)
-
- # pickled objects do not have .raw
- setattr(self, '_content_consumed', True)
- setattr(self, 'raw', None)
-
- def __repr__(self):
- return '' % (self.status_code)
-
- def __bool__(self):
- """Returns true if :attr:`status_code` is 'OK'."""
- return self.ok
-
- def __nonzero__(self):
- """Returns true if :attr:`status_code` is 'OK'."""
- return self.ok
-
- def __iter__(self):
- """Allows you to use a response as an iterator."""
- return self.iter_content(128)
-
- @property
- def ok(self):
- try:
- self.raise_for_status()
- except HTTPError:
- return False
- return True
-
- @property
- def is_redirect(self):
- """True if this Response is a well-formed HTTP redirect that could have
- been processed automatically (by :meth:`Session.resolve_redirects`).
- """
- return ('location' in self.headers and self.status_code in REDIRECT_STATI)
-
- @property
- def is_permanent_redirect(self):
- """True if this Response one of the permanent versions of redirect"""
- return ('location' in self.headers and self.status_code in (codes.moved_permanently, codes.permanent_redirect))
-
- @property
- def apparent_encoding(self):
- """The apparent encoding, provided by the chardet library"""
- return chardet.detect(self.content)['encoding']
-
- def iter_content(self, chunk_size=1, decode_unicode=False):
- """Iterates over the response data. When stream=True is set on the
- request, this avoids reading the content at once into memory for
- large responses. The chunk size is the number of bytes it should
- read into memory. This is not necessarily the length of each item
- returned as decoding can take place.
-
- chunk_size must be of type int or None. A value of None will
- function differently depending on the value of `stream`.
- stream=True will read data as it arrives in whatever size the
- chunks are received. If stream=False, data is returned as
- a single chunk.
-
- If decode_unicode is True, content will be decoded using the best
- available encoding based on the response.
- """
-
- def generate():
- # Special case for urllib3.
- if hasattr(self.raw, 'stream'):
- try:
- for chunk in self.raw.stream(chunk_size, decode_content=True):
- yield chunk
- except ProtocolError as e:
- raise ChunkedEncodingError(e)
- except DecodeError as e:
- raise ContentDecodingError(e)
- except ReadTimeoutError as e:
- raise ConnectionError(e)
- else:
- # Standard file-like object.
- while True:
- chunk = self.raw.read(chunk_size)
- if not chunk:
- break
- yield chunk
-
- self._content_consumed = True
-
- if self._content_consumed and isinstance(self._content, bool):
- raise StreamConsumedError()
- elif chunk_size is not None and not isinstance(chunk_size, int):
- raise TypeError("chunk_size must be an int, it is instead a %s." % type(chunk_size))
- # simulate reading small chunks of the content
- reused_chunks = iter_slices(self._content, chunk_size)
-
- stream_chunks = generate()
-
- chunks = reused_chunks if self._content_consumed else stream_chunks
-
- if decode_unicode:
- chunks = stream_decode_response_unicode(chunks, self)
-
- return chunks
-
- def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=None, delimiter=None):
- """Iterates over the response data, one line at a time. When
- stream=True is set on the request, this avoids reading the
- content at once into memory for large responses.
-
- .. note:: This method is not reentrant safe.
- """
-
- pending = None
-
- for chunk in self.iter_content(chunk_size=chunk_size, decode_unicode=decode_unicode):
-
- if pending is not None:
- chunk = pending + chunk
-
- if delimiter:
- lines = chunk.split(delimiter)
- else:
- lines = chunk.splitlines()
-
- if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]:
- pending = lines.pop()
- else:
- pending = None
-
- for line in lines:
- yield line
-
- if pending is not None:
- yield pending
-
- @property
- def content(self):
- """Content of the response, in bytes."""
-
- if self._content is False:
- # Read the contents.
- try:
- if self._content_consumed:
- raise RuntimeError(
- 'The content for this response was already consumed')
-
- if self.status_code == 0:
- self._content = None
- else:
- self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
-
- except AttributeError:
- self._content = None
-
- self._content_consumed = True
- # don't need to release the connection; that's been handled by urllib3
- # since we exhausted the data.
- return self._content
-
- @property
- def text(self):
- """Content of the response, in unicode.
-
- If Response.encoding is None, encoding will be guessed using
- ``chardet``.
-
- The encoding of the response content is determined based solely on HTTP
- headers, following RFC 2616 to the letter. If you can take advantage of
- non-HTTP knowledge to make a better guess at the encoding, you should
- set ``r.encoding`` appropriately before accessing this property.
- """
-
- # Try charset from content-type
- content = None
- encoding = self.encoding
-
- if not self.content:
- return str('')
-
- # Fallback to auto-detected encoding.
- if self.encoding is None:
- encoding = self.apparent_encoding
-
- # Decode unicode from given encoding.
- try:
- content = str(self.content, encoding, errors='replace')
- except (LookupError, TypeError):
- # A LookupError is raised if the encoding was not found which could
- # indicate a misspelling or similar mistake.
- #
- # A TypeError can be raised if encoding is None
- #
- # So we try blindly encoding.
- content = str(self.content, errors='replace')
-
- return content
-
- def json(self, **kwargs):
- """Returns the json-encoded content of a response, if any.
-
- :param \*\*kwargs: Optional arguments that ``json.loads`` takes.
- """
-
- if not self.encoding and self.content and len(self.content) > 3:
- # No encoding set. JSON RFC 4627 section 3 states we should expect
- # UTF-8, -16 or -32. Detect which one to use; If the detection or
- # decoding fails, fall back to `self.text` (using chardet to make
- # a best guess).
- encoding = guess_json_utf(self.content)
- if encoding is not None:
- try:
- return complexjson.loads(
- self.content.decode(encoding), **kwargs
- )
- except UnicodeDecodeError:
- # Wrong UTF codec detected; usually because it's not UTF-8
- # but some other 8-bit codec. This is an RFC violation,
- # and the server didn't bother to tell us what codec *was*
- # used.
- pass
- return complexjson.loads(self.text, **kwargs)
-
- @property
- def links(self):
- """Returns the parsed header links of the response, if any."""
-
- header = self.headers.get('link')
-
- # l = MultiDict()
- l = {}
-
- if header:
- links = parse_header_links(header)
-
- for link in links:
- key = link.get('rel') or link.get('url')
- l[key] = link
-
- return l
-
- def raise_for_status(self):
- """Raises stored :class:`HTTPError`, if one occurred."""
-
- http_error_msg = ''
- if isinstance(self.reason, bytes):
- reason = self.reason.decode('utf-8', 'ignore')
- else:
- reason = self.reason
-
- if 400 <= self.status_code < 500:
- http_error_msg = u'%s Client Error: %s for url: %s' % (self.status_code, reason, self.url)
-
- elif 500 <= self.status_code < 600:
- http_error_msg = u'%s Server Error: %s for url: %s' % (self.status_code, reason, self.url)
-
- if http_error_msg:
- raise HTTPError(http_error_msg, response=self)
-
- def close(self):
- """Releases the connection back to the pool. Once this method has been
- called the underlying ``raw`` object must not be accessed again.
-
- *Note: Should not normally need to be called explicitly.*
- """
- if not self._content_consumed:
- self.raw.close()
-
- return self.raw.release_conn()
diff --git a/vendor/requests/packages/README.rst b/vendor/requests/packages/README.rst
deleted file mode 100644
index 83e0c625..00000000
--- a/vendor/requests/packages/README.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-If you are planning to submit a pull request to requests with any changes in
-this library do not go any further. These are independent libraries which we
-vendor into requests. Any changes necessary to these libraries must be made in
-them and submitted as separate pull requests to those libraries.
-
-urllib3 pull requests go here: https://github.com/shazow/urllib3
-
-chardet pull requests go here: https://github.com/chardet/chardet
-
-See https://github.com/kennethreitz/requests/pull/1812#issuecomment-30854316
-for the reasoning behind this.
diff --git a/vendor/requests/packages/__init__.py b/vendor/requests/packages/__init__.py
deleted file mode 100644
index 971c2ad0..00000000
--- a/vendor/requests/packages/__init__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-'''
-Debian and other distributions "unbundle" requests' vendored dependencies, and
-rewrite all imports to use the global versions of ``urllib3`` and ``chardet``.
-The problem with this is that not only requests itself imports those
-dependencies, but third-party code outside of the distros' control too.
-
-In reaction to these problems, the distro maintainers replaced
-``requests.packages`` with a magical "stub module" that imports the correct
-modules. The implementations were varying in quality and all had severe
-problems. For example, a symlink (or hardlink) that links the correct modules
-into place introduces problems regarding object identity, since you now have
-two modules in `sys.modules` with the same API, but different identities::
-
- requests.packages.urllib3 is not urllib3
-
-With version ``2.5.2``, requests started to maintain its own stub, so that
-distro-specific breakage would be reduced to a minimum, even though the whole
-issue is not requests' fault in the first place. See
-https://github.com/kennethreitz/requests/pull/2375 for the corresponding pull
-request.
-'''
-
-from __future__ import absolute_import
-import sys
-
-try:
- from . import urllib3
-except ImportError:
- import urllib3
- sys.modules['%s.urllib3' % __name__] = urllib3
-
-try:
- from . import chardet
-except ImportError:
- import chardet
- sys.modules['%s.chardet' % __name__] = chardet
diff --git a/vendor/requests/packages/chardet/__init__.py b/vendor/requests/packages/chardet/__init__.py
deleted file mode 100644
index 82c2a48d..00000000
--- a/vendor/requests/packages/chardet/__init__.py
+++ /dev/null
@@ -1,32 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-__version__ = "2.3.0"
-from sys import version_info
-
-
-def detect(aBuf):
- if ((version_info < (3, 0) and isinstance(aBuf, unicode)) or
- (version_info >= (3, 0) and not isinstance(aBuf, bytes))):
- raise ValueError('Expected a bytes object, not a unicode object')
-
- from . import universaldetector
- u = universaldetector.UniversalDetector()
- u.reset()
- u.feed(aBuf)
- u.close()
- return u.result
diff --git a/vendor/requests/packages/chardet/big5freq.py b/vendor/requests/packages/chardet/big5freq.py
deleted file mode 100644
index 65bffc04..00000000
--- a/vendor/requests/packages/chardet/big5freq.py
+++ /dev/null
@@ -1,925 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# Big5 frequency table
-# by Taiwan's Mandarin Promotion Council
-#
-#
-# 128 --> 0.42261
-# 256 --> 0.57851
-# 512 --> 0.74851
-# 1024 --> 0.89384
-# 2048 --> 0.97583
-#
-# Ideal Distribution Ratio = 0.74851/(1-0.74851) =2.98
-# Random Distribution Ration = 512/(5401-512)=0.105
-#
-# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR
-
-BIG5_TYPICAL_DISTRIBUTION_RATIO = 0.75
-
-#Char to FreqOrder table
-BIG5_TABLE_SIZE = 5376
-
-Big5CharToFreqOrder = (
- 1,1801,1506, 255,1431, 198, 9, 82, 6,5008, 177, 202,3681,1256,2821, 110, # 16
-3814, 33,3274, 261, 76, 44,2114, 16,2946,2187,1176, 659,3971, 26,3451,2653, # 32
-1198,3972,3350,4202, 410,2215, 302, 590, 361,1964, 8, 204, 58,4510,5009,1932, # 48
- 63,5010,5011, 317,1614, 75, 222, 159,4203,2417,1480,5012,3555,3091, 224,2822, # 64
-3682, 3, 10,3973,1471, 29,2787,1135,2866,1940, 873, 130,3275,1123, 312,5013, # 80
-4511,2052, 507, 252, 682,5014, 142,1915, 124, 206,2947, 34,3556,3204, 64, 604, # 96
-5015,2501,1977,1978, 155,1991, 645, 641,1606,5016,3452, 337, 72, 406,5017, 80, # 112
- 630, 238,3205,1509, 263, 939,1092,2654, 756,1440,1094,3453, 449, 69,2987, 591, # 128
- 179,2096, 471, 115,2035,1844, 60, 50,2988, 134, 806,1869, 734,2036,3454, 180, # 144
- 995,1607, 156, 537,2907, 688,5018, 319,1305, 779,2145, 514,2379, 298,4512, 359, # 160
-2502, 90,2716,1338, 663, 11, 906,1099,2553, 20,2441, 182, 532,1716,5019, 732, # 176
-1376,4204,1311,1420,3206, 25,2317,1056, 113, 399, 382,1950, 242,3455,2474, 529, # 192
-3276, 475,1447,3683,5020, 117, 21, 656, 810,1297,2300,2334,3557,5021, 126,4205, # 208
- 706, 456, 150, 613,4513, 71,1118,2037,4206, 145,3092, 85, 835, 486,2115,1246, # 224
-1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,5022,2128,2359, 347,3815, 221, # 240
-3558,3135,5023,1956,1153,4207, 83, 296,1199,3093, 192, 624, 93,5024, 822,1898, # 256
-2823,3136, 795,2065, 991,1554,1542,1592, 27, 43,2867, 859, 139,1456, 860,4514, # 272
- 437, 712,3974, 164,2397,3137, 695, 211,3037,2097, 195,3975,1608,3559,3560,3684, # 288
-3976, 234, 811,2989,2098,3977,2233,1441,3561,1615,2380, 668,2077,1638, 305, 228, # 304
-1664,4515, 467, 415,5025, 262,2099,1593, 239, 108, 300, 200,1033, 512,1247,2078, # 320
-5026,5027,2176,3207,3685,2682, 593, 845,1062,3277, 88,1723,2038,3978,1951, 212, # 336
- 266, 152, 149, 468,1899,4208,4516, 77, 187,5028,3038, 37, 5,2990,5029,3979, # 352
-5030,5031, 39,2524,4517,2908,3208,2079, 55, 148, 74,4518, 545, 483,1474,1029, # 368
-1665, 217,1870,1531,3138,1104,2655,4209, 24, 172,3562, 900,3980,3563,3564,4519, # 384
- 32,1408,2824,1312, 329, 487,2360,2251,2717, 784,2683, 4,3039,3351,1427,1789, # 400
- 188, 109, 499,5032,3686,1717,1790, 888,1217,3040,4520,5033,3565,5034,3352,1520, # 416
-3687,3981, 196,1034, 775,5035,5036, 929,1816, 249, 439, 38,5037,1063,5038, 794, # 432
-3982,1435,2301, 46, 178,3278,2066,5039,2381,5040, 214,1709,4521, 804, 35, 707, # 448
- 324,3688,1601,2554, 140, 459,4210,5041,5042,1365, 839, 272, 978,2262,2580,3456, # 464
-2129,1363,3689,1423, 697, 100,3094, 48, 70,1231, 495,3139,2196,5043,1294,5044, # 480
-2080, 462, 586,1042,3279, 853, 256, 988, 185,2382,3457,1698, 434,1084,5045,3458, # 496
- 314,2625,2788,4522,2335,2336, 569,2285, 637,1817,2525, 757,1162,1879,1616,3459, # 512
- 287,1577,2116, 768,4523,1671,2868,3566,2526,1321,3816, 909,2418,5046,4211, 933, # 528
-3817,4212,2053,2361,1222,4524, 765,2419,1322, 786,4525,5047,1920,1462,1677,2909, # 544
-1699,5048,4526,1424,2442,3140,3690,2600,3353,1775,1941,3460,3983,4213, 309,1369, # 560
-1130,2825, 364,2234,1653,1299,3984,3567,3985,3986,2656, 525,1085,3041, 902,2001, # 576
-1475, 964,4527, 421,1845,1415,1057,2286, 940,1364,3141, 376,4528,4529,1381, 7, # 592
-2527, 983,2383, 336,1710,2684,1846, 321,3461, 559,1131,3042,2752,1809,1132,1313, # 608
- 265,1481,1858,5049, 352,1203,2826,3280, 167,1089, 420,2827, 776, 792,1724,3568, # 624
-4214,2443,3281,5050,4215,5051, 446, 229, 333,2753, 901,3818,1200,1557,4530,2657, # 640
-1921, 395,2754,2685,3819,4216,1836, 125, 916,3209,2626,4531,5052,5053,3820,5054, # 656
-5055,5056,4532,3142,3691,1133,2555,1757,3462,1510,2318,1409,3569,5057,2146, 438, # 672
-2601,2910,2384,3354,1068, 958,3043, 461, 311,2869,2686,4217,1916,3210,4218,1979, # 688
- 383, 750,2755,2627,4219, 274, 539, 385,1278,1442,5058,1154,1965, 384, 561, 210, # 704
- 98,1295,2556,3570,5059,1711,2420,1482,3463,3987,2911,1257, 129,5060,3821, 642, # 720
- 523,2789,2790,2658,5061, 141,2235,1333, 68, 176, 441, 876, 907,4220, 603,2602, # 736
- 710, 171,3464, 404, 549, 18,3143,2398,1410,3692,1666,5062,3571,4533,2912,4534, # 752
-5063,2991, 368,5064, 146, 366, 99, 871,3693,1543, 748, 807,1586,1185, 22,2263, # 768
- 379,3822,3211,5065,3212, 505,1942,2628,1992,1382,2319,5066, 380,2362, 218, 702, # 784
-1818,1248,3465,3044,3572,3355,3282,5067,2992,3694, 930,3283,3823,5068, 59,5069, # 800
- 585, 601,4221, 497,3466,1112,1314,4535,1802,5070,1223,1472,2177,5071, 749,1837, # 816
- 690,1900,3824,1773,3988,1476, 429,1043,1791,2236,2117, 917,4222, 447,1086,1629, # 832
-5072, 556,5073,5074,2021,1654, 844,1090, 105, 550, 966,1758,2828,1008,1783, 686, # 848
-1095,5075,2287, 793,1602,5076,3573,2603,4536,4223,2948,2302,4537,3825, 980,2503, # 864
- 544, 353, 527,4538, 908,2687,2913,5077, 381,2629,1943,1348,5078,1341,1252, 560, # 880
-3095,5079,3467,2870,5080,2054, 973, 886,2081, 143,4539,5081,5082, 157,3989, 496, # 896
-4224, 57, 840, 540,2039,4540,4541,3468,2118,1445, 970,2264,1748,1966,2082,4225, # 912
-3144,1234,1776,3284,2829,3695, 773,1206,2130,1066,2040,1326,3990,1738,1725,4226, # 928
- 279,3145, 51,1544,2604, 423,1578,2131,2067, 173,4542,1880,5083,5084,1583, 264, # 944
- 610,3696,4543,2444, 280, 154,5085,5086,5087,1739, 338,1282,3096, 693,2871,1411, # 960
-1074,3826,2445,5088,4544,5089,5090,1240, 952,2399,5091,2914,1538,2688, 685,1483, # 976
-4227,2475,1436, 953,4228,2055,4545, 671,2400, 79,4229,2446,3285, 608, 567,2689, # 992
-3469,4230,4231,1691, 393,1261,1792,2401,5092,4546,5093,5094,5095,5096,1383,1672, # 1008
-3827,3213,1464, 522,1119, 661,1150, 216, 675,4547,3991,1432,3574, 609,4548,2690, # 1024
-2402,5097,5098,5099,4232,3045, 0,5100,2476, 315, 231,2447, 301,3356,4549,2385, # 1040
-5101, 233,4233,3697,1819,4550,4551,5102, 96,1777,1315,2083,5103, 257,5104,1810, # 1056
-3698,2718,1139,1820,4234,2022,1124,2164,2791,1778,2659,5105,3097, 363,1655,3214, # 1072
-5106,2993,5107,5108,5109,3992,1567,3993, 718, 103,3215, 849,1443, 341,3357,2949, # 1088
-1484,5110,1712, 127, 67, 339,4235,2403, 679,1412, 821,5111,5112, 834, 738, 351, # 1104
-2994,2147, 846, 235,1497,1881, 418,1993,3828,2719, 186,1100,2148,2756,3575,1545, # 1120
-1355,2950,2872,1377, 583,3994,4236,2581,2995,5113,1298,3699,1078,2557,3700,2363, # 1136
- 78,3829,3830, 267,1289,2100,2002,1594,4237, 348, 369,1274,2197,2178,1838,4552, # 1152
-1821,2830,3701,2757,2288,2003,4553,2951,2758, 144,3358, 882,4554,3995,2759,3470, # 1168
-4555,2915,5114,4238,1726, 320,5115,3996,3046, 788,2996,5116,2831,1774,1327,2873, # 1184
-3997,2832,5117,1306,4556,2004,1700,3831,3576,2364,2660, 787,2023, 506, 824,3702, # 1200
- 534, 323,4557,1044,3359,2024,1901, 946,3471,5118,1779,1500,1678,5119,1882,4558, # 1216
- 165, 243,4559,3703,2528, 123, 683,4239, 764,4560, 36,3998,1793, 589,2916, 816, # 1232
- 626,1667,3047,2237,1639,1555,1622,3832,3999,5120,4000,2874,1370,1228,1933, 891, # 1248
-2084,2917, 304,4240,5121, 292,2997,2720,3577, 691,2101,4241,1115,4561, 118, 662, # 1264
-5122, 611,1156, 854,2386,1316,2875, 2, 386, 515,2918,5123,5124,3286, 868,2238, # 1280
-1486, 855,2661, 785,2216,3048,5125,1040,3216,3578,5126,3146, 448,5127,1525,5128, # 1296
-2165,4562,5129,3833,5130,4242,2833,3579,3147, 503, 818,4001,3148,1568, 814, 676, # 1312
-1444, 306,1749,5131,3834,1416,1030, 197,1428, 805,2834,1501,4563,5132,5133,5134, # 1328
-1994,5135,4564,5136,5137,2198, 13,2792,3704,2998,3149,1229,1917,5138,3835,2132, # 1344
-5139,4243,4565,2404,3580,5140,2217,1511,1727,1120,5141,5142, 646,3836,2448, 307, # 1360
-5143,5144,1595,3217,5145,5146,5147,3705,1113,1356,4002,1465,2529,2530,5148, 519, # 1376
-5149, 128,2133, 92,2289,1980,5150,4003,1512, 342,3150,2199,5151,2793,2218,1981, # 1392
-3360,4244, 290,1656,1317, 789, 827,2365,5152,3837,4566, 562, 581,4004,5153, 401, # 1408
-4567,2252, 94,4568,5154,1399,2794,5155,1463,2025,4569,3218,1944,5156, 828,1105, # 1424
-4245,1262,1394,5157,4246, 605,4570,5158,1784,2876,5159,2835, 819,2102, 578,2200, # 1440
-2952,5160,1502, 436,3287,4247,3288,2836,4005,2919,3472,3473,5161,2721,2320,5162, # 1456
-5163,2337,2068, 23,4571, 193, 826,3838,2103, 699,1630,4248,3098, 390,1794,1064, # 1472
-3581,5164,1579,3099,3100,1400,5165,4249,1839,1640,2877,5166,4572,4573, 137,4250, # 1488
- 598,3101,1967, 780, 104, 974,2953,5167, 278, 899, 253, 402, 572, 504, 493,1339, # 1504
-5168,4006,1275,4574,2582,2558,5169,3706,3049,3102,2253, 565,1334,2722, 863, 41, # 1520
-5170,5171,4575,5172,1657,2338, 19, 463,2760,4251, 606,5173,2999,3289,1087,2085, # 1536
-1323,2662,3000,5174,1631,1623,1750,4252,2691,5175,2878, 791,2723,2663,2339, 232, # 1552
-2421,5176,3001,1498,5177,2664,2630, 755,1366,3707,3290,3151,2026,1609, 119,1918, # 1568
-3474, 862,1026,4253,5178,4007,3839,4576,4008,4577,2265,1952,2477,5179,1125, 817, # 1584
-4254,4255,4009,1513,1766,2041,1487,4256,3050,3291,2837,3840,3152,5180,5181,1507, # 1600
-5182,2692, 733, 40,1632,1106,2879, 345,4257, 841,2531, 230,4578,3002,1847,3292, # 1616
-3475,5183,1263, 986,3476,5184, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562, # 1632
-4010,4011,2954, 967,2761,2665,1349, 592,2134,1692,3361,3003,1995,4258,1679,4012, # 1648
-1902,2188,5185, 739,3708,2724,1296,1290,5186,4259,2201,2202,1922,1563,2605,2559, # 1664
-1871,2762,3004,5187, 435,5188, 343,1108, 596, 17,1751,4579,2239,3477,3709,5189, # 1680
-4580, 294,3582,2955,1693, 477, 979, 281,2042,3583, 643,2043,3710,2631,2795,2266, # 1696
-1031,2340,2135,2303,3584,4581, 367,1249,2560,5190,3585,5191,4582,1283,3362,2005, # 1712
- 240,1762,3363,4583,4584, 836,1069,3153, 474,5192,2149,2532, 268,3586,5193,3219, # 1728
-1521,1284,5194,1658,1546,4260,5195,3587,3588,5196,4261,3364,2693,1685,4262, 961, # 1744
-1673,2632, 190,2006,2203,3841,4585,4586,5197, 570,2504,3711,1490,5198,4587,2633, # 1760
-3293,1957,4588, 584,1514, 396,1045,1945,5199,4589,1968,2449,5200,5201,4590,4013, # 1776
- 619,5202,3154,3294, 215,2007,2796,2561,3220,4591,3221,4592, 763,4263,3842,4593, # 1792
-5203,5204,1958,1767,2956,3365,3712,1174, 452,1477,4594,3366,3155,5205,2838,1253, # 1808
-2387,2189,1091,2290,4264, 492,5206, 638,1169,1825,2136,1752,4014, 648, 926,1021, # 1824
-1324,4595, 520,4596, 997, 847,1007, 892,4597,3843,2267,1872,3713,2405,1785,4598, # 1840
-1953,2957,3103,3222,1728,4265,2044,3714,4599,2008,1701,3156,1551, 30,2268,4266, # 1856
-5207,2027,4600,3589,5208, 501,5209,4267, 594,3478,2166,1822,3590,3479,3591,3223, # 1872
- 829,2839,4268,5210,1680,3157,1225,4269,5211,3295,4601,4270,3158,2341,5212,4602, # 1888
-4271,5213,4015,4016,5214,1848,2388,2606,3367,5215,4603, 374,4017, 652,4272,4273, # 1904
- 375,1140, 798,5216,5217,5218,2366,4604,2269, 546,1659, 138,3051,2450,4605,5219, # 1920
-2254, 612,1849, 910, 796,3844,1740,1371, 825,3845,3846,5220,2920,2562,5221, 692, # 1936
- 444,3052,2634, 801,4606,4274,5222,1491, 244,1053,3053,4275,4276, 340,5223,4018, # 1952
-1041,3005, 293,1168, 87,1357,5224,1539, 959,5225,2240, 721, 694,4277,3847, 219, # 1968
-1478, 644,1417,3368,2666,1413,1401,1335,1389,4019,5226,5227,3006,2367,3159,1826, # 1984
- 730,1515, 184,2840, 66,4607,5228,1660,2958, 246,3369, 378,1457, 226,3480, 975, # 2000
-4020,2959,1264,3592, 674, 696,5229, 163,5230,1141,2422,2167, 713,3593,3370,4608, # 2016
-4021,5231,5232,1186, 15,5233,1079,1070,5234,1522,3224,3594, 276,1050,2725, 758, # 2032
-1126, 653,2960,3296,5235,2342, 889,3595,4022,3104,3007, 903,1250,4609,4023,3481, # 2048
-3596,1342,1681,1718, 766,3297, 286, 89,2961,3715,5236,1713,5237,2607,3371,3008, # 2064
-5238,2962,2219,3225,2880,5239,4610,2505,2533, 181, 387,1075,4024, 731,2190,3372, # 2080
-5240,3298, 310, 313,3482,2304, 770,4278, 54,3054, 189,4611,3105,3848,4025,5241, # 2096
-1230,1617,1850, 355,3597,4279,4612,3373, 111,4280,3716,1350,3160,3483,3055,4281, # 2112
-2150,3299,3598,5242,2797,4026,4027,3009, 722,2009,5243,1071, 247,1207,2343,2478, # 2128
-1378,4613,2010, 864,1437,1214,4614, 373,3849,1142,2220, 667,4615, 442,2763,2563, # 2144
-3850,4028,1969,4282,3300,1840, 837, 170,1107, 934,1336,1883,5244,5245,2119,4283, # 2160
-2841, 743,1569,5246,4616,4284, 582,2389,1418,3484,5247,1803,5248, 357,1395,1729, # 2176
-3717,3301,2423,1564,2241,5249,3106,3851,1633,4617,1114,2086,4285,1532,5250, 482, # 2192
-2451,4618,5251,5252,1492, 833,1466,5253,2726,3599,1641,2842,5254,1526,1272,3718, # 2208
-4286,1686,1795, 416,2564,1903,1954,1804,5255,3852,2798,3853,1159,2321,5256,2881, # 2224
-4619,1610,1584,3056,2424,2764, 443,3302,1163,3161,5257,5258,4029,5259,4287,2506, # 2240
-3057,4620,4030,3162,2104,1647,3600,2011,1873,4288,5260,4289, 431,3485,5261, 250, # 2256
- 97, 81,4290,5262,1648,1851,1558, 160, 848,5263, 866, 740,1694,5264,2204,2843, # 2272
-3226,4291,4621,3719,1687, 950,2479, 426, 469,3227,3720,3721,4031,5265,5266,1188, # 2288
- 424,1996, 861,3601,4292,3854,2205,2694, 168,1235,3602,4293,5267,2087,1674,4622, # 2304
-3374,3303, 220,2565,1009,5268,3855, 670,3010, 332,1208, 717,5269,5270,3603,2452, # 2320
-4032,3375,5271, 513,5272,1209,2882,3376,3163,4623,1080,5273,5274,5275,5276,2534, # 2336
-3722,3604, 815,1587,4033,4034,5277,3605,3486,3856,1254,4624,1328,3058,1390,4035, # 2352
-1741,4036,3857,4037,5278, 236,3858,2453,3304,5279,5280,3723,3859,1273,3860,4625, # 2368
-5281, 308,5282,4626, 245,4627,1852,2480,1307,2583, 430, 715,2137,2454,5283, 270, # 2384
- 199,2883,4038,5284,3606,2727,1753, 761,1754, 725,1661,1841,4628,3487,3724,5285, # 2400
-5286, 587, 14,3305, 227,2608, 326, 480,2270, 943,2765,3607, 291, 650,1884,5287, # 2416
-1702,1226, 102,1547, 62,3488, 904,4629,3489,1164,4294,5288,5289,1224,1548,2766, # 2432
- 391, 498,1493,5290,1386,1419,5291,2056,1177,4630, 813, 880,1081,2368, 566,1145, # 2448
-4631,2291,1001,1035,2566,2609,2242, 394,1286,5292,5293,2069,5294, 86,1494,1730, # 2464
-4039, 491,1588, 745, 897,2963, 843,3377,4040,2767,2884,3306,1768, 998,2221,2070, # 2480
- 397,1827,1195,1970,3725,3011,3378, 284,5295,3861,2507,2138,2120,1904,5296,4041, # 2496
-2151,4042,4295,1036,3490,1905, 114,2567,4296, 209,1527,5297,5298,2964,2844,2635, # 2512
-2390,2728,3164, 812,2568,5299,3307,5300,1559, 737,1885,3726,1210, 885, 28,2695, # 2528
-3608,3862,5301,4297,1004,1780,4632,5302, 346,1982,2222,2696,4633,3863,1742, 797, # 2544
-1642,4043,1934,1072,1384,2152, 896,4044,3308,3727,3228,2885,3609,5303,2569,1959, # 2560
-4634,2455,1786,5304,5305,5306,4045,4298,1005,1308,3728,4299,2729,4635,4636,1528, # 2576
-2610, 161,1178,4300,1983, 987,4637,1101,4301, 631,4046,1157,3229,2425,1343,1241, # 2592
-1016,2243,2570, 372, 877,2344,2508,1160, 555,1935, 911,4047,5307, 466,1170, 169, # 2608
-1051,2921,2697,3729,2481,3012,1182,2012,2571,1251,2636,5308, 992,2345,3491,1540, # 2624
-2730,1201,2071,2406,1997,2482,5309,4638, 528,1923,2191,1503,1874,1570,2369,3379, # 2640
-3309,5310, 557,1073,5311,1828,3492,2088,2271,3165,3059,3107, 767,3108,2799,4639, # 2656
-1006,4302,4640,2346,1267,2179,3730,3230, 778,4048,3231,2731,1597,2667,5312,4641, # 2672
-5313,3493,5314,5315,5316,3310,2698,1433,3311, 131, 95,1504,4049, 723,4303,3166, # 2688
-1842,3610,2768,2192,4050,2028,2105,3731,5317,3013,4051,1218,5318,3380,3232,4052, # 2704
-4304,2584, 248,1634,3864, 912,5319,2845,3732,3060,3865, 654, 53,5320,3014,5321, # 2720
-1688,4642, 777,3494,1032,4053,1425,5322, 191, 820,2121,2846, 971,4643, 931,3233, # 2736
- 135, 664, 783,3866,1998, 772,2922,1936,4054,3867,4644,2923,3234, 282,2732, 640, # 2752
-1372,3495,1127, 922, 325,3381,5323,5324, 711,2045,5325,5326,4055,2223,2800,1937, # 2768
-4056,3382,2224,2255,3868,2305,5327,4645,3869,1258,3312,4057,3235,2139,2965,4058, # 2784
-4059,5328,2225, 258,3236,4646, 101,1227,5329,3313,1755,5330,1391,3314,5331,2924, # 2800
-2057, 893,5332,5333,5334,1402,4305,2347,5335,5336,3237,3611,5337,5338, 878,1325, # 2816
-1781,2801,4647, 259,1385,2585, 744,1183,2272,4648,5339,4060,2509,5340, 684,1024, # 2832
-4306,5341, 472,3612,3496,1165,3315,4061,4062, 322,2153, 881, 455,1695,1152,1340, # 2848
- 660, 554,2154,4649,1058,4650,4307, 830,1065,3383,4063,4651,1924,5342,1703,1919, # 2864
-5343, 932,2273, 122,5344,4652, 947, 677,5345,3870,2637, 297,1906,1925,2274,4653, # 2880
-2322,3316,5346,5347,4308,5348,4309, 84,4310, 112, 989,5349, 547,1059,4064, 701, # 2896
-3613,1019,5350,4311,5351,3497, 942, 639, 457,2306,2456, 993,2966, 407, 851, 494, # 2912
-4654,3384, 927,5352,1237,5353,2426,3385, 573,4312, 680, 921,2925,1279,1875, 285, # 2928
- 790,1448,1984, 719,2168,5354,5355,4655,4065,4066,1649,5356,1541, 563,5357,1077, # 2944
-5358,3386,3061,3498, 511,3015,4067,4068,3733,4069,1268,2572,3387,3238,4656,4657, # 2960
-5359, 535,1048,1276,1189,2926,2029,3167,1438,1373,2847,2967,1134,2013,5360,4313, # 2976
-1238,2586,3109,1259,5361, 700,5362,2968,3168,3734,4314,5363,4315,1146,1876,1907, # 2992
-4658,2611,4070, 781,2427, 132,1589, 203, 147, 273,2802,2407, 898,1787,2155,4071, # 3008
-4072,5364,3871,2803,5365,5366,4659,4660,5367,3239,5368,1635,3872, 965,5369,1805, # 3024
-2699,1516,3614,1121,1082,1329,3317,4073,1449,3873, 65,1128,2848,2927,2769,1590, # 3040
-3874,5370,5371, 12,2668, 45, 976,2587,3169,4661, 517,2535,1013,1037,3240,5372, # 3056
-3875,2849,5373,3876,5374,3499,5375,2612, 614,1999,2323,3877,3110,2733,2638,5376, # 3072
-2588,4316, 599,1269,5377,1811,3735,5378,2700,3111, 759,1060, 489,1806,3388,3318, # 3088
-1358,5379,5380,2391,1387,1215,2639,2256, 490,5381,5382,4317,1759,2392,2348,5383, # 3104
-4662,3878,1908,4074,2640,1807,3241,4663,3500,3319,2770,2349, 874,5384,5385,3501, # 3120
-3736,1859, 91,2928,3737,3062,3879,4664,5386,3170,4075,2669,5387,3502,1202,1403, # 3136
-3880,2969,2536,1517,2510,4665,3503,2511,5388,4666,5389,2701,1886,1495,1731,4076, # 3152
-2370,4667,5390,2030,5391,5392,4077,2702,1216, 237,2589,4318,2324,4078,3881,4668, # 3168
-4669,2703,3615,3504, 445,4670,5393,5394,5395,5396,2771, 61,4079,3738,1823,4080, # 3184
-5397, 687,2046, 935, 925, 405,2670, 703,1096,1860,2734,4671,4081,1877,1367,2704, # 3200
-3389, 918,2106,1782,2483, 334,3320,1611,1093,4672, 564,3171,3505,3739,3390, 945, # 3216
-2641,2058,4673,5398,1926, 872,4319,5399,3506,2705,3112, 349,4320,3740,4082,4674, # 3232
-3882,4321,3741,2156,4083,4675,4676,4322,4677,2408,2047, 782,4084, 400, 251,4323, # 3248
-1624,5400,5401, 277,3742, 299,1265, 476,1191,3883,2122,4324,4325,1109, 205,5402, # 3264
-2590,1000,2157,3616,1861,5403,5404,5405,4678,5406,4679,2573, 107,2484,2158,4085, # 3280
-3507,3172,5407,1533, 541,1301, 158, 753,4326,2886,3617,5408,1696, 370,1088,4327, # 3296
-4680,3618, 579, 327, 440, 162,2244, 269,1938,1374,3508, 968,3063, 56,1396,3113, # 3312
-2107,3321,3391,5409,1927,2159,4681,3016,5410,3619,5411,5412,3743,4682,2485,5413, # 3328
-2804,5414,1650,4683,5415,2613,5416,5417,4086,2671,3392,1149,3393,4087,3884,4088, # 3344
-5418,1076, 49,5419, 951,3242,3322,3323, 450,2850, 920,5420,1812,2805,2371,4328, # 3360
-1909,1138,2372,3885,3509,5421,3243,4684,1910,1147,1518,2428,4685,3886,5422,4686, # 3376
-2393,2614, 260,1796,3244,5423,5424,3887,3324, 708,5425,3620,1704,5426,3621,1351, # 3392
-1618,3394,3017,1887, 944,4329,3395,4330,3064,3396,4331,5427,3744, 422, 413,1714, # 3408
-3325, 500,2059,2350,4332,2486,5428,1344,1911, 954,5429,1668,5430,5431,4089,2409, # 3424
-4333,3622,3888,4334,5432,2307,1318,2512,3114, 133,3115,2887,4687, 629, 31,2851, # 3440
-2706,3889,4688, 850, 949,4689,4090,2970,1732,2089,4335,1496,1853,5433,4091, 620, # 3456
-3245, 981,1242,3745,3397,1619,3746,1643,3326,2140,2457,1971,1719,3510,2169,5434, # 3472
-3246,5435,5436,3398,1829,5437,1277,4690,1565,2048,5438,1636,3623,3116,5439, 869, # 3488
-2852, 655,3890,3891,3117,4092,3018,3892,1310,3624,4691,5440,5441,5442,1733, 558, # 3504
-4692,3747, 335,1549,3065,1756,4336,3748,1946,3511,1830,1291,1192, 470,2735,2108, # 3520
-2806, 913,1054,4093,5443,1027,5444,3066,4094,4693, 982,2672,3399,3173,3512,3247, # 3536
-3248,1947,2807,5445, 571,4694,5446,1831,5447,3625,2591,1523,2429,5448,2090, 984, # 3552
-4695,3749,1960,5449,3750, 852, 923,2808,3513,3751, 969,1519, 999,2049,2325,1705, # 3568
-5450,3118, 615,1662, 151, 597,4095,2410,2326,1049, 275,4696,3752,4337, 568,3753, # 3584
-3626,2487,4338,3754,5451,2430,2275, 409,3249,5452,1566,2888,3514,1002, 769,2853, # 3600
- 194,2091,3174,3755,2226,3327,4339, 628,1505,5453,5454,1763,2180,3019,4096, 521, # 3616
-1161,2592,1788,2206,2411,4697,4097,1625,4340,4341, 412, 42,3119, 464,5455,2642, # 3632
-4698,3400,1760,1571,2889,3515,2537,1219,2207,3893,2643,2141,2373,4699,4700,3328, # 3648
-1651,3401,3627,5456,5457,3628,2488,3516,5458,3756,5459,5460,2276,2092, 460,5461, # 3664
-4701,5462,3020, 962, 588,3629, 289,3250,2644,1116, 52,5463,3067,1797,5464,5465, # 3680
-5466,1467,5467,1598,1143,3757,4342,1985,1734,1067,4702,1280,3402, 465,4703,1572, # 3696
- 510,5468,1928,2245,1813,1644,3630,5469,4704,3758,5470,5471,2673,1573,1534,5472, # 3712
-5473, 536,1808,1761,3517,3894,3175,2645,5474,5475,5476,4705,3518,2929,1912,2809, # 3728
-5477,3329,1122, 377,3251,5478, 360,5479,5480,4343,1529, 551,5481,2060,3759,1769, # 3744
-2431,5482,2930,4344,3330,3120,2327,2109,2031,4706,1404, 136,1468,1479, 672,1171, # 3760
-3252,2308, 271,3176,5483,2772,5484,2050, 678,2736, 865,1948,4707,5485,2014,4098, # 3776
-2971,5486,2737,2227,1397,3068,3760,4708,4709,1735,2931,3403,3631,5487,3895, 509, # 3792
-2854,2458,2890,3896,5488,5489,3177,3178,4710,4345,2538,4711,2309,1166,1010, 552, # 3808
- 681,1888,5490,5491,2972,2973,4099,1287,1596,1862,3179, 358, 453, 736, 175, 478, # 3824
-1117, 905,1167,1097,5492,1854,1530,5493,1706,5494,2181,3519,2292,3761,3520,3632, # 3840
-4346,2093,4347,5495,3404,1193,2489,4348,1458,2193,2208,1863,1889,1421,3331,2932, # 3856
-3069,2182,3521, 595,2123,5496,4100,5497,5498,4349,1707,2646, 223,3762,1359, 751, # 3872
-3121, 183,3522,5499,2810,3021, 419,2374, 633, 704,3897,2394, 241,5500,5501,5502, # 3888
- 838,3022,3763,2277,2773,2459,3898,1939,2051,4101,1309,3122,2246,1181,5503,1136, # 3904
-2209,3899,2375,1446,4350,2310,4712,5504,5505,4351,1055,2615, 484,3764,5506,4102, # 3920
- 625,4352,2278,3405,1499,4353,4103,5507,4104,4354,3253,2279,2280,3523,5508,5509, # 3936
-2774, 808,2616,3765,3406,4105,4355,3123,2539, 526,3407,3900,4356, 955,5510,1620, # 3952
-4357,2647,2432,5511,1429,3766,1669,1832, 994, 928,5512,3633,1260,5513,5514,5515, # 3968
-1949,2293, 741,2933,1626,4358,2738,2460, 867,1184, 362,3408,1392,5516,5517,4106, # 3984
-4359,1770,1736,3254,2934,4713,4714,1929,2707,1459,1158,5518,3070,3409,2891,1292, # 4000
-1930,2513,2855,3767,1986,1187,2072,2015,2617,4360,5519,2574,2514,2170,3768,2490, # 4016
-3332,5520,3769,4715,5521,5522, 666,1003,3023,1022,3634,4361,5523,4716,1814,2257, # 4032
- 574,3901,1603, 295,1535, 705,3902,4362, 283, 858, 417,5524,5525,3255,4717,4718, # 4048
-3071,1220,1890,1046,2281,2461,4107,1393,1599, 689,2575, 388,4363,5526,2491, 802, # 4064
-5527,2811,3903,2061,1405,2258,5528,4719,3904,2110,1052,1345,3256,1585,5529, 809, # 4080
-5530,5531,5532, 575,2739,3524, 956,1552,1469,1144,2328,5533,2329,1560,2462,3635, # 4096
-3257,4108, 616,2210,4364,3180,2183,2294,5534,1833,5535,3525,4720,5536,1319,3770, # 4112
-3771,1211,3636,1023,3258,1293,2812,5537,5538,5539,3905, 607,2311,3906, 762,2892, # 4128
-1439,4365,1360,4721,1485,3072,5540,4722,1038,4366,1450,2062,2648,4367,1379,4723, # 4144
-2593,5541,5542,4368,1352,1414,2330,2935,1172,5543,5544,3907,3908,4724,1798,1451, # 4160
-5545,5546,5547,5548,2936,4109,4110,2492,2351, 411,4111,4112,3637,3333,3124,4725, # 4176
-1561,2674,1452,4113,1375,5549,5550, 47,2974, 316,5551,1406,1591,2937,3181,5552, # 4192
-1025,2142,3125,3182, 354,2740, 884,2228,4369,2412, 508,3772, 726,3638, 996,2433, # 4208
-3639, 729,5553, 392,2194,1453,4114,4726,3773,5554,5555,2463,3640,2618,1675,2813, # 4224
- 919,2352,2975,2353,1270,4727,4115, 73,5556,5557, 647,5558,3259,2856,2259,1550, # 4240
-1346,3024,5559,1332, 883,3526,5560,5561,5562,5563,3334,2775,5564,1212, 831,1347, # 4256
-4370,4728,2331,3909,1864,3073, 720,3910,4729,4730,3911,5565,4371,5566,5567,4731, # 4272
-5568,5569,1799,4732,3774,2619,4733,3641,1645,2376,4734,5570,2938, 669,2211,2675, # 4288
-2434,5571,2893,5572,5573,1028,3260,5574,4372,2413,5575,2260,1353,5576,5577,4735, # 4304
-3183, 518,5578,4116,5579,4373,1961,5580,2143,4374,5581,5582,3025,2354,2355,3912, # 4320
- 516,1834,1454,4117,2708,4375,4736,2229,2620,1972,1129,3642,5583,2776,5584,2976, # 4336
-1422, 577,1470,3026,1524,3410,5585,5586, 432,4376,3074,3527,5587,2594,1455,2515, # 4352
-2230,1973,1175,5588,1020,2741,4118,3528,4737,5589,2742,5590,1743,1361,3075,3529, # 4368
-2649,4119,4377,4738,2295, 895, 924,4378,2171, 331,2247,3076, 166,1627,3077,1098, # 4384
-5591,1232,2894,2231,3411,4739, 657, 403,1196,2377, 542,3775,3412,1600,4379,3530, # 4400
-5592,4740,2777,3261, 576, 530,1362,4741,4742,2540,2676,3776,4120,5593, 842,3913, # 4416
-5594,2814,2032,1014,4121, 213,2709,3413, 665, 621,4380,5595,3777,2939,2435,5596, # 4432
-2436,3335,3643,3414,4743,4381,2541,4382,4744,3644,1682,4383,3531,1380,5597, 724, # 4448
-2282, 600,1670,5598,1337,1233,4745,3126,2248,5599,1621,4746,5600, 651,4384,5601, # 4464
-1612,4385,2621,5602,2857,5603,2743,2312,3078,5604, 716,2464,3079, 174,1255,2710, # 4480
-4122,3645, 548,1320,1398, 728,4123,1574,5605,1891,1197,3080,4124,5606,3081,3082, # 4496
-3778,3646,3779, 747,5607, 635,4386,4747,5608,5609,5610,4387,5611,5612,4748,5613, # 4512
-3415,4749,2437, 451,5614,3780,2542,2073,4388,2744,4389,4125,5615,1764,4750,5616, # 4528
-4390, 350,4751,2283,2395,2493,5617,4391,4126,2249,1434,4127, 488,4752, 458,4392, # 4544
-4128,3781, 771,1330,2396,3914,2576,3184,2160,2414,1553,2677,3185,4393,5618,2494, # 4560
-2895,2622,1720,2711,4394,3416,4753,5619,2543,4395,5620,3262,4396,2778,5621,2016, # 4576
-2745,5622,1155,1017,3782,3915,5623,3336,2313, 201,1865,4397,1430,5624,4129,5625, # 4592
-5626,5627,5628,5629,4398,1604,5630, 414,1866, 371,2595,4754,4755,3532,2017,3127, # 4608
-4756,1708, 960,4399, 887, 389,2172,1536,1663,1721,5631,2232,4130,2356,2940,1580, # 4624
-5632,5633,1744,4757,2544,4758,4759,5634,4760,5635,2074,5636,4761,3647,3417,2896, # 4640
-4400,5637,4401,2650,3418,2815, 673,2712,2465, 709,3533,4131,3648,4402,5638,1148, # 4656
- 502, 634,5639,5640,1204,4762,3649,1575,4763,2623,3783,5641,3784,3128, 948,3263, # 4672
- 121,1745,3916,1110,5642,4403,3083,2516,3027,4132,3785,1151,1771,3917,1488,4133, # 4688
-1987,5643,2438,3534,5644,5645,2094,5646,4404,3918,1213,1407,2816, 531,2746,2545, # 4704
-3264,1011,1537,4764,2779,4405,3129,1061,5647,3786,3787,1867,2897,5648,2018, 120, # 4720
-4406,4407,2063,3650,3265,2314,3919,2678,3419,1955,4765,4134,5649,3535,1047,2713, # 4736
-1266,5650,1368,4766,2858, 649,3420,3920,2546,2747,1102,2859,2679,5651,5652,2000, # 4752
-5653,1111,3651,2977,5654,2495,3921,3652,2817,1855,3421,3788,5655,5656,3422,2415, # 4768
-2898,3337,3266,3653,5657,2577,5658,3654,2818,4135,1460, 856,5659,3655,5660,2899, # 4784
-2978,5661,2900,3922,5662,4408, 632,2517, 875,3923,1697,3924,2296,5663,5664,4767, # 4800
-3028,1239, 580,4768,4409,5665, 914, 936,2075,1190,4136,1039,2124,5666,5667,5668, # 4816
-5669,3423,1473,5670,1354,4410,3925,4769,2173,3084,4137, 915,3338,4411,4412,3339, # 4832
-1605,1835,5671,2748, 398,3656,4413,3926,4138, 328,1913,2860,4139,3927,1331,4414, # 4848
-3029, 937,4415,5672,3657,4140,4141,3424,2161,4770,3425, 524, 742, 538,3085,1012, # 4864
-5673,5674,3928,2466,5675, 658,1103, 225,3929,5676,5677,4771,5678,4772,5679,3267, # 4880
-1243,5680,4142, 963,2250,4773,5681,2714,3658,3186,5682,5683,2596,2332,5684,4774, # 4896
-5685,5686,5687,3536, 957,3426,2547,2033,1931,2941,2467, 870,2019,3659,1746,2780, # 4912
-2781,2439,2468,5688,3930,5689,3789,3130,3790,3537,3427,3791,5690,1179,3086,5691, # 4928
-3187,2378,4416,3792,2548,3188,3131,2749,4143,5692,3428,1556,2549,2297, 977,2901, # 4944
-2034,4144,1205,3429,5693,1765,3430,3189,2125,1271, 714,1689,4775,3538,5694,2333, # 4960
-3931, 533,4417,3660,2184, 617,5695,2469,3340,3539,2315,5696,5697,3190,5698,5699, # 4976
-3932,1988, 618, 427,2651,3540,3431,5700,5701,1244,1690,5702,2819,4418,4776,5703, # 4992
-3541,4777,5704,2284,1576, 473,3661,4419,3432, 972,5705,3662,5706,3087,5707,5708, # 5008
-4778,4779,5709,3793,4145,4146,5710, 153,4780, 356,5711,1892,2902,4420,2144, 408, # 5024
- 803,2357,5712,3933,5713,4421,1646,2578,2518,4781,4782,3934,5714,3935,4422,5715, # 5040
-2416,3433, 752,5716,5717,1962,3341,2979,5718, 746,3030,2470,4783,4423,3794, 698, # 5056
-4784,1893,4424,3663,2550,4785,3664,3936,5719,3191,3434,5720,1824,1302,4147,2715, # 5072
-3937,1974,4425,5721,4426,3192, 823,1303,1288,1236,2861,3542,4148,3435, 774,3938, # 5088
-5722,1581,4786,1304,2862,3939,4787,5723,2440,2162,1083,3268,4427,4149,4428, 344, # 5104
-1173, 288,2316, 454,1683,5724,5725,1461,4788,4150,2597,5726,5727,4789, 985, 894, # 5120
-5728,3436,3193,5729,1914,2942,3795,1989,5730,2111,1975,5731,4151,5732,2579,1194, # 5136
- 425,5733,4790,3194,1245,3796,4429,5734,5735,2863,5736, 636,4791,1856,3940, 760, # 5152
-1800,5737,4430,2212,1508,4792,4152,1894,1684,2298,5738,5739,4793,4431,4432,2213, # 5168
- 479,5740,5741, 832,5742,4153,2496,5743,2980,2497,3797, 990,3132, 627,1815,2652, # 5184
-4433,1582,4434,2126,2112,3543,4794,5744, 799,4435,3195,5745,4795,2113,1737,3031, # 5200
-1018, 543, 754,4436,3342,1676,4796,4797,4154,4798,1489,5746,3544,5747,2624,2903, # 5216
-4155,5748,5749,2981,5750,5751,5752,5753,3196,4799,4800,2185,1722,5754,3269,3270, # 5232
-1843,3665,1715, 481, 365,1976,1857,5755,5756,1963,2498,4801,5757,2127,3666,3271, # 5248
- 433,1895,2064,2076,5758, 602,2750,5759,5760,5761,5762,5763,3032,1628,3437,5764, # 5264
-3197,4802,4156,2904,4803,2519,5765,2551,2782,5766,5767,5768,3343,4804,2905,5769, # 5280
-4805,5770,2864,4806,4807,1221,2982,4157,2520,5771,5772,5773,1868,1990,5774,5775, # 5296
-5776,1896,5777,5778,4808,1897,4158, 318,5779,2095,4159,4437,5780,5781, 485,5782, # 5312
- 938,3941, 553,2680, 116,5783,3942,3667,5784,3545,2681,2783,3438,3344,2820,5785, # 5328
-3668,2943,4160,1747,2944,2983,5786,5787, 207,5788,4809,5789,4810,2521,5790,3033, # 5344
- 890,3669,3943,5791,1878,3798,3439,5792,2186,2358,3440,1652,5793,5794,5795, 941, # 5360
-2299, 208,3546,4161,2020, 330,4438,3944,2906,2499,3799,4439,4811,5796,5797,5798, # 5376 #last 512
-#Everything below is of no interest for detection purpose
-2522,1613,4812,5799,3345,3945,2523,5800,4162,5801,1637,4163,2471,4813,3946,5802, # 5392
-2500,3034,3800,5803,5804,2195,4814,5805,2163,5806,5807,5808,5809,5810,5811,5812, # 5408
-5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828, # 5424
-5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844, # 5440
-5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860, # 5456
-5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876, # 5472
-5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892, # 5488
-5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,5906,5907,5908, # 5504
-5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924, # 5520
-5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940, # 5536
-5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952,5953,5954,5955,5956, # 5552
-5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972, # 5568
-5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988, # 5584
-5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004, # 5600
-6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020, # 5616
-6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036, # 5632
-6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052, # 5648
-6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068, # 5664
-6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084, # 5680
-6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100, # 5696
-6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116, # 5712
-6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132, # 5728
-6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148, # 5744
-6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164, # 5760
-6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180, # 5776
-6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196, # 5792
-6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212, # 5808
-6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,3670,6224,6225,6226,6227, # 5824
-6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243, # 5840
-6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259, # 5856
-6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275, # 5872
-6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,4815,6286,6287,6288,6289,6290, # 5888
-6291,6292,4816,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305, # 5904
-6306,6307,6308,6309,6310,6311,4817,4818,6312,6313,6314,6315,6316,6317,6318,4819, # 5920
-6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334, # 5936
-6335,6336,6337,4820,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349, # 5952
-6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365, # 5968
-6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381, # 5984
-6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397, # 6000
-6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,3441,6411,6412, # 6016
-6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,4440,6426,6427, # 6032
-6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443, # 6048
-6444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,4821,6455,6456,6457,6458, # 6064
-6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474, # 6080
-6475,6476,6477,3947,3948,6478,6479,6480,6481,3272,4441,6482,6483,6484,6485,4442, # 6096
-6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,4822,6497,6498,6499,6500, # 6112
-6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516, # 6128
-6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532, # 6144
-6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548, # 6160
-6549,6550,6551,6552,6553,6554,6555,6556,2784,6557,4823,6558,6559,6560,6561,6562, # 6176
-6563,6564,6565,6566,6567,6568,6569,3949,6570,6571,6572,4824,6573,6574,6575,6576, # 6192
-6577,6578,6579,6580,6581,6582,6583,4825,6584,6585,6586,3950,2785,6587,6588,6589, # 6208
-6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6602,6603,6604,6605, # 6224
-6606,6607,6608,6609,6610,6611,6612,4826,6613,6614,6615,4827,6616,6617,6618,6619, # 6240
-6620,6621,6622,6623,6624,6625,4164,6626,6627,6628,6629,6630,6631,6632,6633,6634, # 6256
-3547,6635,4828,6636,6637,6638,6639,6640,6641,6642,3951,2984,6643,6644,6645,6646, # 6272
-6647,6648,6649,4165,6650,4829,6651,6652,4830,6653,6654,6655,6656,6657,6658,6659, # 6288
-6660,6661,6662,4831,6663,6664,6665,6666,6667,6668,6669,6670,6671,4166,6672,4832, # 6304
-3952,6673,6674,6675,6676,4833,6677,6678,6679,4167,6680,6681,6682,3198,6683,6684, # 6320
-6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,4834,6698,6699, # 6336
-6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715, # 6352
-6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731, # 6368
-6732,6733,6734,4443,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,4444, # 6384
-6746,6747,6748,6749,6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761, # 6400
-6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777, # 6416
-6778,6779,6780,6781,4168,6782,6783,3442,6784,6785,6786,6787,6788,6789,6790,6791, # 6432
-4169,6792,6793,6794,6795,6796,6797,6798,6799,6800,6801,6802,6803,6804,6805,6806, # 6448
-6807,6808,6809,6810,6811,4835,6812,6813,6814,4445,6815,6816,4446,6817,6818,6819, # 6464
-6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835, # 6480
-3548,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,4836,6847,6848,6849, # 6496
-6850,6851,6852,6853,6854,3953,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864, # 6512
-6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,3199,6878,6879, # 6528
-6880,6881,6882,4447,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894, # 6544
-6895,6896,6897,6898,6899,6900,6901,6902,6903,6904,4170,6905,6906,6907,6908,6909, # 6560
-6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925, # 6576
-6926,6927,4837,6928,6929,6930,6931,6932,6933,6934,6935,6936,3346,6937,6938,4838, # 6592
-6939,6940,6941,4448,6942,6943,6944,6945,6946,4449,6947,6948,6949,6950,6951,6952, # 6608
-6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968, # 6624
-6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984, # 6640
-6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,3671,6995,6996,6997,6998,4839, # 6656
-6999,7000,7001,7002,3549,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013, # 6672
-7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029, # 6688
-7030,4840,7031,7032,7033,7034,7035,7036,7037,7038,4841,7039,7040,7041,7042,7043, # 6704
-7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059, # 6720
-7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,2985,7071,7072,7073,7074, # 6736
-7075,7076,7077,7078,7079,7080,4842,7081,7082,7083,7084,7085,7086,7087,7088,7089, # 6752
-7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105, # 6768
-7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,4450,7119,7120, # 6784
-7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136, # 6800
-7137,7138,7139,7140,7141,7142,7143,4843,7144,7145,7146,7147,7148,7149,7150,7151, # 6816
-7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167, # 6832
-7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183, # 6848
-7184,7185,7186,7187,7188,4171,4172,7189,7190,7191,7192,7193,7194,7195,7196,7197, # 6864
-7198,7199,7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213, # 6880
-7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229, # 6896
-7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245, # 6912
-7246,7247,7248,7249,7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261, # 6928
-7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277, # 6944
-7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293, # 6960
-7294,7295,7296,4844,7297,7298,7299,7300,7301,7302,7303,7304,7305,7306,7307,7308, # 6976
-7309,7310,7311,7312,7313,7314,7315,7316,4451,7317,7318,7319,7320,7321,7322,7323, # 6992
-7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339, # 7008
-7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,4173,7354, # 7024
-7355,4845,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369, # 7040
-7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385, # 7056
-7386,7387,7388,4846,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400, # 7072
-7401,7402,7403,7404,7405,3672,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415, # 7088
-7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431, # 7104
-7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447, # 7120
-7448,7449,7450,7451,7452,7453,4452,7454,3200,7455,7456,7457,7458,7459,7460,7461, # 7136
-7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,4847,7475,7476, # 7152
-7477,3133,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491, # 7168
-7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,3347,7503,7504,7505,7506, # 7184
-7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,4848, # 7200
-7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537, # 7216
-7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,3801,4849,7550,7551, # 7232
-7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567, # 7248
-7568,7569,3035,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582, # 7264
-7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598, # 7280
-7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614, # 7296
-7615,7616,4850,7617,7618,3802,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628, # 7312
-7629,7630,7631,7632,4851,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643, # 7328
-7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659, # 7344
-7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,4453,7671,7672,7673,7674, # 7360
-7675,7676,7677,7678,7679,7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690, # 7376
-7691,7692,7693,7694,7695,7696,7697,3443,7698,7699,7700,7701,7702,4454,7703,7704, # 7392
-7705,7706,7707,7708,7709,7710,7711,7712,7713,2472,7714,7715,7716,7717,7718,7719, # 7408
-7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7730,7731,3954,7732,7733,7734, # 7424
-7735,7736,7737,7738,7739,7740,7741,7742,7743,7744,7745,7746,7747,7748,7749,7750, # 7440
-3134,7751,7752,4852,7753,7754,7755,4853,7756,7757,7758,7759,7760,4174,7761,7762, # 7456
-7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,7777,7778, # 7472
-7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,7792,7793,7794, # 7488
-7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,4854,7806,7807,7808,7809, # 7504
-7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825, # 7520
-4855,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840, # 7536
-7841,7842,7843,7844,7845,7846,7847,3955,7848,7849,7850,7851,7852,7853,7854,7855, # 7552
-7856,7857,7858,7859,7860,3444,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870, # 7568
-7871,7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886, # 7584
-7887,7888,7889,7890,7891,4175,7892,7893,7894,7895,7896,4856,4857,7897,7898,7899, # 7600
-7900,2598,7901,7902,7903,7904,7905,7906,7907,7908,4455,7909,7910,7911,7912,7913, # 7616
-7914,3201,7915,7916,7917,7918,7919,7920,7921,4858,7922,7923,7924,7925,7926,7927, # 7632
-7928,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943, # 7648
-7944,7945,7946,7947,7948,7949,7950,7951,7952,7953,7954,7955,7956,7957,7958,7959, # 7664
-7960,7961,7962,7963,7964,7965,7966,7967,7968,7969,7970,7971,7972,7973,7974,7975, # 7680
-7976,7977,7978,7979,7980,7981,4859,7982,7983,7984,7985,7986,7987,7988,7989,7990, # 7696
-7991,7992,7993,7994,7995,7996,4860,7997,7998,7999,8000,8001,8002,8003,8004,8005, # 7712
-8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,4176,8017,8018,8019,8020, # 7728
-8021,8022,8023,4861,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035, # 7744
-8036,4862,4456,8037,8038,8039,8040,4863,8041,8042,8043,8044,8045,8046,8047,8048, # 7760
-8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,8064, # 7776
-8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080, # 7792
-8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096, # 7808
-8097,8098,8099,4864,4177,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110, # 7824
-8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,4178,8121,8122,8123,8124,8125, # 7840
-8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141, # 7856
-8142,8143,8144,8145,4865,4866,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155, # 7872
-8156,8157,8158,8159,8160,8161,8162,8163,8164,8165,4179,8166,8167,8168,8169,8170, # 7888
-8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181,4457,8182,8183,8184,8185, # 7904
-8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201, # 7920
-8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217, # 7936
-8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233, # 7952
-8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249, # 7968
-8250,8251,8252,8253,8254,8255,8256,3445,8257,8258,8259,8260,8261,8262,4458,8263, # 7984
-8264,8265,8266,8267,8268,8269,8270,8271,8272,4459,8273,8274,8275,8276,3550,8277, # 8000
-8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,4460,8290,8291,8292, # 8016
-8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,8304,8305,8306,8307,4867, # 8032
-8308,8309,8310,8311,8312,3551,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322, # 8048
-8323,8324,8325,8326,4868,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337, # 8064
-8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353, # 8080
-8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,4869,4461,8364,8365,8366,8367, # 8096
-8368,8369,8370,4870,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382, # 8112
-8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398, # 8128
-8399,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,4871,8411,8412,8413, # 8144
-8414,8415,8416,8417,8418,8419,8420,8421,8422,4462,8423,8424,8425,8426,8427,8428, # 8160
-8429,8430,8431,8432,8433,2986,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443, # 8176
-8444,8445,8446,8447,8448,8449,8450,8451,8452,8453,8454,8455,8456,8457,8458,8459, # 8192
-8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475, # 8208
-8476,8477,8478,4180,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490, # 8224
-8491,8492,8493,8494,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506, # 8240
-8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522, # 8256
-8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538, # 8272
-8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554, # 8288
-8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,4872,8565,8566,8567,8568,8569, # 8304
-8570,8571,8572,8573,4873,8574,8575,8576,8577,8578,8579,8580,8581,8582,8583,8584, # 8320
-8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,8600, # 8336
-8601,8602,8603,8604,8605,3803,8606,8607,8608,8609,8610,8611,8612,8613,4874,3804, # 8352
-8614,8615,8616,8617,8618,8619,8620,8621,3956,8622,8623,8624,8625,8626,8627,8628, # 8368
-8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,2865,8639,8640,8641,8642,8643, # 8384
-8644,8645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,4463,8657,8658, # 8400
-8659,4875,4876,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672, # 8416
-8673,8674,8675,8676,8677,8678,8679,8680,8681,4464,8682,8683,8684,8685,8686,8687, # 8432
-8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703, # 8448
-8704,8705,8706,8707,8708,8709,2261,8710,8711,8712,8713,8714,8715,8716,8717,8718, # 8464
-8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,4181, # 8480
-8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749, # 8496
-8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,4877,8764, # 8512
-8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780, # 8528
-8781,8782,8783,8784,8785,8786,8787,8788,4878,8789,4879,8790,8791,8792,4880,8793, # 8544
-8794,8795,8796,8797,8798,8799,8800,8801,4881,8802,8803,8804,8805,8806,8807,8808, # 8560
-8809,8810,8811,8812,8813,8814,8815,3957,8816,8817,8818,8819,8820,8821,8822,8823, # 8576
-8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839, # 8592
-8840,8841,8842,8843,8844,8845,8846,8847,4882,8848,8849,8850,8851,8852,8853,8854, # 8608
-8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870, # 8624
-8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,3202,8885, # 8640
-8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,8900,8901, # 8656
-8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917, # 8672
-8918,8919,8920,8921,8922,8923,8924,4465,8925,8926,8927,8928,8929,8930,8931,8932, # 8688
-4883,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,2214,8944,8945,8946, # 8704
-8947,8948,8949,8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962, # 8720
-8963,8964,8965,4884,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977, # 8736
-8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,4885, # 8752
-8993,8994,8995,8996,8997,8998,8999,9000,9001,9002,9003,9004,9005,9006,9007,9008, # 8768
-9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,4182,9022,9023, # 8784
-9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039, # 8800
-9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,9050,9051,9052,9053,9054,9055, # 8816
-9056,9057,9058,9059,9060,9061,9062,9063,4886,9064,9065,9066,9067,9068,9069,4887, # 8832
-9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085, # 8848
-9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9101, # 8864
-9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117, # 8880
-9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133, # 8896
-9134,9135,9136,9137,9138,9139,9140,9141,3958,9142,9143,9144,9145,9146,9147,9148, # 8912
-9149,9150,9151,4888,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163, # 8928
-9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,4889,9176,9177,9178, # 8944
-9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194, # 8960
-9195,9196,9197,9198,9199,9200,9201,9202,9203,4890,9204,9205,9206,9207,9208,9209, # 8976
-9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,4466,9223,9224, # 8992
-9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240, # 9008
-9241,9242,9243,9244,9245,4891,9246,9247,9248,9249,9250,9251,9252,9253,9254,9255, # 9024
-9256,9257,4892,9258,9259,9260,9261,4893,4894,9262,9263,9264,9265,9266,9267,9268, # 9040
-9269,9270,9271,9272,9273,4467,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283, # 9056
-9284,9285,3673,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298, # 9072
-9299,9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314, # 9088
-9315,9316,9317,9318,9319,9320,9321,9322,4895,9323,9324,9325,9326,9327,9328,9329, # 9104
-9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345, # 9120
-9346,9347,4468,9348,9349,9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360, # 9136
-9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,4896,9374,4469, # 9152
-9375,9376,9377,9378,9379,4897,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389, # 9168
-9390,9391,9392,9393,9394,9395,9396,9397,9398,9399,9400,9401,9402,9403,9404,9405, # 9184
-9406,4470,9407,2751,9408,9409,3674,3552,9410,9411,9412,9413,9414,9415,9416,9417, # 9200
-9418,9419,9420,9421,4898,9422,9423,9424,9425,9426,9427,9428,9429,3959,9430,9431, # 9216
-9432,9433,9434,9435,9436,4471,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446, # 9232
-9447,9448,9449,9450,3348,9451,9452,9453,9454,9455,9456,9457,9458,9459,9460,9461, # 9248
-9462,9463,9464,9465,9466,9467,9468,9469,9470,9471,9472,4899,9473,9474,9475,9476, # 9264
-9477,4900,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,3349,9489,9490, # 9280
-9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506, # 9296
-9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,4901,9521, # 9312
-9522,9523,9524,9525,9526,4902,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536, # 9328
-9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,9548,9549,9550,9551,9552, # 9344
-9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568, # 9360
-9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584, # 9376
-3805,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9596,9597,9598,9599, # 9392
-9600,9601,9602,4903,9603,9604,9605,9606,9607,4904,9608,9609,9610,9611,9612,9613, # 9408
-9614,4905,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628, # 9424
-9629,9630,9631,9632,4906,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9643, # 9440
-4907,9644,9645,9646,9647,9648,9649,9650,9651,9652,9653,9654,9655,9656,9657,9658, # 9456
-9659,9660,9661,9662,9663,9664,9665,9666,9667,9668,9669,9670,9671,9672,4183,9673, # 9472
-9674,9675,9676,9677,4908,9678,9679,9680,9681,4909,9682,9683,9684,9685,9686,9687, # 9488
-9688,9689,9690,4910,9691,9692,9693,3675,9694,9695,9696,2945,9697,9698,9699,9700, # 9504
-9701,9702,9703,9704,9705,4911,9706,9707,9708,9709,9710,9711,9712,9713,9714,9715, # 9520
-9716,9717,9718,9719,9720,9721,9722,9723,9724,9725,9726,9727,9728,9729,9730,9731, # 9536
-9732,9733,9734,9735,4912,9736,9737,9738,9739,9740,4913,9741,9742,9743,9744,9745, # 9552
-9746,9747,9748,9749,9750,9751,9752,9753,9754,9755,9756,9757,9758,4914,9759,9760, # 9568
-9761,9762,9763,9764,9765,9766,9767,9768,9769,9770,9771,9772,9773,9774,9775,9776, # 9584
-9777,9778,9779,9780,9781,9782,4915,9783,9784,9785,9786,9787,9788,9789,9790,9791, # 9600
-9792,9793,4916,9794,9795,9796,9797,9798,9799,9800,9801,9802,9803,9804,9805,9806, # 9616
-9807,9808,9809,9810,9811,9812,9813,9814,9815,9816,9817,9818,9819,9820,9821,9822, # 9632
-9823,9824,9825,9826,9827,9828,9829,9830,9831,9832,9833,9834,9835,9836,9837,9838, # 9648
-9839,9840,9841,9842,9843,9844,9845,9846,9847,9848,9849,9850,9851,9852,9853,9854, # 9664
-9855,9856,9857,9858,9859,9860,9861,9862,9863,9864,9865,9866,9867,9868,4917,9869, # 9680
-9870,9871,9872,9873,9874,9875,9876,9877,9878,9879,9880,9881,9882,9883,9884,9885, # 9696
-9886,9887,9888,9889,9890,9891,9892,4472,9893,9894,9895,9896,9897,3806,9898,9899, # 9712
-9900,9901,9902,9903,9904,9905,9906,9907,9908,9909,9910,9911,9912,9913,9914,4918, # 9728
-9915,9916,9917,4919,9918,9919,9920,9921,4184,9922,9923,9924,9925,9926,9927,9928, # 9744
-9929,9930,9931,9932,9933,9934,9935,9936,9937,9938,9939,9940,9941,9942,9943,9944, # 9760
-9945,9946,4920,9947,9948,9949,9950,9951,9952,9953,9954,9955,4185,9956,9957,9958, # 9776
-9959,9960,9961,9962,9963,9964,9965,4921,9966,9967,9968,4473,9969,9970,9971,9972, # 9792
-9973,9974,9975,9976,9977,4474,9978,9979,9980,9981,9982,9983,9984,9985,9986,9987, # 9808
-9988,9989,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999,10000,10001,10002,10003, # 9824
-10004,10005,10006,10007,10008,10009,10010,10011,10012,10013,10014,10015,10016,10017,10018,10019, # 9840
-10020,10021,4922,10022,4923,10023,10024,10025,10026,10027,10028,10029,10030,10031,10032,10033, # 9856
-10034,10035,10036,10037,10038,10039,10040,10041,10042,10043,10044,10045,10046,10047,10048,4924, # 9872
-10049,10050,10051,10052,10053,10054,10055,10056,10057,10058,10059,10060,10061,10062,10063,10064, # 9888
-10065,10066,10067,10068,10069,10070,10071,10072,10073,10074,10075,10076,10077,10078,10079,10080, # 9904
-10081,10082,10083,10084,10085,10086,10087,4475,10088,10089,10090,10091,10092,10093,10094,10095, # 9920
-10096,10097,4476,10098,10099,10100,10101,10102,10103,10104,10105,10106,10107,10108,10109,10110, # 9936
-10111,2174,10112,10113,10114,10115,10116,10117,10118,10119,10120,10121,10122,10123,10124,10125, # 9952
-10126,10127,10128,10129,10130,10131,10132,10133,10134,10135,10136,10137,10138,10139,10140,3807, # 9968
-4186,4925,10141,10142,10143,10144,10145,10146,10147,4477,4187,10148,10149,10150,10151,10152, # 9984
-10153,4188,10154,10155,10156,10157,10158,10159,10160,10161,4926,10162,10163,10164,10165,10166, #10000
-10167,10168,10169,10170,10171,10172,10173,10174,10175,10176,10177,10178,10179,10180,10181,10182, #10016
-10183,10184,10185,10186,10187,10188,10189,10190,10191,10192,3203,10193,10194,10195,10196,10197, #10032
-10198,10199,10200,4478,10201,10202,10203,10204,4479,10205,10206,10207,10208,10209,10210,10211, #10048
-10212,10213,10214,10215,10216,10217,10218,10219,10220,10221,10222,10223,10224,10225,10226,10227, #10064
-10228,10229,10230,10231,10232,10233,10234,4927,10235,10236,10237,10238,10239,10240,10241,10242, #10080
-10243,10244,10245,10246,10247,10248,10249,10250,10251,10252,10253,10254,10255,10256,10257,10258, #10096
-10259,10260,10261,10262,10263,10264,10265,10266,10267,10268,10269,10270,10271,10272,10273,4480, #10112
-4928,4929,10274,10275,10276,10277,10278,10279,10280,10281,10282,10283,10284,10285,10286,10287, #10128
-10288,10289,10290,10291,10292,10293,10294,10295,10296,10297,10298,10299,10300,10301,10302,10303, #10144
-10304,10305,10306,10307,10308,10309,10310,10311,10312,10313,10314,10315,10316,10317,10318,10319, #10160
-10320,10321,10322,10323,10324,10325,10326,10327,10328,10329,10330,10331,10332,10333,10334,4930, #10176
-10335,10336,10337,10338,10339,10340,10341,10342,4931,10343,10344,10345,10346,10347,10348,10349, #10192
-10350,10351,10352,10353,10354,10355,3088,10356,2786,10357,10358,10359,10360,4189,10361,10362, #10208
-10363,10364,10365,10366,10367,10368,10369,10370,10371,10372,10373,10374,10375,4932,10376,10377, #10224
-10378,10379,10380,10381,10382,10383,10384,10385,10386,10387,10388,10389,10390,10391,10392,4933, #10240
-10393,10394,10395,4934,10396,10397,10398,10399,10400,10401,10402,10403,10404,10405,10406,10407, #10256
-10408,10409,10410,10411,10412,3446,10413,10414,10415,10416,10417,10418,10419,10420,10421,10422, #10272
-10423,4935,10424,10425,10426,10427,10428,10429,10430,4936,10431,10432,10433,10434,10435,10436, #10288
-10437,10438,10439,10440,10441,10442,10443,4937,10444,10445,10446,10447,4481,10448,10449,10450, #10304
-10451,10452,10453,10454,10455,10456,10457,10458,10459,10460,10461,10462,10463,10464,10465,10466, #10320
-10467,10468,10469,10470,10471,10472,10473,10474,10475,10476,10477,10478,10479,10480,10481,10482, #10336
-10483,10484,10485,10486,10487,10488,10489,10490,10491,10492,10493,10494,10495,10496,10497,10498, #10352
-10499,10500,10501,10502,10503,10504,10505,4938,10506,10507,10508,10509,10510,2552,10511,10512, #10368
-10513,10514,10515,10516,3447,10517,10518,10519,10520,10521,10522,10523,10524,10525,10526,10527, #10384
-10528,10529,10530,10531,10532,10533,10534,10535,10536,10537,10538,10539,10540,10541,10542,10543, #10400
-4482,10544,4939,10545,10546,10547,10548,10549,10550,10551,10552,10553,10554,10555,10556,10557, #10416
-10558,10559,10560,10561,10562,10563,10564,10565,10566,10567,3676,4483,10568,10569,10570,10571, #10432
-10572,3448,10573,10574,10575,10576,10577,10578,10579,10580,10581,10582,10583,10584,10585,10586, #10448
-10587,10588,10589,10590,10591,10592,10593,10594,10595,10596,10597,10598,10599,10600,10601,10602, #10464
-10603,10604,10605,10606,10607,10608,10609,10610,10611,10612,10613,10614,10615,10616,10617,10618, #10480
-10619,10620,10621,10622,10623,10624,10625,10626,10627,4484,10628,10629,10630,10631,10632,4940, #10496
-10633,10634,10635,10636,10637,10638,10639,10640,10641,10642,10643,10644,10645,10646,10647,10648, #10512
-10649,10650,10651,10652,10653,10654,10655,10656,4941,10657,10658,10659,2599,10660,10661,10662, #10528
-10663,10664,10665,10666,3089,10667,10668,10669,10670,10671,10672,10673,10674,10675,10676,10677, #10544
-10678,10679,10680,4942,10681,10682,10683,10684,10685,10686,10687,10688,10689,10690,10691,10692, #10560
-10693,10694,10695,10696,10697,4485,10698,10699,10700,10701,10702,10703,10704,4943,10705,3677, #10576
-10706,10707,10708,10709,10710,10711,10712,4944,10713,10714,10715,10716,10717,10718,10719,10720, #10592
-10721,10722,10723,10724,10725,10726,10727,10728,4945,10729,10730,10731,10732,10733,10734,10735, #10608
-10736,10737,10738,10739,10740,10741,10742,10743,10744,10745,10746,10747,10748,10749,10750,10751, #10624
-10752,10753,10754,10755,10756,10757,10758,10759,10760,10761,4946,10762,10763,10764,10765,10766, #10640
-10767,4947,4948,10768,10769,10770,10771,10772,10773,10774,10775,10776,10777,10778,10779,10780, #10656
-10781,10782,10783,10784,10785,10786,10787,10788,10789,10790,10791,10792,10793,10794,10795,10796, #10672
-10797,10798,10799,10800,10801,10802,10803,10804,10805,10806,10807,10808,10809,10810,10811,10812, #10688
-10813,10814,10815,10816,10817,10818,10819,10820,10821,10822,10823,10824,10825,10826,10827,10828, #10704
-10829,10830,10831,10832,10833,10834,10835,10836,10837,10838,10839,10840,10841,10842,10843,10844, #10720
-10845,10846,10847,10848,10849,10850,10851,10852,10853,10854,10855,10856,10857,10858,10859,10860, #10736
-10861,10862,10863,10864,10865,10866,10867,10868,10869,10870,10871,10872,10873,10874,10875,10876, #10752
-10877,10878,4486,10879,10880,10881,10882,10883,10884,10885,4949,10886,10887,10888,10889,10890, #10768
-10891,10892,10893,10894,10895,10896,10897,10898,10899,10900,10901,10902,10903,10904,10905,10906, #10784
-10907,10908,10909,10910,10911,10912,10913,10914,10915,10916,10917,10918,10919,4487,10920,10921, #10800
-10922,10923,10924,10925,10926,10927,10928,10929,10930,10931,10932,4950,10933,10934,10935,10936, #10816
-10937,10938,10939,10940,10941,10942,10943,10944,10945,10946,10947,10948,10949,4488,10950,10951, #10832
-10952,10953,10954,10955,10956,10957,10958,10959,4190,10960,10961,10962,10963,10964,10965,10966, #10848
-10967,10968,10969,10970,10971,10972,10973,10974,10975,10976,10977,10978,10979,10980,10981,10982, #10864
-10983,10984,10985,10986,10987,10988,10989,10990,10991,10992,10993,10994,10995,10996,10997,10998, #10880
-10999,11000,11001,11002,11003,11004,11005,11006,3960,11007,11008,11009,11010,11011,11012,11013, #10896
-11014,11015,11016,11017,11018,11019,11020,11021,11022,11023,11024,11025,11026,11027,11028,11029, #10912
-11030,11031,11032,4951,11033,11034,11035,11036,11037,11038,11039,11040,11041,11042,11043,11044, #10928
-11045,11046,11047,4489,11048,11049,11050,11051,4952,11052,11053,11054,11055,11056,11057,11058, #10944
-4953,11059,11060,11061,11062,11063,11064,11065,11066,11067,11068,11069,11070,11071,4954,11072, #10960
-11073,11074,11075,11076,11077,11078,11079,11080,11081,11082,11083,11084,11085,11086,11087,11088, #10976
-11089,11090,11091,11092,11093,11094,11095,11096,11097,11098,11099,11100,11101,11102,11103,11104, #10992
-11105,11106,11107,11108,11109,11110,11111,11112,11113,11114,11115,3808,11116,11117,11118,11119, #11008
-11120,11121,11122,11123,11124,11125,11126,11127,11128,11129,11130,11131,11132,11133,11134,4955, #11024
-11135,11136,11137,11138,11139,11140,11141,11142,11143,11144,11145,11146,11147,11148,11149,11150, #11040
-11151,11152,11153,11154,11155,11156,11157,11158,11159,11160,11161,4956,11162,11163,11164,11165, #11056
-11166,11167,11168,11169,11170,11171,11172,11173,11174,11175,11176,11177,11178,11179,11180,4957, #11072
-11181,11182,11183,11184,11185,11186,4958,11187,11188,11189,11190,11191,11192,11193,11194,11195, #11088
-11196,11197,11198,11199,11200,3678,11201,11202,11203,11204,11205,11206,4191,11207,11208,11209, #11104
-11210,11211,11212,11213,11214,11215,11216,11217,11218,11219,11220,11221,11222,11223,11224,11225, #11120
-11226,11227,11228,11229,11230,11231,11232,11233,11234,11235,11236,11237,11238,11239,11240,11241, #11136
-11242,11243,11244,11245,11246,11247,11248,11249,11250,11251,4959,11252,11253,11254,11255,11256, #11152
-11257,11258,11259,11260,11261,11262,11263,11264,11265,11266,11267,11268,11269,11270,11271,11272, #11168
-11273,11274,11275,11276,11277,11278,11279,11280,11281,11282,11283,11284,11285,11286,11287,11288, #11184
-11289,11290,11291,11292,11293,11294,11295,11296,11297,11298,11299,11300,11301,11302,11303,11304, #11200
-11305,11306,11307,11308,11309,11310,11311,11312,11313,11314,3679,11315,11316,11317,11318,4490, #11216
-11319,11320,11321,11322,11323,11324,11325,11326,11327,11328,11329,11330,11331,11332,11333,11334, #11232
-11335,11336,11337,11338,11339,11340,11341,11342,11343,11344,11345,11346,11347,4960,11348,11349, #11248
-11350,11351,11352,11353,11354,11355,11356,11357,11358,11359,11360,11361,11362,11363,11364,11365, #11264
-11366,11367,11368,11369,11370,11371,11372,11373,11374,11375,11376,11377,3961,4961,11378,11379, #11280
-11380,11381,11382,11383,11384,11385,11386,11387,11388,11389,11390,11391,11392,11393,11394,11395, #11296
-11396,11397,4192,11398,11399,11400,11401,11402,11403,11404,11405,11406,11407,11408,11409,11410, #11312
-11411,4962,11412,11413,11414,11415,11416,11417,11418,11419,11420,11421,11422,11423,11424,11425, #11328
-11426,11427,11428,11429,11430,11431,11432,11433,11434,11435,11436,11437,11438,11439,11440,11441, #11344
-11442,11443,11444,11445,11446,11447,11448,11449,11450,11451,11452,11453,11454,11455,11456,11457, #11360
-11458,11459,11460,11461,11462,11463,11464,11465,11466,11467,11468,11469,4963,11470,11471,4491, #11376
-11472,11473,11474,11475,4964,11476,11477,11478,11479,11480,11481,11482,11483,11484,11485,11486, #11392
-11487,11488,11489,11490,11491,11492,4965,11493,11494,11495,11496,11497,11498,11499,11500,11501, #11408
-11502,11503,11504,11505,11506,11507,11508,11509,11510,11511,11512,11513,11514,11515,11516,11517, #11424
-11518,11519,11520,11521,11522,11523,11524,11525,11526,11527,11528,11529,3962,11530,11531,11532, #11440
-11533,11534,11535,11536,11537,11538,11539,11540,11541,11542,11543,11544,11545,11546,11547,11548, #11456
-11549,11550,11551,11552,11553,11554,11555,11556,11557,11558,11559,11560,11561,11562,11563,11564, #11472
-4193,4194,11565,11566,11567,11568,11569,11570,11571,11572,11573,11574,11575,11576,11577,11578, #11488
-11579,11580,11581,11582,11583,11584,11585,11586,11587,11588,11589,11590,11591,4966,4195,11592, #11504
-11593,11594,11595,11596,11597,11598,11599,11600,11601,11602,11603,11604,3090,11605,11606,11607, #11520
-11608,11609,11610,4967,11611,11612,11613,11614,11615,11616,11617,11618,11619,11620,11621,11622, #11536
-11623,11624,11625,11626,11627,11628,11629,11630,11631,11632,11633,11634,11635,11636,11637,11638, #11552
-11639,11640,11641,11642,11643,11644,11645,11646,11647,11648,11649,11650,11651,11652,11653,11654, #11568
-11655,11656,11657,11658,11659,11660,11661,11662,11663,11664,11665,11666,11667,11668,11669,11670, #11584
-11671,11672,11673,11674,4968,11675,11676,11677,11678,11679,11680,11681,11682,11683,11684,11685, #11600
-11686,11687,11688,11689,11690,11691,11692,11693,3809,11694,11695,11696,11697,11698,11699,11700, #11616
-11701,11702,11703,11704,11705,11706,11707,11708,11709,11710,11711,11712,11713,11714,11715,11716, #11632
-11717,11718,3553,11719,11720,11721,11722,11723,11724,11725,11726,11727,11728,11729,11730,4969, #11648
-11731,11732,11733,11734,11735,11736,11737,11738,11739,11740,4492,11741,11742,11743,11744,11745, #11664
-11746,11747,11748,11749,11750,11751,11752,4970,11753,11754,11755,11756,11757,11758,11759,11760, #11680
-11761,11762,11763,11764,11765,11766,11767,11768,11769,11770,11771,11772,11773,11774,11775,11776, #11696
-11777,11778,11779,11780,11781,11782,11783,11784,11785,11786,11787,11788,11789,11790,4971,11791, #11712
-11792,11793,11794,11795,11796,11797,4972,11798,11799,11800,11801,11802,11803,11804,11805,11806, #11728
-11807,11808,11809,11810,4973,11811,11812,11813,11814,11815,11816,11817,11818,11819,11820,11821, #11744
-11822,11823,11824,11825,11826,11827,11828,11829,11830,11831,11832,11833,11834,3680,3810,11835, #11760
-11836,4974,11837,11838,11839,11840,11841,11842,11843,11844,11845,11846,11847,11848,11849,11850, #11776
-11851,11852,11853,11854,11855,11856,11857,11858,11859,11860,11861,11862,11863,11864,11865,11866, #11792
-11867,11868,11869,11870,11871,11872,11873,11874,11875,11876,11877,11878,11879,11880,11881,11882, #11808
-11883,11884,4493,11885,11886,11887,11888,11889,11890,11891,11892,11893,11894,11895,11896,11897, #11824
-11898,11899,11900,11901,11902,11903,11904,11905,11906,11907,11908,11909,11910,11911,11912,11913, #11840
-11914,11915,4975,11916,11917,11918,11919,11920,11921,11922,11923,11924,11925,11926,11927,11928, #11856
-11929,11930,11931,11932,11933,11934,11935,11936,11937,11938,11939,11940,11941,11942,11943,11944, #11872
-11945,11946,11947,11948,11949,4976,11950,11951,11952,11953,11954,11955,11956,11957,11958,11959, #11888
-11960,11961,11962,11963,11964,11965,11966,11967,11968,11969,11970,11971,11972,11973,11974,11975, #11904
-11976,11977,11978,11979,11980,11981,11982,11983,11984,11985,11986,11987,4196,11988,11989,11990, #11920
-11991,11992,4977,11993,11994,11995,11996,11997,11998,11999,12000,12001,12002,12003,12004,12005, #11936
-12006,12007,12008,12009,12010,12011,12012,12013,12014,12015,12016,12017,12018,12019,12020,12021, #11952
-12022,12023,12024,12025,12026,12027,12028,12029,12030,12031,12032,12033,12034,12035,12036,12037, #11968
-12038,12039,12040,12041,12042,12043,12044,12045,12046,12047,12048,12049,12050,12051,12052,12053, #11984
-12054,12055,12056,12057,12058,12059,12060,12061,4978,12062,12063,12064,12065,12066,12067,12068, #12000
-12069,12070,12071,12072,12073,12074,12075,12076,12077,12078,12079,12080,12081,12082,12083,12084, #12016
-12085,12086,12087,12088,12089,12090,12091,12092,12093,12094,12095,12096,12097,12098,12099,12100, #12032
-12101,12102,12103,12104,12105,12106,12107,12108,12109,12110,12111,12112,12113,12114,12115,12116, #12048
-12117,12118,12119,12120,12121,12122,12123,4979,12124,12125,12126,12127,12128,4197,12129,12130, #12064
-12131,12132,12133,12134,12135,12136,12137,12138,12139,12140,12141,12142,12143,12144,12145,12146, #12080
-12147,12148,12149,12150,12151,12152,12153,12154,4980,12155,12156,12157,12158,12159,12160,4494, #12096
-12161,12162,12163,12164,3811,12165,12166,12167,12168,12169,4495,12170,12171,4496,12172,12173, #12112
-12174,12175,12176,3812,12177,12178,12179,12180,12181,12182,12183,12184,12185,12186,12187,12188, #12128
-12189,12190,12191,12192,12193,12194,12195,12196,12197,12198,12199,12200,12201,12202,12203,12204, #12144
-12205,12206,12207,12208,12209,12210,12211,12212,12213,12214,12215,12216,12217,12218,12219,12220, #12160
-12221,4981,12222,12223,12224,12225,12226,12227,12228,12229,12230,12231,12232,12233,12234,12235, #12176
-4982,12236,12237,12238,12239,12240,12241,12242,12243,12244,12245,4983,12246,12247,12248,12249, #12192
-4984,12250,12251,12252,12253,12254,12255,12256,12257,12258,12259,12260,12261,12262,12263,12264, #12208
-4985,12265,4497,12266,12267,12268,12269,12270,12271,12272,12273,12274,12275,12276,12277,12278, #12224
-12279,12280,12281,12282,12283,12284,12285,12286,12287,4986,12288,12289,12290,12291,12292,12293, #12240
-12294,12295,12296,2473,12297,12298,12299,12300,12301,12302,12303,12304,12305,12306,12307,12308, #12256
-12309,12310,12311,12312,12313,12314,12315,12316,12317,12318,12319,3963,12320,12321,12322,12323, #12272
-12324,12325,12326,12327,12328,12329,12330,12331,12332,4987,12333,12334,12335,12336,12337,12338, #12288
-12339,12340,12341,12342,12343,12344,12345,12346,12347,12348,12349,12350,12351,12352,12353,12354, #12304
-12355,12356,12357,12358,12359,3964,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369, #12320
-12370,3965,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384, #12336
-12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400, #12352
-12401,12402,12403,12404,12405,12406,12407,12408,4988,12409,12410,12411,12412,12413,12414,12415, #12368
-12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431, #12384
-12432,12433,12434,12435,12436,12437,12438,3554,12439,12440,12441,12442,12443,12444,12445,12446, #12400
-12447,12448,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462, #12416
-12463,12464,4989,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477, #12432
-12478,12479,12480,4990,12481,12482,12483,12484,12485,12486,12487,12488,12489,4498,12490,12491, #12448
-12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507, #12464
-12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523, #12480
-12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,12535,12536,12537,12538,12539, #12496
-12540,12541,12542,12543,12544,12545,12546,12547,12548,12549,12550,12551,4991,12552,12553,12554, #12512
-12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570, #12528
-12571,12572,12573,12574,12575,12576,12577,12578,3036,12579,12580,12581,12582,12583,3966,12584, #12544
-12585,12586,12587,12588,12589,12590,12591,12592,12593,12594,12595,12596,12597,12598,12599,12600, #12560
-12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616, #12576
-12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632, #12592
-12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,4499,12647, #12608
-12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663, #12624
-12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679, #12640
-12680,12681,12682,12683,12684,12685,12686,12687,12688,12689,12690,12691,12692,12693,12694,12695, #12656
-12696,12697,12698,4992,12699,12700,12701,12702,12703,12704,12705,12706,12707,12708,12709,12710, #12672
-12711,12712,12713,12714,12715,12716,12717,12718,12719,12720,12721,12722,12723,12724,12725,12726, #12688
-12727,12728,12729,12730,12731,12732,12733,12734,12735,12736,12737,12738,12739,12740,12741,12742, #12704
-12743,12744,12745,12746,12747,12748,12749,12750,12751,12752,12753,12754,12755,12756,12757,12758, #12720
-12759,12760,12761,12762,12763,12764,12765,12766,12767,12768,12769,12770,12771,12772,12773,12774, #12736
-12775,12776,12777,12778,4993,2175,12779,12780,12781,12782,12783,12784,12785,12786,4500,12787, #12752
-12788,12789,12790,12791,12792,12793,12794,12795,12796,12797,12798,12799,12800,12801,12802,12803, #12768
-12804,12805,12806,12807,12808,12809,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819, #12784
-12820,12821,12822,12823,12824,12825,12826,4198,3967,12827,12828,12829,12830,12831,12832,12833, #12800
-12834,12835,12836,12837,12838,12839,12840,12841,12842,12843,12844,12845,12846,12847,12848,12849, #12816
-12850,12851,12852,12853,12854,12855,12856,12857,12858,12859,12860,12861,4199,12862,12863,12864, #12832
-12865,12866,12867,12868,12869,12870,12871,12872,12873,12874,12875,12876,12877,12878,12879,12880, #12848
-12881,12882,12883,12884,12885,12886,12887,4501,12888,12889,12890,12891,12892,12893,12894,12895, #12864
-12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911, #12880
-12912,4994,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,12924,12925,12926, #12896
-12927,12928,12929,12930,12931,12932,12933,12934,12935,12936,12937,12938,12939,12940,12941,12942, #12912
-12943,12944,12945,12946,12947,12948,12949,12950,12951,12952,12953,12954,12955,12956,1772,12957, #12928
-12958,12959,12960,12961,12962,12963,12964,12965,12966,12967,12968,12969,12970,12971,12972,12973, #12944
-12974,12975,12976,12977,12978,12979,12980,12981,12982,12983,12984,12985,12986,12987,12988,12989, #12960
-12990,12991,12992,12993,12994,12995,12996,12997,4502,12998,4503,12999,13000,13001,13002,13003, #12976
-4504,13004,13005,13006,13007,13008,13009,13010,13011,13012,13013,13014,13015,13016,13017,13018, #12992
-13019,13020,13021,13022,13023,13024,13025,13026,13027,13028,13029,3449,13030,13031,13032,13033, #13008
-13034,13035,13036,13037,13038,13039,13040,13041,13042,13043,13044,13045,13046,13047,13048,13049, #13024
-13050,13051,13052,13053,13054,13055,13056,13057,13058,13059,13060,13061,13062,13063,13064,13065, #13040
-13066,13067,13068,13069,13070,13071,13072,13073,13074,13075,13076,13077,13078,13079,13080,13081, #13056
-13082,13083,13084,13085,13086,13087,13088,13089,13090,13091,13092,13093,13094,13095,13096,13097, #13072
-13098,13099,13100,13101,13102,13103,13104,13105,13106,13107,13108,13109,13110,13111,13112,13113, #13088
-13114,13115,13116,13117,13118,3968,13119,4995,13120,13121,13122,13123,13124,13125,13126,13127, #13104
-4505,13128,13129,13130,13131,13132,13133,13134,4996,4506,13135,13136,13137,13138,13139,4997, #13120
-13140,13141,13142,13143,13144,13145,13146,13147,13148,13149,13150,13151,13152,13153,13154,13155, #13136
-13156,13157,13158,13159,4998,13160,13161,13162,13163,13164,13165,13166,13167,13168,13169,13170, #13152
-13171,13172,13173,13174,13175,13176,4999,13177,13178,13179,13180,13181,13182,13183,13184,13185, #13168
-13186,13187,13188,13189,13190,13191,13192,13193,13194,13195,13196,13197,13198,13199,13200,13201, #13184
-13202,13203,13204,13205,13206,5000,13207,13208,13209,13210,13211,13212,13213,13214,13215,13216, #13200
-13217,13218,13219,13220,13221,13222,13223,13224,13225,13226,13227,4200,5001,13228,13229,13230, #13216
-13231,13232,13233,13234,13235,13236,13237,13238,13239,13240,3969,13241,13242,13243,13244,3970, #13232
-13245,13246,13247,13248,13249,13250,13251,13252,13253,13254,13255,13256,13257,13258,13259,13260, #13248
-13261,13262,13263,13264,13265,13266,13267,13268,3450,13269,13270,13271,13272,13273,13274,13275, #13264
-13276,5002,13277,13278,13279,13280,13281,13282,13283,13284,13285,13286,13287,13288,13289,13290, #13280
-13291,13292,13293,13294,13295,13296,13297,13298,13299,13300,13301,13302,3813,13303,13304,13305, #13296
-13306,13307,13308,13309,13310,13311,13312,13313,13314,13315,13316,13317,13318,13319,13320,13321, #13312
-13322,13323,13324,13325,13326,13327,13328,4507,13329,13330,13331,13332,13333,13334,13335,13336, #13328
-13337,13338,13339,13340,13341,5003,13342,13343,13344,13345,13346,13347,13348,13349,13350,13351, #13344
-13352,13353,13354,13355,13356,13357,13358,13359,13360,13361,13362,13363,13364,13365,13366,13367, #13360
-5004,13368,13369,13370,13371,13372,13373,13374,13375,13376,13377,13378,13379,13380,13381,13382, #13376
-13383,13384,13385,13386,13387,13388,13389,13390,13391,13392,13393,13394,13395,13396,13397,13398, #13392
-13399,13400,13401,13402,13403,13404,13405,13406,13407,13408,13409,13410,13411,13412,13413,13414, #13408
-13415,13416,13417,13418,13419,13420,13421,13422,13423,13424,13425,13426,13427,13428,13429,13430, #13424
-13431,13432,4508,13433,13434,13435,4201,13436,13437,13438,13439,13440,13441,13442,13443,13444, #13440
-13445,13446,13447,13448,13449,13450,13451,13452,13453,13454,13455,13456,13457,5005,13458,13459, #13456
-13460,13461,13462,13463,13464,13465,13466,13467,13468,13469,13470,4509,13471,13472,13473,13474, #13472
-13475,13476,13477,13478,13479,13480,13481,13482,13483,13484,13485,13486,13487,13488,13489,13490, #13488
-13491,13492,13493,13494,13495,13496,13497,13498,13499,13500,13501,13502,13503,13504,13505,13506, #13504
-13507,13508,13509,13510,13511,13512,13513,13514,13515,13516,13517,13518,13519,13520,13521,13522, #13520
-13523,13524,13525,13526,13527,13528,13529,13530,13531,13532,13533,13534,13535,13536,13537,13538, #13536
-13539,13540,13541,13542,13543,13544,13545,13546,13547,13548,13549,13550,13551,13552,13553,13554, #13552
-13555,13556,13557,13558,13559,13560,13561,13562,13563,13564,13565,13566,13567,13568,13569,13570, #13568
-13571,13572,13573,13574,13575,13576,13577,13578,13579,13580,13581,13582,13583,13584,13585,13586, #13584
-13587,13588,13589,13590,13591,13592,13593,13594,13595,13596,13597,13598,13599,13600,13601,13602, #13600
-13603,13604,13605,13606,13607,13608,13609,13610,13611,13612,13613,13614,13615,13616,13617,13618, #13616
-13619,13620,13621,13622,13623,13624,13625,13626,13627,13628,13629,13630,13631,13632,13633,13634, #13632
-13635,13636,13637,13638,13639,13640,13641,13642,5006,13643,13644,13645,13646,13647,13648,13649, #13648
-13650,13651,5007,13652,13653,13654,13655,13656,13657,13658,13659,13660,13661,13662,13663,13664, #13664
-13665,13666,13667,13668,13669,13670,13671,13672,13673,13674,13675,13676,13677,13678,13679,13680, #13680
-13681,13682,13683,13684,13685,13686,13687,13688,13689,13690,13691,13692,13693,13694,13695,13696, #13696
-13697,13698,13699,13700,13701,13702,13703,13704,13705,13706,13707,13708,13709,13710,13711,13712, #13712
-13713,13714,13715,13716,13717,13718,13719,13720,13721,13722,13723,13724,13725,13726,13727,13728, #13728
-13729,13730,13731,13732,13733,13734,13735,13736,13737,13738,13739,13740,13741,13742,13743,13744, #13744
-13745,13746,13747,13748,13749,13750,13751,13752,13753,13754,13755,13756,13757,13758,13759,13760, #13760
-13761,13762,13763,13764,13765,13766,13767,13768,13769,13770,13771,13772,13773,13774,3273,13775, #13776
-13776,13777,13778,13779,13780,13781,13782,13783,13784,13785,13786,13787,13788,13789,13790,13791, #13792
-13792,13793,13794,13795,13796,13797,13798,13799,13800,13801,13802,13803,13804,13805,13806,13807, #13808
-13808,13809,13810,13811,13812,13813,13814,13815,13816,13817,13818,13819,13820,13821,13822,13823, #13824
-13824,13825,13826,13827,13828,13829,13830,13831,13832,13833,13834,13835,13836,13837,13838,13839, #13840
-13840,13841,13842,13843,13844,13845,13846,13847,13848,13849,13850,13851,13852,13853,13854,13855, #13856
-13856,13857,13858,13859,13860,13861,13862,13863,13864,13865,13866,13867,13868,13869,13870,13871, #13872
-13872,13873,13874,13875,13876,13877,13878,13879,13880,13881,13882,13883,13884,13885,13886,13887, #13888
-13888,13889,13890,13891,13892,13893,13894,13895,13896,13897,13898,13899,13900,13901,13902,13903, #13904
-13904,13905,13906,13907,13908,13909,13910,13911,13912,13913,13914,13915,13916,13917,13918,13919, #13920
-13920,13921,13922,13923,13924,13925,13926,13927,13928,13929,13930,13931,13932,13933,13934,13935, #13936
-13936,13937,13938,13939,13940,13941,13942,13943,13944,13945,13946,13947,13948,13949,13950,13951, #13952
-13952,13953,13954,13955,13956,13957,13958,13959,13960,13961,13962,13963,13964,13965,13966,13967, #13968
-13968,13969,13970,13971,13972) #13973
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/big5prober.py b/vendor/requests/packages/chardet/big5prober.py
deleted file mode 100644
index becce81e..00000000
--- a/vendor/requests/packages/chardet/big5prober.py
+++ /dev/null
@@ -1,42 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import Big5DistributionAnalysis
-from .mbcssm import Big5SMModel
-
-
-class Big5Prober(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(Big5SMModel)
- self._mDistributionAnalyzer = Big5DistributionAnalysis()
- self.reset()
-
- def get_charset_name(self):
- return "Big5"
diff --git a/vendor/requests/packages/chardet/chardetect.py b/vendor/requests/packages/chardet/chardetect.py
deleted file mode 100644
index ffe892f2..00000000
--- a/vendor/requests/packages/chardet/chardetect.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env python
-"""
-Script which takes one or more file paths and reports on their detected
-encodings
-
-Example::
-
- % chardetect somefile someotherfile
- somefile: windows-1252 with confidence 0.5
- someotherfile: ascii with confidence 1.0
-
-If no paths are provided, it takes its input from stdin.
-
-"""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-import argparse
-import sys
-from io import open
-
-from chardet import __version__
-from chardet.universaldetector import UniversalDetector
-
-
-def description_of(lines, name='stdin'):
- """
- Return a string describing the probable encoding of a file or
- list of strings.
-
- :param lines: The lines to get the encoding of.
- :type lines: Iterable of bytes
- :param name: Name of file or collection of lines
- :type name: str
- """
- u = UniversalDetector()
- for line in lines:
- u.feed(line)
- u.close()
- result = u.result
- if result['encoding']:
- return '{0}: {1} with confidence {2}'.format(name, result['encoding'],
- result['confidence'])
- else:
- return '{0}: no result'.format(name)
-
-
-def main(argv=None):
- '''
- Handles command line arguments and gets things started.
-
- :param argv: List of arguments, as if specified on the command-line.
- If None, ``sys.argv[1:]`` is used instead.
- :type argv: list of str
- '''
- # Get command line arguments
- parser = argparse.ArgumentParser(
- description="Takes one or more file paths and reports their detected \
- encodings",
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- conflict_handler='resolve')
- parser.add_argument('input',
- help='File whose encoding we would like to determine.',
- type=argparse.FileType('rb'), nargs='*',
- default=[sys.stdin])
- parser.add_argument('--version', action='version',
- version='%(prog)s {0}'.format(__version__))
- args = parser.parse_args(argv)
-
- for f in args.input:
- if f.isatty():
- print("You are running chardetect interactively. Press " +
- "CTRL-D twice at the start of a blank line to signal the " +
- "end of your input. If you want help, run chardetect " +
- "--help\n", file=sys.stderr)
- print(description_of(f, f.name))
-
-
-if __name__ == '__main__':
- main()
diff --git a/vendor/requests/packages/chardet/chardistribution.py b/vendor/requests/packages/chardet/chardistribution.py
deleted file mode 100644
index 4e64a00b..00000000
--- a/vendor/requests/packages/chardet/chardistribution.py
+++ /dev/null
@@ -1,231 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .euctwfreq import (EUCTWCharToFreqOrder, EUCTW_TABLE_SIZE,
- EUCTW_TYPICAL_DISTRIBUTION_RATIO)
-from .euckrfreq import (EUCKRCharToFreqOrder, EUCKR_TABLE_SIZE,
- EUCKR_TYPICAL_DISTRIBUTION_RATIO)
-from .gb2312freq import (GB2312CharToFreqOrder, GB2312_TABLE_SIZE,
- GB2312_TYPICAL_DISTRIBUTION_RATIO)
-from .big5freq import (Big5CharToFreqOrder, BIG5_TABLE_SIZE,
- BIG5_TYPICAL_DISTRIBUTION_RATIO)
-from .jisfreq import (JISCharToFreqOrder, JIS_TABLE_SIZE,
- JIS_TYPICAL_DISTRIBUTION_RATIO)
-from .compat import wrap_ord
-
-ENOUGH_DATA_THRESHOLD = 1024
-SURE_YES = 0.99
-SURE_NO = 0.01
-MINIMUM_DATA_THRESHOLD = 3
-
-
-class CharDistributionAnalysis:
- def __init__(self):
- # Mapping table to get frequency order from char order (get from
- # GetOrder())
- self._mCharToFreqOrder = None
- self._mTableSize = None # Size of above table
- # This is a constant value which varies from language to language,
- # used in calculating confidence. See
- # http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html
- # for further detail.
- self._mTypicalDistributionRatio = None
- self.reset()
-
- def reset(self):
- """reset analyser, clear any state"""
- # If this flag is set to True, detection is done and conclusion has
- # been made
- self._mDone = False
- self._mTotalChars = 0 # Total characters encountered
- # The number of characters whose frequency order is less than 512
- self._mFreqChars = 0
-
- def feed(self, aBuf, aCharLen):
- """feed a character with known length"""
- if aCharLen == 2:
- # we only care about 2-bytes character in our distribution analysis
- order = self.get_order(aBuf)
- else:
- order = -1
- if order >= 0:
- self._mTotalChars += 1
- # order is valid
- if order < self._mTableSize:
- if 512 > self._mCharToFreqOrder[order]:
- self._mFreqChars += 1
-
- def get_confidence(self):
- """return confidence based on existing data"""
- # if we didn't receive any character in our consideration range,
- # return negative answer
- if self._mTotalChars <= 0 or self._mFreqChars <= MINIMUM_DATA_THRESHOLD:
- return SURE_NO
-
- if self._mTotalChars != self._mFreqChars:
- r = (self._mFreqChars / ((self._mTotalChars - self._mFreqChars)
- * self._mTypicalDistributionRatio))
- if r < SURE_YES:
- return r
-
- # normalize confidence (we don't want to be 100% sure)
- return SURE_YES
-
- def got_enough_data(self):
- # It is not necessary to receive all data to draw conclusion.
- # For charset detection, certain amount of data is enough
- return self._mTotalChars > ENOUGH_DATA_THRESHOLD
-
- def get_order(self, aBuf):
- # We do not handle characters based on the original encoding string,
- # but convert this encoding string to a number, here called order.
- # This allows multiple encodings of a language to share one frequency
- # table.
- return -1
-
-
-class EUCTWDistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = EUCTWCharToFreqOrder
- self._mTableSize = EUCTW_TABLE_SIZE
- self._mTypicalDistributionRatio = EUCTW_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for euc-TW encoding, we are interested
- # first byte range: 0xc4 -- 0xfe
- # second byte range: 0xa1 -- 0xfe
- # no validation needed here. State machine has done that
- first_char = wrap_ord(aBuf[0])
- if first_char >= 0xC4:
- return 94 * (first_char - 0xC4) + wrap_ord(aBuf[1]) - 0xA1
- else:
- return -1
-
-
-class EUCKRDistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = EUCKRCharToFreqOrder
- self._mTableSize = EUCKR_TABLE_SIZE
- self._mTypicalDistributionRatio = EUCKR_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for euc-KR encoding, we are interested
- # first byte range: 0xb0 -- 0xfe
- # second byte range: 0xa1 -- 0xfe
- # no validation needed here. State machine has done that
- first_char = wrap_ord(aBuf[0])
- if first_char >= 0xB0:
- return 94 * (first_char - 0xB0) + wrap_ord(aBuf[1]) - 0xA1
- else:
- return -1
-
-
-class GB2312DistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = GB2312CharToFreqOrder
- self._mTableSize = GB2312_TABLE_SIZE
- self._mTypicalDistributionRatio = GB2312_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for GB2312 encoding, we are interested
- # first byte range: 0xb0 -- 0xfe
- # second byte range: 0xa1 -- 0xfe
- # no validation needed here. State machine has done that
- first_char, second_char = wrap_ord(aBuf[0]), wrap_ord(aBuf[1])
- if (first_char >= 0xB0) and (second_char >= 0xA1):
- return 94 * (first_char - 0xB0) + second_char - 0xA1
- else:
- return -1
-
-
-class Big5DistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = Big5CharToFreqOrder
- self._mTableSize = BIG5_TABLE_SIZE
- self._mTypicalDistributionRatio = BIG5_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for big5 encoding, we are interested
- # first byte range: 0xa4 -- 0xfe
- # second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe
- # no validation needed here. State machine has done that
- first_char, second_char = wrap_ord(aBuf[0]), wrap_ord(aBuf[1])
- if first_char >= 0xA4:
- if second_char >= 0xA1:
- return 157 * (first_char - 0xA4) + second_char - 0xA1 + 63
- else:
- return 157 * (first_char - 0xA4) + second_char - 0x40
- else:
- return -1
-
-
-class SJISDistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = JISCharToFreqOrder
- self._mTableSize = JIS_TABLE_SIZE
- self._mTypicalDistributionRatio = JIS_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for sjis encoding, we are interested
- # first byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe
- # second byte range: 0x40 -- 0x7e, 0x81 -- oxfe
- # no validation needed here. State machine has done that
- first_char, second_char = wrap_ord(aBuf[0]), wrap_ord(aBuf[1])
- if (first_char >= 0x81) and (first_char <= 0x9F):
- order = 188 * (first_char - 0x81)
- elif (first_char >= 0xE0) and (first_char <= 0xEF):
- order = 188 * (first_char - 0xE0 + 31)
- else:
- return -1
- order = order + second_char - 0x40
- if second_char > 0x7F:
- order = -1
- return order
-
-
-class EUCJPDistributionAnalysis(CharDistributionAnalysis):
- def __init__(self):
- CharDistributionAnalysis.__init__(self)
- self._mCharToFreqOrder = JISCharToFreqOrder
- self._mTableSize = JIS_TABLE_SIZE
- self._mTypicalDistributionRatio = JIS_TYPICAL_DISTRIBUTION_RATIO
-
- def get_order(self, aBuf):
- # for euc-JP encoding, we are interested
- # first byte range: 0xa0 -- 0xfe
- # second byte range: 0xa1 -- 0xfe
- # no validation needed here. State machine has done that
- char = wrap_ord(aBuf[0])
- if char >= 0xA0:
- return 94 * (char - 0xA1) + wrap_ord(aBuf[1]) - 0xa1
- else:
- return -1
diff --git a/vendor/requests/packages/chardet/charsetgroupprober.py b/vendor/requests/packages/chardet/charsetgroupprober.py
deleted file mode 100644
index 85e7a1c6..00000000
--- a/vendor/requests/packages/chardet/charsetgroupprober.py
+++ /dev/null
@@ -1,106 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from . import constants
-import sys
-from .charsetprober import CharSetProber
-
-
-class CharSetGroupProber(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self._mActiveNum = 0
- self._mProbers = []
- self._mBestGuessProber = None
-
- def reset(self):
- CharSetProber.reset(self)
- self._mActiveNum = 0
- for prober in self._mProbers:
- if prober:
- prober.reset()
- prober.active = True
- self._mActiveNum += 1
- self._mBestGuessProber = None
-
- def get_charset_name(self):
- if not self._mBestGuessProber:
- self.get_confidence()
- if not self._mBestGuessProber:
- return None
-# self._mBestGuessProber = self._mProbers[0]
- return self._mBestGuessProber.get_charset_name()
-
- def feed(self, aBuf):
- for prober in self._mProbers:
- if not prober:
- continue
- if not prober.active:
- continue
- st = prober.feed(aBuf)
- if not st:
- continue
- if st == constants.eFoundIt:
- self._mBestGuessProber = prober
- return self.get_state()
- elif st == constants.eNotMe:
- prober.active = False
- self._mActiveNum -= 1
- if self._mActiveNum <= 0:
- self._mState = constants.eNotMe
- return self.get_state()
- return self.get_state()
-
- def get_confidence(self):
- st = self.get_state()
- if st == constants.eFoundIt:
- return 0.99
- elif st == constants.eNotMe:
- return 0.01
- bestConf = 0.0
- self._mBestGuessProber = None
- for prober in self._mProbers:
- if not prober:
- continue
- if not prober.active:
- if constants._debug:
- sys.stderr.write(prober.get_charset_name()
- + ' not active\n')
- continue
- cf = prober.get_confidence()
- if constants._debug:
- sys.stderr.write('%s confidence = %s\n' %
- (prober.get_charset_name(), cf))
- if bestConf < cf:
- bestConf = cf
- self._mBestGuessProber = prober
- if not self._mBestGuessProber:
- return 0.0
- return bestConf
-# else:
-# self._mBestGuessProber = self._mProbers[0]
-# return self._mBestGuessProber.get_confidence()
diff --git a/vendor/requests/packages/chardet/charsetprober.py b/vendor/requests/packages/chardet/charsetprober.py
deleted file mode 100644
index 97581712..00000000
--- a/vendor/requests/packages/chardet/charsetprober.py
+++ /dev/null
@@ -1,62 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from . import constants
-import re
-
-
-class CharSetProber:
- def __init__(self):
- pass
-
- def reset(self):
- self._mState = constants.eDetecting
-
- def get_charset_name(self):
- return None
-
- def feed(self, aBuf):
- pass
-
- def get_state(self):
- return self._mState
-
- def get_confidence(self):
- return 0.0
-
- def filter_high_bit_only(self, aBuf):
- aBuf = re.sub(b'([\x00-\x7F])+', b' ', aBuf)
- return aBuf
-
- def filter_without_english_letters(self, aBuf):
- aBuf = re.sub(b'([A-Za-z])+', b' ', aBuf)
- return aBuf
-
- def filter_with_english_letters(self, aBuf):
- # TODO
- return aBuf
diff --git a/vendor/requests/packages/chardet/codingstatemachine.py b/vendor/requests/packages/chardet/codingstatemachine.py
deleted file mode 100644
index 8dd8c917..00000000
--- a/vendor/requests/packages/chardet/codingstatemachine.py
+++ /dev/null
@@ -1,61 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .constants import eStart
-from .compat import wrap_ord
-
-
-class CodingStateMachine:
- def __init__(self, sm):
- self._mModel = sm
- self._mCurrentBytePos = 0
- self._mCurrentCharLen = 0
- self.reset()
-
- def reset(self):
- self._mCurrentState = eStart
-
- def next_state(self, c):
- # for each byte we get its class
- # if it is first byte, we also get byte length
- # PY3K: aBuf is a byte stream, so c is an int, not a byte
- byteCls = self._mModel['classTable'][wrap_ord(c)]
- if self._mCurrentState == eStart:
- self._mCurrentBytePos = 0
- self._mCurrentCharLen = self._mModel['charLenTable'][byteCls]
- # from byte's class and stateTable, we get its next state
- curr_state = (self._mCurrentState * self._mModel['classFactor']
- + byteCls)
- self._mCurrentState = self._mModel['stateTable'][curr_state]
- self._mCurrentBytePos += 1
- return self._mCurrentState
-
- def get_current_charlen(self):
- return self._mCurrentCharLen
-
- def get_coding_state_machine(self):
- return self._mModel['name']
diff --git a/vendor/requests/packages/chardet/compat.py b/vendor/requests/packages/chardet/compat.py
deleted file mode 100644
index d9e30add..00000000
--- a/vendor/requests/packages/chardet/compat.py
+++ /dev/null
@@ -1,34 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# Contributor(s):
-# Ian Cordasco - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-import sys
-
-
-if sys.version_info < (3, 0):
- base_str = (str, unicode)
-else:
- base_str = (bytes, str)
-
-
-def wrap_ord(a):
- if sys.version_info < (3, 0) and isinstance(a, base_str):
- return ord(a)
- else:
- return a
diff --git a/vendor/requests/packages/chardet/constants.py b/vendor/requests/packages/chardet/constants.py
deleted file mode 100644
index e4d148b3..00000000
--- a/vendor/requests/packages/chardet/constants.py
+++ /dev/null
@@ -1,39 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-_debug = 0
-
-eDetecting = 0
-eFoundIt = 1
-eNotMe = 2
-
-eStart = 0
-eError = 1
-eItsMe = 2
-
-SHORTCUT_THRESHOLD = 0.95
diff --git a/vendor/requests/packages/chardet/cp949prober.py b/vendor/requests/packages/chardet/cp949prober.py
deleted file mode 100644
index ff4272f8..00000000
--- a/vendor/requests/packages/chardet/cp949prober.py
+++ /dev/null
@@ -1,44 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import EUCKRDistributionAnalysis
-from .mbcssm import CP949SMModel
-
-
-class CP949Prober(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(CP949SMModel)
- # NOTE: CP949 is a superset of EUC-KR, so the distribution should be
- # not different.
- self._mDistributionAnalyzer = EUCKRDistributionAnalysis()
- self.reset()
-
- def get_charset_name(self):
- return "CP949"
diff --git a/vendor/requests/packages/chardet/escprober.py b/vendor/requests/packages/chardet/escprober.py
deleted file mode 100644
index 80a844ff..00000000
--- a/vendor/requests/packages/chardet/escprober.py
+++ /dev/null
@@ -1,86 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from . import constants
-from .escsm import (HZSMModel, ISO2022CNSMModel, ISO2022JPSMModel,
- ISO2022KRSMModel)
-from .charsetprober import CharSetProber
-from .codingstatemachine import CodingStateMachine
-from .compat import wrap_ord
-
-
-class EscCharSetProber(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self._mCodingSM = [
- CodingStateMachine(HZSMModel),
- CodingStateMachine(ISO2022CNSMModel),
- CodingStateMachine(ISO2022JPSMModel),
- CodingStateMachine(ISO2022KRSMModel)
- ]
- self.reset()
-
- def reset(self):
- CharSetProber.reset(self)
- for codingSM in self._mCodingSM:
- if not codingSM:
- continue
- codingSM.active = True
- codingSM.reset()
- self._mActiveSM = len(self._mCodingSM)
- self._mDetectedCharset = None
-
- def get_charset_name(self):
- return self._mDetectedCharset
-
- def get_confidence(self):
- if self._mDetectedCharset:
- return 0.99
- else:
- return 0.00
-
- def feed(self, aBuf):
- for c in aBuf:
- # PY3K: aBuf is a byte array, so c is an int, not a byte
- for codingSM in self._mCodingSM:
- if not codingSM:
- continue
- if not codingSM.active:
- continue
- codingState = codingSM.next_state(wrap_ord(c))
- if codingState == constants.eError:
- codingSM.active = False
- self._mActiveSM -= 1
- if self._mActiveSM <= 0:
- self._mState = constants.eNotMe
- return self.get_state()
- elif codingState == constants.eItsMe:
- self._mState = constants.eFoundIt
- self._mDetectedCharset = codingSM.get_coding_state_machine() # nopep8
- return self.get_state()
-
- return self.get_state()
diff --git a/vendor/requests/packages/chardet/escsm.py b/vendor/requests/packages/chardet/escsm.py
deleted file mode 100644
index bd302b4c..00000000
--- a/vendor/requests/packages/chardet/escsm.py
+++ /dev/null
@@ -1,242 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .constants import eStart, eError, eItsMe
-
-HZ_cls = (
-1,0,0,0,0,0,0,0, # 00 - 07
-0,0,0,0,0,0,0,0, # 08 - 0f
-0,0,0,0,0,0,0,0, # 10 - 17
-0,0,0,1,0,0,0,0, # 18 - 1f
-0,0,0,0,0,0,0,0, # 20 - 27
-0,0,0,0,0,0,0,0, # 28 - 2f
-0,0,0,0,0,0,0,0, # 30 - 37
-0,0,0,0,0,0,0,0, # 38 - 3f
-0,0,0,0,0,0,0,0, # 40 - 47
-0,0,0,0,0,0,0,0, # 48 - 4f
-0,0,0,0,0,0,0,0, # 50 - 57
-0,0,0,0,0,0,0,0, # 58 - 5f
-0,0,0,0,0,0,0,0, # 60 - 67
-0,0,0,0,0,0,0,0, # 68 - 6f
-0,0,0,0,0,0,0,0, # 70 - 77
-0,0,0,4,0,5,2,0, # 78 - 7f
-1,1,1,1,1,1,1,1, # 80 - 87
-1,1,1,1,1,1,1,1, # 88 - 8f
-1,1,1,1,1,1,1,1, # 90 - 97
-1,1,1,1,1,1,1,1, # 98 - 9f
-1,1,1,1,1,1,1,1, # a0 - a7
-1,1,1,1,1,1,1,1, # a8 - af
-1,1,1,1,1,1,1,1, # b0 - b7
-1,1,1,1,1,1,1,1, # b8 - bf
-1,1,1,1,1,1,1,1, # c0 - c7
-1,1,1,1,1,1,1,1, # c8 - cf
-1,1,1,1,1,1,1,1, # d0 - d7
-1,1,1,1,1,1,1,1, # d8 - df
-1,1,1,1,1,1,1,1, # e0 - e7
-1,1,1,1,1,1,1,1, # e8 - ef
-1,1,1,1,1,1,1,1, # f0 - f7
-1,1,1,1,1,1,1,1, # f8 - ff
-)
-
-HZ_st = (
-eStart,eError, 3,eStart,eStart,eStart,eError,eError,# 00-07
-eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,# 08-0f
-eItsMe,eItsMe,eError,eError,eStart,eStart, 4,eError,# 10-17
- 5,eError, 6,eError, 5, 5, 4,eError,# 18-1f
- 4,eError, 4, 4, 4,eError, 4,eError,# 20-27
- 4,eItsMe,eStart,eStart,eStart,eStart,eStart,eStart,# 28-2f
-)
-
-HZCharLenTable = (0, 0, 0, 0, 0, 0)
-
-HZSMModel = {'classTable': HZ_cls,
- 'classFactor': 6,
- 'stateTable': HZ_st,
- 'charLenTable': HZCharLenTable,
- 'name': "HZ-GB-2312"}
-
-ISO2022CN_cls = (
-2,0,0,0,0,0,0,0, # 00 - 07
-0,0,0,0,0,0,0,0, # 08 - 0f
-0,0,0,0,0,0,0,0, # 10 - 17
-0,0,0,1,0,0,0,0, # 18 - 1f
-0,0,0,0,0,0,0,0, # 20 - 27
-0,3,0,0,0,0,0,0, # 28 - 2f
-0,0,0,0,0,0,0,0, # 30 - 37
-0,0,0,0,0,0,0,0, # 38 - 3f
-0,0,0,4,0,0,0,0, # 40 - 47
-0,0,0,0,0,0,0,0, # 48 - 4f
-0,0,0,0,0,0,0,0, # 50 - 57
-0,0,0,0,0,0,0,0, # 58 - 5f
-0,0,0,0,0,0,0,0, # 60 - 67
-0,0,0,0,0,0,0,0, # 68 - 6f
-0,0,0,0,0,0,0,0, # 70 - 77
-0,0,0,0,0,0,0,0, # 78 - 7f
-2,2,2,2,2,2,2,2, # 80 - 87
-2,2,2,2,2,2,2,2, # 88 - 8f
-2,2,2,2,2,2,2,2, # 90 - 97
-2,2,2,2,2,2,2,2, # 98 - 9f
-2,2,2,2,2,2,2,2, # a0 - a7
-2,2,2,2,2,2,2,2, # a8 - af
-2,2,2,2,2,2,2,2, # b0 - b7
-2,2,2,2,2,2,2,2, # b8 - bf
-2,2,2,2,2,2,2,2, # c0 - c7
-2,2,2,2,2,2,2,2, # c8 - cf
-2,2,2,2,2,2,2,2, # d0 - d7
-2,2,2,2,2,2,2,2, # d8 - df
-2,2,2,2,2,2,2,2, # e0 - e7
-2,2,2,2,2,2,2,2, # e8 - ef
-2,2,2,2,2,2,2,2, # f0 - f7
-2,2,2,2,2,2,2,2, # f8 - ff
-)
-
-ISO2022CN_st = (
-eStart, 3,eError,eStart,eStart,eStart,eStart,eStart,# 00-07
-eStart,eError,eError,eError,eError,eError,eError,eError,# 08-0f
-eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,# 10-17
-eItsMe,eItsMe,eItsMe,eError,eError,eError, 4,eError,# 18-1f
-eError,eError,eError,eItsMe,eError,eError,eError,eError,# 20-27
- 5, 6,eError,eError,eError,eError,eError,eError,# 28-2f
-eError,eError,eError,eItsMe,eError,eError,eError,eError,# 30-37
-eError,eError,eError,eError,eError,eItsMe,eError,eStart,# 38-3f
-)
-
-ISO2022CNCharLenTable = (0, 0, 0, 0, 0, 0, 0, 0, 0)
-
-ISO2022CNSMModel = {'classTable': ISO2022CN_cls,
- 'classFactor': 9,
- 'stateTable': ISO2022CN_st,
- 'charLenTable': ISO2022CNCharLenTable,
- 'name': "ISO-2022-CN"}
-
-ISO2022JP_cls = (
-2,0,0,0,0,0,0,0, # 00 - 07
-0,0,0,0,0,0,2,2, # 08 - 0f
-0,0,0,0,0,0,0,0, # 10 - 17
-0,0,0,1,0,0,0,0, # 18 - 1f
-0,0,0,0,7,0,0,0, # 20 - 27
-3,0,0,0,0,0,0,0, # 28 - 2f
-0,0,0,0,0,0,0,0, # 30 - 37
-0,0,0,0,0,0,0,0, # 38 - 3f
-6,0,4,0,8,0,0,0, # 40 - 47
-0,9,5,0,0,0,0,0, # 48 - 4f
-0,0,0,0,0,0,0,0, # 50 - 57
-0,0,0,0,0,0,0,0, # 58 - 5f
-0,0,0,0,0,0,0,0, # 60 - 67
-0,0,0,0,0,0,0,0, # 68 - 6f
-0,0,0,0,0,0,0,0, # 70 - 77
-0,0,0,0,0,0,0,0, # 78 - 7f
-2,2,2,2,2,2,2,2, # 80 - 87
-2,2,2,2,2,2,2,2, # 88 - 8f
-2,2,2,2,2,2,2,2, # 90 - 97
-2,2,2,2,2,2,2,2, # 98 - 9f
-2,2,2,2,2,2,2,2, # a0 - a7
-2,2,2,2,2,2,2,2, # a8 - af
-2,2,2,2,2,2,2,2, # b0 - b7
-2,2,2,2,2,2,2,2, # b8 - bf
-2,2,2,2,2,2,2,2, # c0 - c7
-2,2,2,2,2,2,2,2, # c8 - cf
-2,2,2,2,2,2,2,2, # d0 - d7
-2,2,2,2,2,2,2,2, # d8 - df
-2,2,2,2,2,2,2,2, # e0 - e7
-2,2,2,2,2,2,2,2, # e8 - ef
-2,2,2,2,2,2,2,2, # f0 - f7
-2,2,2,2,2,2,2,2, # f8 - ff
-)
-
-ISO2022JP_st = (
-eStart, 3,eError,eStart,eStart,eStart,eStart,eStart,# 00-07
-eStart,eStart,eError,eError,eError,eError,eError,eError,# 08-0f
-eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,# 10-17
-eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,eError,# 18-1f
-eError, 5,eError,eError,eError, 4,eError,eError,# 20-27
-eError,eError,eError, 6,eItsMe,eError,eItsMe,eError,# 28-2f
-eError,eError,eError,eError,eError,eError,eItsMe,eItsMe,# 30-37
-eError,eError,eError,eItsMe,eError,eError,eError,eError,# 38-3f
-eError,eError,eError,eError,eItsMe,eError,eStart,eStart,# 40-47
-)
-
-ISO2022JPCharLenTable = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
-
-ISO2022JPSMModel = {'classTable': ISO2022JP_cls,
- 'classFactor': 10,
- 'stateTable': ISO2022JP_st,
- 'charLenTable': ISO2022JPCharLenTable,
- 'name': "ISO-2022-JP"}
-
-ISO2022KR_cls = (
-2,0,0,0,0,0,0,0, # 00 - 07
-0,0,0,0,0,0,0,0, # 08 - 0f
-0,0,0,0,0,0,0,0, # 10 - 17
-0,0,0,1,0,0,0,0, # 18 - 1f
-0,0,0,0,3,0,0,0, # 20 - 27
-0,4,0,0,0,0,0,0, # 28 - 2f
-0,0,0,0,0,0,0,0, # 30 - 37
-0,0,0,0,0,0,0,0, # 38 - 3f
-0,0,0,5,0,0,0,0, # 40 - 47
-0,0,0,0,0,0,0,0, # 48 - 4f
-0,0,0,0,0,0,0,0, # 50 - 57
-0,0,0,0,0,0,0,0, # 58 - 5f
-0,0,0,0,0,0,0,0, # 60 - 67
-0,0,0,0,0,0,0,0, # 68 - 6f
-0,0,0,0,0,0,0,0, # 70 - 77
-0,0,0,0,0,0,0,0, # 78 - 7f
-2,2,2,2,2,2,2,2, # 80 - 87
-2,2,2,2,2,2,2,2, # 88 - 8f
-2,2,2,2,2,2,2,2, # 90 - 97
-2,2,2,2,2,2,2,2, # 98 - 9f
-2,2,2,2,2,2,2,2, # a0 - a7
-2,2,2,2,2,2,2,2, # a8 - af
-2,2,2,2,2,2,2,2, # b0 - b7
-2,2,2,2,2,2,2,2, # b8 - bf
-2,2,2,2,2,2,2,2, # c0 - c7
-2,2,2,2,2,2,2,2, # c8 - cf
-2,2,2,2,2,2,2,2, # d0 - d7
-2,2,2,2,2,2,2,2, # d8 - df
-2,2,2,2,2,2,2,2, # e0 - e7
-2,2,2,2,2,2,2,2, # e8 - ef
-2,2,2,2,2,2,2,2, # f0 - f7
-2,2,2,2,2,2,2,2, # f8 - ff
-)
-
-ISO2022KR_st = (
-eStart, 3,eError,eStart,eStart,eStart,eError,eError,# 00-07
-eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,# 08-0f
-eItsMe,eItsMe,eError,eError,eError, 4,eError,eError,# 10-17
-eError,eError,eError,eError, 5,eError,eError,eError,# 18-1f
-eError,eError,eError,eItsMe,eStart,eStart,eStart,eStart,# 20-27
-)
-
-ISO2022KRCharLenTable = (0, 0, 0, 0, 0, 0)
-
-ISO2022KRSMModel = {'classTable': ISO2022KR_cls,
- 'classFactor': 6,
- 'stateTable': ISO2022KR_st,
- 'charLenTable': ISO2022KRCharLenTable,
- 'name': "ISO-2022-KR"}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/eucjpprober.py b/vendor/requests/packages/chardet/eucjpprober.py
deleted file mode 100644
index 8e64fdcc..00000000
--- a/vendor/requests/packages/chardet/eucjpprober.py
+++ /dev/null
@@ -1,90 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-import sys
-from . import constants
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import EUCJPDistributionAnalysis
-from .jpcntx import EUCJPContextAnalysis
-from .mbcssm import EUCJPSMModel
-
-
-class EUCJPProber(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(EUCJPSMModel)
- self._mDistributionAnalyzer = EUCJPDistributionAnalysis()
- self._mContextAnalyzer = EUCJPContextAnalysis()
- self.reset()
-
- def reset(self):
- MultiByteCharSetProber.reset(self)
- self._mContextAnalyzer.reset()
-
- def get_charset_name(self):
- return "EUC-JP"
-
- def feed(self, aBuf):
- aLen = len(aBuf)
- for i in range(0, aLen):
- # PY3K: aBuf is a byte array, so aBuf[i] is an int, not a byte
- codingState = self._mCodingSM.next_state(aBuf[i])
- if codingState == constants.eError:
- if constants._debug:
- sys.stderr.write(self.get_charset_name()
- + ' prober hit error at byte ' + str(i)
- + '\n')
- self._mState = constants.eNotMe
- break
- elif codingState == constants.eItsMe:
- self._mState = constants.eFoundIt
- break
- elif codingState == constants.eStart:
- charLen = self._mCodingSM.get_current_charlen()
- if i == 0:
- self._mLastChar[1] = aBuf[0]
- self._mContextAnalyzer.feed(self._mLastChar, charLen)
- self._mDistributionAnalyzer.feed(self._mLastChar, charLen)
- else:
- self._mContextAnalyzer.feed(aBuf[i - 1:i + 1], charLen)
- self._mDistributionAnalyzer.feed(aBuf[i - 1:i + 1],
- charLen)
-
- self._mLastChar[0] = aBuf[aLen - 1]
-
- if self.get_state() == constants.eDetecting:
- if (self._mContextAnalyzer.got_enough_data() and
- (self.get_confidence() > constants.SHORTCUT_THRESHOLD)):
- self._mState = constants.eFoundIt
-
- return self.get_state()
-
- def get_confidence(self):
- contxtCf = self._mContextAnalyzer.get_confidence()
- distribCf = self._mDistributionAnalyzer.get_confidence()
- return max(contxtCf, distribCf)
diff --git a/vendor/requests/packages/chardet/euckrfreq.py b/vendor/requests/packages/chardet/euckrfreq.py
deleted file mode 100644
index a179e4c2..00000000
--- a/vendor/requests/packages/chardet/euckrfreq.py
+++ /dev/null
@@ -1,596 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# Sampling from about 20M text materials include literature and computer technology
-
-# 128 --> 0.79
-# 256 --> 0.92
-# 512 --> 0.986
-# 1024 --> 0.99944
-# 2048 --> 0.99999
-#
-# Idea Distribution Ratio = 0.98653 / (1-0.98653) = 73.24
-# Random Distribution Ration = 512 / (2350-512) = 0.279.
-#
-# Typical Distribution Ratio
-
-EUCKR_TYPICAL_DISTRIBUTION_RATIO = 6.0
-
-EUCKR_TABLE_SIZE = 2352
-
-# Char to FreqOrder table ,
-EUCKRCharToFreqOrder = ( \
- 13, 130, 120,1396, 481,1719,1720, 328, 609, 212,1721, 707, 400, 299,1722, 87,
-1397,1723, 104, 536,1117,1203,1724,1267, 685,1268, 508,1725,1726,1727,1728,1398,
-1399,1729,1730,1731, 141, 621, 326,1057, 368,1732, 267, 488, 20,1733,1269,1734,
- 945,1400,1735, 47, 904,1270,1736,1737, 773, 248,1738, 409, 313, 786, 429,1739,
- 116, 987, 813,1401, 683, 75,1204, 145,1740,1741,1742,1743, 16, 847, 667, 622,
- 708,1744,1745,1746, 966, 787, 304, 129,1747, 60, 820, 123, 676,1748,1749,1750,
-1751, 617,1752, 626,1753,1754,1755,1756, 653,1757,1758,1759,1760,1761,1762, 856,
- 344,1763,1764,1765,1766, 89, 401, 418, 806, 905, 848,1767,1768,1769, 946,1205,
- 709,1770,1118,1771, 241,1772,1773,1774,1271,1775, 569,1776, 999,1777,1778,1779,
-1780, 337, 751,1058, 28, 628, 254,1781, 177, 906, 270, 349, 891,1079,1782, 19,
-1783, 379,1784, 315,1785, 629, 754,1402, 559,1786, 636, 203,1206,1787, 710, 567,
-1788, 935, 814,1789,1790,1207, 766, 528,1791,1792,1208,1793,1794,1795,1796,1797,
-1403,1798,1799, 533,1059,1404,1405,1156,1406, 936, 884,1080,1800, 351,1801,1802,
-1803,1804,1805, 801,1806,1807,1808,1119,1809,1157, 714, 474,1407,1810, 298, 899,
- 885,1811,1120, 802,1158,1812, 892,1813,1814,1408, 659,1815,1816,1121,1817,1818,
-1819,1820,1821,1822, 319,1823, 594, 545,1824, 815, 937,1209,1825,1826, 573,1409,
-1022,1827,1210,1828,1829,1830,1831,1832,1833, 556, 722, 807,1122,1060,1834, 697,
-1835, 900, 557, 715,1836,1410, 540,1411, 752,1159, 294, 597,1211, 976, 803, 770,
-1412,1837,1838, 39, 794,1413, 358,1839, 371, 925,1840, 453, 661, 788, 531, 723,
- 544,1023,1081, 869, 91,1841, 392, 430, 790, 602,1414, 677,1082, 457,1415,1416,
-1842,1843, 475, 327,1024,1417, 795, 121,1844, 733, 403,1418,1845,1846,1847, 300,
- 119, 711,1212, 627,1848,1272, 207,1849,1850, 796,1213, 382,1851, 519,1852,1083,
- 893,1853,1854,1855, 367, 809, 487, 671,1856, 663,1857,1858, 956, 471, 306, 857,
-1859,1860,1160,1084,1861,1862,1863,1864,1865,1061,1866,1867,1868,1869,1870,1871,
- 282, 96, 574,1872, 502,1085,1873,1214,1874, 907,1875,1876, 827, 977,1419,1420,
-1421, 268,1877,1422,1878,1879,1880, 308,1881, 2, 537,1882,1883,1215,1884,1885,
- 127, 791,1886,1273,1423,1887, 34, 336, 404, 643,1888, 571, 654, 894, 840,1889,
- 0, 886,1274, 122, 575, 260, 908, 938,1890,1275, 410, 316,1891,1892, 100,1893,
-1894,1123, 48,1161,1124,1025,1895, 633, 901,1276,1896,1897, 115, 816,1898, 317,
-1899, 694,1900, 909, 734,1424, 572, 866,1425, 691, 85, 524,1010, 543, 394, 841,
-1901,1902,1903,1026,1904,1905,1906,1907,1908,1909, 30, 451, 651, 988, 310,1910,
-1911,1426, 810,1216, 93,1912,1913,1277,1217,1914, 858, 759, 45, 58, 181, 610,
- 269,1915,1916, 131,1062, 551, 443,1000, 821,1427, 957, 895,1086,1917,1918, 375,
-1919, 359,1920, 687,1921, 822,1922, 293,1923,1924, 40, 662, 118, 692, 29, 939,
- 887, 640, 482, 174,1925, 69,1162, 728,1428, 910,1926,1278,1218,1279, 386, 870,
- 217, 854,1163, 823,1927,1928,1929,1930, 834,1931, 78,1932, 859,1933,1063,1934,
-1935,1936,1937, 438,1164, 208, 595,1938,1939,1940,1941,1219,1125,1942, 280, 888,
-1429,1430,1220,1431,1943,1944,1945,1946,1947,1280, 150, 510,1432,1948,1949,1950,
-1951,1952,1953,1954,1011,1087,1955,1433,1043,1956, 881,1957, 614, 958,1064,1065,
-1221,1958, 638,1001, 860, 967, 896,1434, 989, 492, 553,1281,1165,1959,1282,1002,
-1283,1222,1960,1961,1962,1963, 36, 383, 228, 753, 247, 454,1964, 876, 678,1965,
-1966,1284, 126, 464, 490, 835, 136, 672, 529, 940,1088,1435, 473,1967,1968, 467,
- 50, 390, 227, 587, 279, 378, 598, 792, 968, 240, 151, 160, 849, 882,1126,1285,
- 639,1044, 133, 140, 288, 360, 811, 563,1027, 561, 142, 523,1969,1970,1971, 7,
- 103, 296, 439, 407, 506, 634, 990,1972,1973,1974,1975, 645,1976,1977,1978,1979,
-1980,1981, 236,1982,1436,1983,1984,1089, 192, 828, 618, 518,1166, 333,1127,1985,
- 818,1223,1986,1987,1988,1989,1990,1991,1992,1993, 342,1128,1286, 746, 842,1994,
-1995, 560, 223,1287, 98, 8, 189, 650, 978,1288,1996,1437,1997, 17, 345, 250,
- 423, 277, 234, 512, 226, 97, 289, 42, 167,1998, 201,1999,2000, 843, 836, 824,
- 532, 338, 783,1090, 182, 576, 436,1438,1439, 527, 500,2001, 947, 889,2002,2003,
-2004,2005, 262, 600, 314, 447,2006, 547,2007, 693, 738,1129,2008, 71,1440, 745,
- 619, 688,2009, 829,2010,2011, 147,2012, 33, 948,2013,2014, 74, 224,2015, 61,
- 191, 918, 399, 637,2016,1028,1130, 257, 902,2017,2018,2019,2020,2021,2022,2023,
-2024,2025,2026, 837,2027,2028,2029,2030, 179, 874, 591, 52, 724, 246,2031,2032,
-2033,2034,1167, 969,2035,1289, 630, 605, 911,1091,1168,2036,2037,2038,1441, 912,
-2039, 623,2040,2041, 253,1169,1290,2042,1442, 146, 620, 611, 577, 433,2043,1224,
- 719,1170, 959, 440, 437, 534, 84, 388, 480,1131, 159, 220, 198, 679,2044,1012,
- 819,1066,1443, 113,1225, 194, 318,1003,1029,2045,2046,2047,2048,1067,2049,2050,
-2051,2052,2053, 59, 913, 112,2054, 632,2055, 455, 144, 739,1291,2056, 273, 681,
- 499,2057, 448,2058,2059, 760,2060,2061, 970, 384, 169, 245,1132,2062,2063, 414,
-1444,2064,2065, 41, 235,2066, 157, 252, 877, 568, 919, 789, 580,2067, 725,2068,
-2069,1292,2070,2071,1445,2072,1446,2073,2074, 55, 588, 66,1447, 271,1092,2075,
-1226,2076, 960,1013, 372,2077,2078,2079,2080,2081,1293,2082,2083,2084,2085, 850,
-2086,2087,2088,2089,2090, 186,2091,1068, 180,2092,2093,2094, 109,1227, 522, 606,
-2095, 867,1448,1093, 991,1171, 926, 353,1133,2096, 581,2097,2098,2099,1294,1449,
-1450,2100, 596,1172,1014,1228,2101,1451,1295,1173,1229,2102,2103,1296,1134,1452,
- 949,1135,2104,2105,1094,1453,1454,1455,2106,1095,2107,2108,2109,2110,2111,2112,
-2113,2114,2115,2116,2117, 804,2118,2119,1230,1231, 805,1456, 405,1136,2120,2121,
-2122,2123,2124, 720, 701,1297, 992,1457, 927,1004,2125,2126,2127,2128,2129,2130,
- 22, 417,2131, 303,2132, 385,2133, 971, 520, 513,2134,1174, 73,1096, 231, 274,
- 962,1458, 673,2135,1459,2136, 152,1137,2137,2138,2139,2140,1005,1138,1460,1139,
-2141,2142,2143,2144, 11, 374, 844,2145, 154,1232, 46,1461,2146, 838, 830, 721,
-1233, 106,2147, 90, 428, 462, 578, 566,1175, 352,2148,2149, 538,1234, 124,1298,
-2150,1462, 761, 565,2151, 686,2152, 649,2153, 72, 173,2154, 460, 415,2155,1463,
-2156,1235, 305,2157,2158,2159,2160,2161,2162, 579,2163,2164,2165,2166,2167, 747,
-2168,2169,2170,2171,1464, 669,2172,2173,2174,2175,2176,1465,2177, 23, 530, 285,
-2178, 335, 729,2179, 397,2180,2181,2182,1030,2183,2184, 698,2185,2186, 325,2187,
-2188, 369,2189, 799,1097,1015, 348,2190,1069, 680,2191, 851,1466,2192,2193, 10,
-2194, 613, 424,2195, 979, 108, 449, 589, 27, 172, 81,1031, 80, 774, 281, 350,
-1032, 525, 301, 582,1176,2196, 674,1045,2197,2198,1467, 730, 762,2199,2200,2201,
-2202,1468,2203, 993,2204,2205, 266,1070, 963,1140,2206,2207,2208, 664,1098, 972,
-2209,2210,2211,1177,1469,1470, 871,2212,2213,2214,2215,2216,1471,2217,2218,2219,
-2220,2221,2222,2223,2224,2225,2226,2227,1472,1236,2228,2229,2230,2231,2232,2233,
-2234,2235,1299,2236,2237, 200,2238, 477, 373,2239,2240, 731, 825, 777,2241,2242,
-2243, 521, 486, 548,2244,2245,2246,1473,1300, 53, 549, 137, 875, 76, 158,2247,
-1301,1474, 469, 396,1016, 278, 712,2248, 321, 442, 503, 767, 744, 941,1237,1178,
-1475,2249, 82, 178,1141,1179, 973,2250,1302,2251, 297,2252,2253, 570,2254,2255,
-2256, 18, 450, 206,2257, 290, 292,1142,2258, 511, 162, 99, 346, 164, 735,2259,
-1476,1477, 4, 554, 343, 798,1099,2260,1100,2261, 43, 171,1303, 139, 215,2262,
-2263, 717, 775,2264,1033, 322, 216,2265, 831,2266, 149,2267,1304,2268,2269, 702,
-1238, 135, 845, 347, 309,2270, 484,2271, 878, 655, 238,1006,1478,2272, 67,2273,
- 295,2274,2275, 461,2276, 478, 942, 412,2277,1034,2278,2279,2280, 265,2281, 541,
-2282,2283,2284,2285,2286, 70, 852,1071,2287,2288,2289,2290, 21, 56, 509, 117,
- 432,2291,2292, 331, 980, 552,1101, 148, 284, 105, 393,1180,1239, 755,2293, 187,
-2294,1046,1479,2295, 340,2296, 63,1047, 230,2297,2298,1305, 763,1306, 101, 800,
- 808, 494,2299,2300,2301, 903,2302, 37,1072, 14, 5,2303, 79, 675,2304, 312,
-2305,2306,2307,2308,2309,1480, 6,1307,2310,2311,2312, 1, 470, 35, 24, 229,
-2313, 695, 210, 86, 778, 15, 784, 592, 779, 32, 77, 855, 964,2314, 259,2315,
- 501, 380,2316,2317, 83, 981, 153, 689,1308,1481,1482,1483,2318,2319, 716,1484,
-2320,2321,2322,2323,2324,2325,1485,2326,2327, 128, 57, 68, 261,1048, 211, 170,
-1240, 31,2328, 51, 435, 742,2329,2330,2331, 635,2332, 264, 456,2333,2334,2335,
- 425,2336,1486, 143, 507, 263, 943,2337, 363, 920,1487, 256,1488,1102, 243, 601,
-1489,2338,2339,2340,2341,2342,2343,2344, 861,2345,2346,2347,2348,2349,2350, 395,
-2351,1490,1491, 62, 535, 166, 225,2352,2353, 668, 419,1241, 138, 604, 928,2354,
-1181,2355,1492,1493,2356,2357,2358,1143,2359, 696,2360, 387, 307,1309, 682, 476,
-2361,2362, 332, 12, 222, 156,2363, 232,2364, 641, 276, 656, 517,1494,1495,1035,
- 416, 736,1496,2365,1017, 586,2366,2367,2368,1497,2369, 242,2370,2371,2372,1498,
-2373, 965, 713,2374,2375,2376,2377, 740, 982,1499, 944,1500,1007,2378,2379,1310,
-1501,2380,2381,2382, 785, 329,2383,2384,1502,2385,2386,2387, 932,2388,1503,2389,
-2390,2391,2392,1242,2393,2394,2395,2396,2397, 994, 950,2398,2399,2400,2401,1504,
-1311,2402,2403,2404,2405,1049, 749,2406,2407, 853, 718,1144,1312,2408,1182,1505,
-2409,2410, 255, 516, 479, 564, 550, 214,1506,1507,1313, 413, 239, 444, 339,1145,
-1036,1508,1509,1314,1037,1510,1315,2411,1511,2412,2413,2414, 176, 703, 497, 624,
- 593, 921, 302,2415, 341, 165,1103,1512,2416,1513,2417,2418,2419, 376,2420, 700,
-2421,2422,2423, 258, 768,1316,2424,1183,2425, 995, 608,2426,2427,2428,2429, 221,
-2430,2431,2432,2433,2434,2435,2436,2437, 195, 323, 726, 188, 897, 983,1317, 377,
- 644,1050, 879,2438, 452,2439,2440,2441,2442,2443,2444, 914,2445,2446,2447,2448,
- 915, 489,2449,1514,1184,2450,2451, 515, 64, 427, 495,2452, 583,2453, 483, 485,
-1038, 562, 213,1515, 748, 666,2454,2455,2456,2457, 334,2458, 780, 996,1008, 705,
-1243,2459,2460,2461,2462,2463, 114,2464, 493,1146, 366, 163,1516, 961,1104,2465,
- 291,2466,1318,1105,2467,1517, 365,2468, 355, 951,1244,2469,1319,2470, 631,2471,
-2472, 218,1320, 364, 320, 756,1518,1519,1321,1520,1322,2473,2474,2475,2476, 997,
-2477,2478,2479,2480, 665,1185,2481, 916,1521,2482,2483,2484, 584, 684,2485,2486,
- 797,2487,1051,1186,2488,2489,2490,1522,2491,2492, 370,2493,1039,1187, 65,2494,
- 434, 205, 463,1188,2495, 125, 812, 391, 402, 826, 699, 286, 398, 155, 781, 771,
- 585,2496, 590, 505,1073,2497, 599, 244, 219, 917,1018, 952, 646,1523,2498,1323,
-2499,2500, 49, 984, 354, 741,2501, 625,2502,1324,2503,1019, 190, 357, 757, 491,
- 95, 782, 868,2504,2505,2506,2507,2508,2509, 134,1524,1074, 422,1525, 898,2510,
- 161,2511,2512,2513,2514, 769,2515,1526,2516,2517, 411,1325,2518, 472,1527,2519,
-2520,2521,2522,2523,2524, 985,2525,2526,2527,2528,2529,2530, 764,2531,1245,2532,
-2533, 25, 204, 311,2534, 496,2535,1052,2536,2537,2538,2539,2540,2541,2542, 199,
- 704, 504, 468, 758, 657,1528, 196, 44, 839,1246, 272, 750,2543, 765, 862,2544,
-2545,1326,2546, 132, 615, 933,2547, 732,2548,2549,2550,1189,1529,2551, 283,1247,
-1053, 607, 929,2552,2553,2554, 930, 183, 872, 616,1040,1147,2555,1148,1020, 441,
- 249,1075,2556,2557,2558, 466, 743,2559,2560,2561, 92, 514, 426, 420, 526,2562,
-2563,2564,2565,2566,2567,2568, 185,2569,2570,2571,2572, 776,1530, 658,2573, 362,
-2574, 361, 922,1076, 793,2575,2576,2577,2578,2579,2580,1531, 251,2581,2582,2583,
-2584,1532, 54, 612, 237,1327,2585,2586, 275, 408, 647, 111,2587,1533,1106, 465,
- 3, 458, 9, 38,2588, 107, 110, 890, 209, 26, 737, 498,2589,1534,2590, 431,
- 202, 88,1535, 356, 287,1107, 660,1149,2591, 381,1536, 986,1150, 445,1248,1151,
- 974,2592,2593, 846,2594, 446, 953, 184,1249,1250, 727,2595, 923, 193, 883,2596,
-2597,2598, 102, 324, 539, 817,2599, 421,1041,2600, 832,2601, 94, 175, 197, 406,
-2602, 459,2603,2604,2605,2606,2607, 330, 555,2608,2609,2610, 706,1108, 389,2611,
-2612,2613,2614, 233,2615, 833, 558, 931, 954,1251,2616,2617,1537, 546,2618,2619,
-1009,2620,2621,2622,1538, 690,1328,2623, 955,2624,1539,2625,2626, 772,2627,2628,
-2629,2630,2631, 924, 648, 863, 603,2632,2633, 934,1540, 864, 865,2634, 642,1042,
- 670,1190,2635,2636,2637,2638, 168,2639, 652, 873, 542,1054,1541,2640,2641,2642, # 512, 256
-#Everything below is of no interest for detection purpose
-2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,
-2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,
-2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,
-2691,2692,2693,2694,2695,2696,2697,2698,2699,1542, 880,2700,2701,2702,2703,2704,
-2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,
-2721,2722,2723,2724,2725,1543,2726,2727,2728,2729,2730,2731,2732,1544,2733,2734,
-2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,
-2751,2752,2753,2754,1545,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,
-2766,1546,2767,1547,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,
-2780,2781,2782,2783,2784,2785,2786,1548,2787,2788,2789,1109,2790,2791,2792,2793,
-2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,
-2810,2811,2812,1329,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,
-2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,
-2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,
-1549,2857,2858,2859,2860,1550,2861,2862,1551,2863,2864,2865,2866,2867,2868,2869,
-2870,2871,2872,2873,2874,1110,1330,2875,2876,2877,2878,2879,2880,2881,2882,2883,
-2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,
-2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,
-2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,1331,
-2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,1552,2944,2945,
-2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,
-2962,2963,2964,1252,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,
-2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,
-2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,
-3009,3010,3011,3012,1553,3013,3014,3015,3016,3017,1554,3018,1332,3019,3020,3021,
-3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,
-3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,1555,3051,3052,
-3053,1556,1557,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,
-3067,1558,3068,3069,3070,3071,3072,3073,3074,3075,3076,1559,3077,3078,3079,3080,
-3081,3082,3083,1253,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,
-3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,1152,3109,3110,
-3111,3112,3113,1560,3114,3115,3116,3117,1111,3118,3119,3120,3121,3122,3123,3124,
-3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,
-3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,
-3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,
-3173,3174,3175,3176,1333,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,
-3188,3189,1561,3190,3191,1334,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,
-3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,
-3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,
-3234,1562,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,
-3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,
-3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,1563,3278,3279,
-3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,
-3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,
-3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,
-3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,
-3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,
-3360,3361,3362,3363,3364,1335,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,
-3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,1336,3388,3389,
-3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,
-3406,3407,3408,3409,3410,3411,3412,3413,3414,1337,3415,3416,3417,3418,3419,1338,
-3420,3421,3422,1564,1565,3423,3424,3425,3426,3427,3428,3429,3430,3431,1254,3432,
-3433,3434,1339,3435,3436,3437,3438,3439,1566,3440,3441,3442,3443,3444,3445,3446,
-3447,3448,3449,3450,3451,3452,3453,3454,1255,3455,3456,3457,3458,3459,1567,1191,
-3460,1568,1569,3461,3462,3463,1570,3464,3465,3466,3467,3468,1571,3469,3470,3471,
-3472,3473,1572,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,
-1340,3487,3488,3489,3490,3491,3492,1021,3493,3494,3495,3496,3497,3498,1573,3499,
-1341,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,1342,3512,3513,
-3514,3515,3516,1574,1343,3517,3518,3519,1575,3520,1576,3521,3522,3523,3524,3525,
-3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,
-3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,
-3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,
-3574,3575,3576,3577,3578,3579,3580,1577,3581,3582,1578,3583,3584,3585,3586,3587,
-3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,
-3604,1579,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,
-3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,1580,3630,3631,1581,3632,
-3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,
-3649,3650,3651,3652,3653,3654,3655,3656,1582,3657,3658,3659,3660,3661,3662,3663,
-3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,
-3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,
-3696,3697,3698,3699,3700,1192,3701,3702,3703,3704,1256,3705,3706,3707,3708,1583,
-1257,3709,3710,3711,3712,3713,3714,3715,3716,1584,3717,3718,3719,3720,3721,3722,
-3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,
-3739,3740,3741,3742,3743,3744,3745,1344,3746,3747,3748,3749,3750,3751,3752,3753,
-3754,3755,3756,1585,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,1586,3767,
-3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,1345,3779,3780,3781,3782,
-3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,1346,1587,3796,
-3797,1588,3798,3799,3800,3801,3802,3803,3804,3805,3806,1347,3807,3808,3809,3810,
-3811,1589,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,1590,3822,3823,1591,
-1348,3824,3825,3826,3827,3828,3829,3830,1592,3831,3832,1593,3833,3834,3835,3836,
-3837,3838,3839,3840,3841,3842,3843,3844,1349,3845,3846,3847,3848,3849,3850,3851,
-3852,3853,3854,3855,3856,3857,3858,1594,3859,3860,3861,3862,3863,3864,3865,3866,
-3867,3868,3869,1595,3870,3871,3872,3873,1596,3874,3875,3876,3877,3878,3879,3880,
-3881,3882,3883,3884,3885,3886,1597,3887,3888,3889,3890,3891,3892,3893,3894,3895,
-1598,3896,3897,3898,1599,1600,3899,1350,3900,1351,3901,3902,1352,3903,3904,3905,
-3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,
-3922,3923,3924,1258,3925,3926,3927,3928,3929,3930,3931,1193,3932,1601,3933,3934,
-3935,3936,3937,3938,3939,3940,3941,3942,3943,1602,3944,3945,3946,3947,3948,1603,
-3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,
-3965,1604,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,1353,3978,
-3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,1354,3992,3993,
-3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,
-4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,1355,4024,
-4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,
-1605,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,
-4056,4057,4058,4059,4060,1606,4061,4062,4063,4064,1607,4065,4066,4067,4068,4069,
-4070,4071,4072,4073,4074,4075,4076,1194,4077,4078,1608,4079,4080,4081,4082,4083,
-4084,4085,4086,4087,1609,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,
-4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,1259,4109,4110,4111,4112,4113,
-4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,1195,4125,4126,4127,1610,
-4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,1356,4138,4139,4140,4141,4142,
-4143,4144,1611,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,
-4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,
-4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,
-4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,
-4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,1612,4220,
-4221,4222,4223,4224,4225,4226,4227,1357,4228,1613,4229,4230,4231,4232,4233,4234,
-4235,4236,4237,4238,4239,4240,4241,4242,4243,1614,4244,4245,4246,4247,4248,4249,
-4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,
-4266,4267,4268,4269,4270,1196,1358,4271,4272,4273,4274,4275,4276,4277,4278,4279,
-4280,4281,4282,4283,4284,4285,4286,4287,1615,4288,4289,4290,4291,4292,4293,4294,
-4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,
-4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,
-4327,4328,4329,4330,4331,4332,4333,4334,1616,4335,4336,4337,4338,4339,4340,4341,
-4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,
-4358,4359,4360,1617,4361,4362,4363,4364,4365,1618,4366,4367,4368,4369,4370,4371,
-4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,
-4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,
-4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,1619,4417,4418,
-4419,4420,4421,4422,4423,4424,4425,1112,4426,4427,4428,4429,4430,1620,4431,4432,
-4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,1260,1261,4443,4444,4445,4446,
-4447,4448,4449,4450,4451,4452,4453,4454,4455,1359,4456,4457,4458,4459,4460,4461,
-4462,4463,4464,4465,1621,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,
-4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,1055,4490,4491,
-4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,
-4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,1622,4519,4520,4521,1623,
-4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,1360,4536,
-4537,4538,4539,4540,4541,4542,4543, 975,4544,4545,4546,4547,4548,4549,4550,4551,
-4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,
-4568,4569,4570,4571,1624,4572,4573,4574,4575,4576,1625,4577,4578,4579,4580,4581,
-4582,4583,4584,1626,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,1627,
-4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,
-4612,4613,4614,4615,1628,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,
-4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,
-4643,4644,4645,4646,4647,4648,4649,1361,4650,4651,4652,4653,4654,4655,4656,4657,
-4658,4659,4660,4661,1362,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,
-4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,1629,4683,4684,4685,4686,4687,
-1630,4688,4689,4690,4691,1153,4692,4693,4694,1113,4695,4696,4697,4698,4699,4700,
-4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,1197,4712,4713,4714,4715,
-4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,
-4732,4733,4734,4735,1631,4736,1632,4737,4738,4739,4740,4741,4742,4743,4744,1633,
-4745,4746,4747,4748,4749,1262,4750,4751,4752,4753,4754,1363,4755,4756,4757,4758,
-4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,1634,4769,4770,4771,4772,4773,
-4774,4775,4776,4777,4778,1635,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,
-4789,1636,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,
-4804,4805,4806,1637,4807,4808,4809,1638,4810,4811,4812,4813,4814,4815,4816,4817,
-4818,1639,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,
-4833,1077,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,
-4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,
-4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,
-4880,4881,4882,4883,1640,4884,4885,1641,4886,4887,4888,4889,4890,4891,4892,4893,
-4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,
-4910,4911,1642,4912,4913,4914,1364,4915,4916,4917,4918,4919,4920,4921,4922,4923,
-4924,4925,4926,4927,4928,4929,4930,4931,1643,4932,4933,4934,4935,4936,4937,4938,
-4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,
-4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,
-4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,1644,4981,4982,4983,4984,1645,
-4985,4986,1646,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,
-5000,5001,5002,5003,5004,5005,1647,5006,1648,5007,5008,5009,5010,5011,5012,1078,
-5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,
-1365,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,1649,5040,5041,5042,
-5043,5044,5045,1366,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,1650,5056,
-5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,
-5073,5074,5075,5076,5077,1651,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,
-5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102,5103,
-5104,5105,5106,5107,5108,5109,5110,1652,5111,5112,5113,5114,5115,5116,5117,5118,
-1367,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,1653,5130,5131,5132,
-5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,
-5149,1368,5150,1654,5151,1369,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,
-5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,
-5178,1370,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,
-5193,5194,5195,5196,5197,5198,1655,5199,5200,5201,5202,1656,5203,5204,5205,5206,
-1371,5207,1372,5208,5209,5210,5211,1373,5212,5213,1374,5214,5215,5216,5217,5218,
-5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,
-5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,1657,5248,5249,
-5250,5251,1658,1263,5252,5253,5254,5255,5256,1375,5257,5258,5259,5260,5261,5262,
-5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,
-5279,5280,5281,5282,5283,1659,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,
-5294,5295,5296,5297,5298,5299,5300,1660,5301,5302,5303,5304,5305,5306,5307,5308,
-5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,1376,5322,5323,
-5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,1198,5334,5335,5336,5337,5338,
-5339,5340,5341,5342,5343,1661,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,
-5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,
-5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,
-5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,1264,5399,5400,
-5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,1662,5413,5414,5415,
-5416,1663,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,
-5431,5432,5433,5434,5435,5436,5437,5438,1664,5439,5440,5441,5442,5443,5444,5445,
-5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,
-5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,
-5478,1154,5479,5480,5481,5482,5483,5484,5485,1665,5486,5487,5488,5489,5490,5491,
-5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5507,
-5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,
-5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,
-5540,5541,5542,5543,5544,5545,5546,5547,5548,1377,5549,5550,5551,5552,5553,5554,
-5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,
-1114,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,
-5586,5587,5588,5589,5590,5591,5592,1378,5593,5594,5595,5596,5597,5598,5599,5600,
-5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,1379,5615,
-5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,
-5632,5633,5634,1380,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,
-5647,5648,5649,1381,1056,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,
-1666,5661,5662,5663,5664,5665,5666,5667,5668,1667,5669,1668,5670,5671,5672,5673,
-5674,5675,5676,5677,5678,1155,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,
-5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,1669,5699,5700,5701,5702,5703,
-5704,5705,1670,5706,5707,5708,5709,5710,1671,5711,5712,5713,5714,1382,5715,5716,
-5717,5718,5719,5720,5721,5722,5723,5724,5725,1672,5726,5727,1673,1674,5728,5729,
-5730,5731,5732,5733,5734,5735,5736,1675,5737,5738,5739,5740,5741,5742,5743,5744,
-1676,5745,5746,5747,5748,5749,5750,5751,1383,5752,5753,5754,5755,5756,5757,5758,
-5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,1677,5769,5770,5771,5772,5773,
-1678,5774,5775,5776, 998,5777,5778,5779,5780,5781,5782,5783,5784,5785,1384,5786,
-5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,5800,1679,5801,
-5802,5803,1115,1116,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,
-5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,
-5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,
-5848,5849,5850,5851,5852,5853,5854,5855,1680,5856,5857,5858,5859,5860,5861,5862,
-5863,5864,1681,5865,5866,5867,1682,5868,5869,5870,5871,5872,5873,5874,5875,5876,
-5877,5878,5879,1683,5880,1684,5881,5882,5883,5884,1685,5885,5886,5887,5888,5889,
-5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,
-5906,5907,1686,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,
-5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,1687,
-5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,
-5952,1688,1689,5953,1199,5954,5955,5956,5957,5958,5959,5960,5961,1690,5962,5963,
-5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,
-5980,5981,1385,5982,1386,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,
-5994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,
-6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,
-6026,6027,1265,6028,6029,1691,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,
-6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055,
-6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,
-6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,1692,6085,6086,
-6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100,6101,6102,
-6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,
-6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,1693,6132,6133,
-6134,6135,6136,1694,6137,6138,6139,6140,6141,1695,6142,6143,6144,6145,6146,6147,
-6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,
-6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,
-6180,6181,6182,6183,6184,6185,1696,6186,6187,6188,6189,6190,6191,6192,6193,6194,
-6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,
-6211,6212,6213,6214,6215,6216,6217,6218,6219,1697,6220,6221,6222,6223,6224,6225,
-6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,
-6242,6243,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,1698,6254,6255,6256,
-6257,6258,6259,6260,6261,6262,6263,1200,6264,6265,6266,6267,6268,6269,6270,6271, #1024
-6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,
-6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,1699,
-6303,6304,1700,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,
-6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,
-6334,6335,6336,6337,6338,6339,1701,6340,6341,6342,6343,6344,1387,6345,6346,6347,
-6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,
-6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,
-6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,
-6396,6397,6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,
-6412,6413,1702,6414,6415,6416,6417,6418,6419,6420,6421,6422,1703,6423,6424,6425,
-6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,1704,6439,6440,
-6441,6442,6443,6444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,
-6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,
-6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,
-6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,1266,
-6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,
-6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,
-6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,6550,6551,
-1705,1706,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,
-6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,
-6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,
-6598,6599,6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,
-6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,
-6630,6631,6632,6633,6634,6635,6636,6637,1388,6638,6639,6640,6641,6642,6643,6644,
-1707,6645,6646,6647,6648,6649,6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,
-6660,6661,6662,6663,1708,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,
-1201,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,
-6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,6700,6701,6702,6703,6704,6705,
-6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,
-6722,6723,6724,6725,1389,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,
-1390,1709,6737,6738,6739,6740,6741,6742,1710,6743,6744,6745,6746,1391,6747,6748,
-6749,6750,6751,6752,6753,6754,6755,6756,6757,1392,6758,6759,6760,6761,6762,6763,
-6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,
-6780,1202,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,
-6795,6796,6797,6798,6799,6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,1711,
-6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,
-6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,1393,6837,6838,6839,6840,
-6841,6842,6843,6844,6845,6846,6847,6848,6849,6850,6851,6852,6853,6854,6855,6856,
-6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,
-6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,
-6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,6900,6901,6902,1712,6903,
-6904,6905,6906,6907,6908,6909,6910,1713,6911,6912,6913,6914,6915,6916,6917,6918,
-6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,
-6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,
-6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,
-6967,6968,6969,6970,6971,6972,6973,6974,1714,6975,6976,6977,6978,6979,6980,6981,
-6982,6983,6984,6985,6986,6987,6988,1394,6989,6990,6991,6992,6993,6994,6995,6996,
-6997,6998,6999,7000,1715,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,
-7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,
-7028,1716,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,
-7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,
-7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,
-7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,
-7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105,7106,
-7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,
-7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,
-7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,
-7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,
-7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,
-7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,7200,7201,7202,
-7203,7204,7205,7206,7207,1395,7208,7209,7210,7211,7212,7213,1717,7214,7215,7216,
-7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,
-7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,
-7249,7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,
-7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,
-7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,
-7297,7298,7299,7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,
-7313,1718,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,
-7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,
-7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,
-7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,
-7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,
-7392,7393,7394,7395,7396,7397,7398,7399,7400,7401,7402,7403,7404,7405,7406,7407,
-7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,
-7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,
-7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,7450,7451,7452,7453,7454,7455,
-7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,
-7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,
-7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,
-7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,
-7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,
-7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,7550,7551,
-7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,
-7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,
-7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,
-7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,
-7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,
-7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,
-7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,
-7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,
-7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,
-7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706,7707,7708,7709,7710,7711,
-7712,7713,7714,7715,7716,7717,7718,7719,7720,7721,7722,7723,7724,7725,7726,7727,
-7728,7729,7730,7731,7732,7733,7734,7735,7736,7737,7738,7739,7740,7741,7742,7743,
-7744,7745,7746,7747,7748,7749,7750,7751,7752,7753,7754,7755,7756,7757,7758,7759,
-7760,7761,7762,7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,
-7776,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,
-7792,7793,7794,7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,7806,7807,
-7808,7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,
-7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,
-7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,
-7856,7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,
-7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,
-7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,
-7904,7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,
-7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935,
-7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951,
-7952,7953,7954,7955,7956,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,
-7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983,
-7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999,
-8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,
-8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,
-8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,
-8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,
-8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,
-8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,
-8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,
-8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127,
-8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,
-8144,8145,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,
-8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,
-8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,
-8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,
-8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,
-8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,
-8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,
-8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,
-8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,
-8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,
-8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,
-8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,
-8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,
-8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,
-8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,
-8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,
-8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,
-8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,
-8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,
-8448,8449,8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,
-8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,
-8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,
-8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,
-8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,
-8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,
-8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,
-8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,
-8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,
-8592,8593,8594,8595,8596,8597,8598,8599,8600,8601,8602,8603,8604,8605,8606,8607,
-8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,
-8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,
-8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,
-8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,
-8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,
-8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,
-8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,
-8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,
-8736,8737,8738,8739,8740,8741)
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/euckrprober.py b/vendor/requests/packages/chardet/euckrprober.py
deleted file mode 100644
index 5982a46b..00000000
--- a/vendor/requests/packages/chardet/euckrprober.py
+++ /dev/null
@@ -1,42 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import EUCKRDistributionAnalysis
-from .mbcssm import EUCKRSMModel
-
-
-class EUCKRProber(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(EUCKRSMModel)
- self._mDistributionAnalyzer = EUCKRDistributionAnalysis()
- self.reset()
-
- def get_charset_name(self):
- return "EUC-KR"
diff --git a/vendor/requests/packages/chardet/euctwfreq.py b/vendor/requests/packages/chardet/euctwfreq.py
deleted file mode 100644
index 576e7504..00000000
--- a/vendor/requests/packages/chardet/euctwfreq.py
+++ /dev/null
@@ -1,428 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# EUCTW frequency table
-# Converted from big5 work
-# by Taiwan's Mandarin Promotion Council
-#
-
-# 128 --> 0.42261
-# 256 --> 0.57851
-# 512 --> 0.74851
-# 1024 --> 0.89384
-# 2048 --> 0.97583
-#
-# Idea Distribution Ratio = 0.74851/(1-0.74851) =2.98
-# Random Distribution Ration = 512/(5401-512)=0.105
-#
-# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR
-
-EUCTW_TYPICAL_DISTRIBUTION_RATIO = 0.75
-
-# Char to FreqOrder table ,
-EUCTW_TABLE_SIZE = 8102
-
-EUCTWCharToFreqOrder = (
- 1,1800,1506, 255,1431, 198, 9, 82, 6,7310, 177, 202,3615,1256,2808, 110, # 2742
-3735, 33,3241, 261, 76, 44,2113, 16,2931,2184,1176, 659,3868, 26,3404,2643, # 2758
-1198,3869,3313,4060, 410,2211, 302, 590, 361,1963, 8, 204, 58,4296,7311,1931, # 2774
- 63,7312,7313, 317,1614, 75, 222, 159,4061,2412,1480,7314,3500,3068, 224,2809, # 2790
-3616, 3, 10,3870,1471, 29,2774,1135,2852,1939, 873, 130,3242,1123, 312,7315, # 2806
-4297,2051, 507, 252, 682,7316, 142,1914, 124, 206,2932, 34,3501,3173, 64, 604, # 2822
-7317,2494,1976,1977, 155,1990, 645, 641,1606,7318,3405, 337, 72, 406,7319, 80, # 2838
- 630, 238,3174,1509, 263, 939,1092,2644, 756,1440,1094,3406, 449, 69,2969, 591, # 2854
- 179,2095, 471, 115,2034,1843, 60, 50,2970, 134, 806,1868, 734,2035,3407, 180, # 2870
- 995,1607, 156, 537,2893, 688,7320, 319,1305, 779,2144, 514,2374, 298,4298, 359, # 2886
-2495, 90,2707,1338, 663, 11, 906,1099,2545, 20,2436, 182, 532,1716,7321, 732, # 2902
-1376,4062,1311,1420,3175, 25,2312,1056, 113, 399, 382,1949, 242,3408,2467, 529, # 2918
-3243, 475,1447,3617,7322, 117, 21, 656, 810,1297,2295,2329,3502,7323, 126,4063, # 2934
- 706, 456, 150, 613,4299, 71,1118,2036,4064, 145,3069, 85, 835, 486,2114,1246, # 2950
-1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,7324,2127,2354, 347,3736, 221, # 2966
-3503,3110,7325,1955,1153,4065, 83, 296,1199,3070, 192, 624, 93,7326, 822,1897, # 2982
-2810,3111, 795,2064, 991,1554,1542,1592, 27, 43,2853, 859, 139,1456, 860,4300, # 2998
- 437, 712,3871, 164,2392,3112, 695, 211,3017,2096, 195,3872,1608,3504,3505,3618, # 3014
-3873, 234, 811,2971,2097,3874,2229,1441,3506,1615,2375, 668,2076,1638, 305, 228, # 3030
-1664,4301, 467, 415,7327, 262,2098,1593, 239, 108, 300, 200,1033, 512,1247,2077, # 3046
-7328,7329,2173,3176,3619,2673, 593, 845,1062,3244, 88,1723,2037,3875,1950, 212, # 3062
- 266, 152, 149, 468,1898,4066,4302, 77, 187,7330,3018, 37, 5,2972,7331,3876, # 3078
-7332,7333, 39,2517,4303,2894,3177,2078, 55, 148, 74,4304, 545, 483,1474,1029, # 3094
-1665, 217,1869,1531,3113,1104,2645,4067, 24, 172,3507, 900,3877,3508,3509,4305, # 3110
- 32,1408,2811,1312, 329, 487,2355,2247,2708, 784,2674, 4,3019,3314,1427,1788, # 3126
- 188, 109, 499,7334,3620,1717,1789, 888,1217,3020,4306,7335,3510,7336,3315,1520, # 3142
-3621,3878, 196,1034, 775,7337,7338, 929,1815, 249, 439, 38,7339,1063,7340, 794, # 3158
-3879,1435,2296, 46, 178,3245,2065,7341,2376,7342, 214,1709,4307, 804, 35, 707, # 3174
- 324,3622,1601,2546, 140, 459,4068,7343,7344,1365, 839, 272, 978,2257,2572,3409, # 3190
-2128,1363,3623,1423, 697, 100,3071, 48, 70,1231, 495,3114,2193,7345,1294,7346, # 3206
-2079, 462, 586,1042,3246, 853, 256, 988, 185,2377,3410,1698, 434,1084,7347,3411, # 3222
- 314,2615,2775,4308,2330,2331, 569,2280, 637,1816,2518, 757,1162,1878,1616,3412, # 3238
- 287,1577,2115, 768,4309,1671,2854,3511,2519,1321,3737, 909,2413,7348,4069, 933, # 3254
-3738,7349,2052,2356,1222,4310, 765,2414,1322, 786,4311,7350,1919,1462,1677,2895, # 3270
-1699,7351,4312,1424,2437,3115,3624,2590,3316,1774,1940,3413,3880,4070, 309,1369, # 3286
-1130,2812, 364,2230,1653,1299,3881,3512,3882,3883,2646, 525,1085,3021, 902,2000, # 3302
-1475, 964,4313, 421,1844,1415,1057,2281, 940,1364,3116, 376,4314,4315,1381, 7, # 3318
-2520, 983,2378, 336,1710,2675,1845, 321,3414, 559,1131,3022,2742,1808,1132,1313, # 3334
- 265,1481,1857,7352, 352,1203,2813,3247, 167,1089, 420,2814, 776, 792,1724,3513, # 3350
-4071,2438,3248,7353,4072,7354, 446, 229, 333,2743, 901,3739,1200,1557,4316,2647, # 3366
-1920, 395,2744,2676,3740,4073,1835, 125, 916,3178,2616,4317,7355,7356,3741,7357, # 3382
-7358,7359,4318,3117,3625,1133,2547,1757,3415,1510,2313,1409,3514,7360,2145, 438, # 3398
-2591,2896,2379,3317,1068, 958,3023, 461, 311,2855,2677,4074,1915,3179,4075,1978, # 3414
- 383, 750,2745,2617,4076, 274, 539, 385,1278,1442,7361,1154,1964, 384, 561, 210, # 3430
- 98,1295,2548,3515,7362,1711,2415,1482,3416,3884,2897,1257, 129,7363,3742, 642, # 3446
- 523,2776,2777,2648,7364, 141,2231,1333, 68, 176, 441, 876, 907,4077, 603,2592, # 3462
- 710, 171,3417, 404, 549, 18,3118,2393,1410,3626,1666,7365,3516,4319,2898,4320, # 3478
-7366,2973, 368,7367, 146, 366, 99, 871,3627,1543, 748, 807,1586,1185, 22,2258, # 3494
- 379,3743,3180,7368,3181, 505,1941,2618,1991,1382,2314,7369, 380,2357, 218, 702, # 3510
-1817,1248,3418,3024,3517,3318,3249,7370,2974,3628, 930,3250,3744,7371, 59,7372, # 3526
- 585, 601,4078, 497,3419,1112,1314,4321,1801,7373,1223,1472,2174,7374, 749,1836, # 3542
- 690,1899,3745,1772,3885,1476, 429,1043,1790,2232,2116, 917,4079, 447,1086,1629, # 3558
-7375, 556,7376,7377,2020,1654, 844,1090, 105, 550, 966,1758,2815,1008,1782, 686, # 3574
-1095,7378,2282, 793,1602,7379,3518,2593,4322,4080,2933,2297,4323,3746, 980,2496, # 3590
- 544, 353, 527,4324, 908,2678,2899,7380, 381,2619,1942,1348,7381,1341,1252, 560, # 3606
-3072,7382,3420,2856,7383,2053, 973, 886,2080, 143,4325,7384,7385, 157,3886, 496, # 3622
-4081, 57, 840, 540,2038,4326,4327,3421,2117,1445, 970,2259,1748,1965,2081,4082, # 3638
-3119,1234,1775,3251,2816,3629, 773,1206,2129,1066,2039,1326,3887,1738,1725,4083, # 3654
- 279,3120, 51,1544,2594, 423,1578,2130,2066, 173,4328,1879,7386,7387,1583, 264, # 3670
- 610,3630,4329,2439, 280, 154,7388,7389,7390,1739, 338,1282,3073, 693,2857,1411, # 3686
-1074,3747,2440,7391,4330,7392,7393,1240, 952,2394,7394,2900,1538,2679, 685,1483, # 3702
-4084,2468,1436, 953,4085,2054,4331, 671,2395, 79,4086,2441,3252, 608, 567,2680, # 3718
-3422,4087,4088,1691, 393,1261,1791,2396,7395,4332,7396,7397,7398,7399,1383,1672, # 3734
-3748,3182,1464, 522,1119, 661,1150, 216, 675,4333,3888,1432,3519, 609,4334,2681, # 3750
-2397,7400,7401,7402,4089,3025, 0,7403,2469, 315, 231,2442, 301,3319,4335,2380, # 3766
-7404, 233,4090,3631,1818,4336,4337,7405, 96,1776,1315,2082,7406, 257,7407,1809, # 3782
-3632,2709,1139,1819,4091,2021,1124,2163,2778,1777,2649,7408,3074, 363,1655,3183, # 3798
-7409,2975,7410,7411,7412,3889,1567,3890, 718, 103,3184, 849,1443, 341,3320,2934, # 3814
-1484,7413,1712, 127, 67, 339,4092,2398, 679,1412, 821,7414,7415, 834, 738, 351, # 3830
-2976,2146, 846, 235,1497,1880, 418,1992,3749,2710, 186,1100,2147,2746,3520,1545, # 3846
-1355,2935,2858,1377, 583,3891,4093,2573,2977,7416,1298,3633,1078,2549,3634,2358, # 3862
- 78,3750,3751, 267,1289,2099,2001,1594,4094, 348, 369,1274,2194,2175,1837,4338, # 3878
-1820,2817,3635,2747,2283,2002,4339,2936,2748, 144,3321, 882,4340,3892,2749,3423, # 3894
-4341,2901,7417,4095,1726, 320,7418,3893,3026, 788,2978,7419,2818,1773,1327,2859, # 3910
-3894,2819,7420,1306,4342,2003,1700,3752,3521,2359,2650, 787,2022, 506, 824,3636, # 3926
- 534, 323,4343,1044,3322,2023,1900, 946,3424,7421,1778,1500,1678,7422,1881,4344, # 3942
- 165, 243,4345,3637,2521, 123, 683,4096, 764,4346, 36,3895,1792, 589,2902, 816, # 3958
- 626,1667,3027,2233,1639,1555,1622,3753,3896,7423,3897,2860,1370,1228,1932, 891, # 3974
-2083,2903, 304,4097,7424, 292,2979,2711,3522, 691,2100,4098,1115,4347, 118, 662, # 3990
-7425, 611,1156, 854,2381,1316,2861, 2, 386, 515,2904,7426,7427,3253, 868,2234, # 4006
-1486, 855,2651, 785,2212,3028,7428,1040,3185,3523,7429,3121, 448,7430,1525,7431, # 4022
-2164,4348,7432,3754,7433,4099,2820,3524,3122, 503, 818,3898,3123,1568, 814, 676, # 4038
-1444, 306,1749,7434,3755,1416,1030, 197,1428, 805,2821,1501,4349,7435,7436,7437, # 4054
-1993,7438,4350,7439,7440,2195, 13,2779,3638,2980,3124,1229,1916,7441,3756,2131, # 4070
-7442,4100,4351,2399,3525,7443,2213,1511,1727,1120,7444,7445, 646,3757,2443, 307, # 4086
-7446,7447,1595,3186,7448,7449,7450,3639,1113,1356,3899,1465,2522,2523,7451, 519, # 4102
-7452, 128,2132, 92,2284,1979,7453,3900,1512, 342,3125,2196,7454,2780,2214,1980, # 4118
-3323,7455, 290,1656,1317, 789, 827,2360,7456,3758,4352, 562, 581,3901,7457, 401, # 4134
-4353,2248, 94,4354,1399,2781,7458,1463,2024,4355,3187,1943,7459, 828,1105,4101, # 4150
-1262,1394,7460,4102, 605,4356,7461,1783,2862,7462,2822, 819,2101, 578,2197,2937, # 4166
-7463,1502, 436,3254,4103,3255,2823,3902,2905,3425,3426,7464,2712,2315,7465,7466, # 4182
-2332,2067, 23,4357, 193, 826,3759,2102, 699,1630,4104,3075, 390,1793,1064,3526, # 4198
-7467,1579,3076,3077,1400,7468,4105,1838,1640,2863,7469,4358,4359, 137,4106, 598, # 4214
-3078,1966, 780, 104, 974,2938,7470, 278, 899, 253, 402, 572, 504, 493,1339,7471, # 4230
-3903,1275,4360,2574,2550,7472,3640,3029,3079,2249, 565,1334,2713, 863, 41,7473, # 4246
-7474,4361,7475,1657,2333, 19, 463,2750,4107, 606,7476,2981,3256,1087,2084,1323, # 4262
-2652,2982,7477,1631,1623,1750,4108,2682,7478,2864, 791,2714,2653,2334, 232,2416, # 4278
-7479,2983,1498,7480,2654,2620, 755,1366,3641,3257,3126,2025,1609, 119,1917,3427, # 4294
- 862,1026,4109,7481,3904,3760,4362,3905,4363,2260,1951,2470,7482,1125, 817,4110, # 4310
-4111,3906,1513,1766,2040,1487,4112,3030,3258,2824,3761,3127,7483,7484,1507,7485, # 4326
-2683, 733, 40,1632,1106,2865, 345,4113, 841,2524, 230,4364,2984,1846,3259,3428, # 4342
-7486,1263, 986,3429,7487, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562,3907, # 4358
-3908,2939, 967,2751,2655,1349, 592,2133,1692,3324,2985,1994,4114,1679,3909,1901, # 4374
-2185,7488, 739,3642,2715,1296,1290,7489,4115,2198,2199,1921,1563,2595,2551,1870, # 4390
-2752,2986,7490, 435,7491, 343,1108, 596, 17,1751,4365,2235,3430,3643,7492,4366, # 4406
- 294,3527,2940,1693, 477, 979, 281,2041,3528, 643,2042,3644,2621,2782,2261,1031, # 4422
-2335,2134,2298,3529,4367, 367,1249,2552,7493,3530,7494,4368,1283,3325,2004, 240, # 4438
-1762,3326,4369,4370, 836,1069,3128, 474,7495,2148,2525, 268,3531,7496,3188,1521, # 4454
-1284,7497,1658,1546,4116,7498,3532,3533,7499,4117,3327,2684,1685,4118, 961,1673, # 4470
-2622, 190,2005,2200,3762,4371,4372,7500, 570,2497,3645,1490,7501,4373,2623,3260, # 4486
-1956,4374, 584,1514, 396,1045,1944,7502,4375,1967,2444,7503,7504,4376,3910, 619, # 4502
-7505,3129,3261, 215,2006,2783,2553,3189,4377,3190,4378, 763,4119,3763,4379,7506, # 4518
-7507,1957,1767,2941,3328,3646,1174, 452,1477,4380,3329,3130,7508,2825,1253,2382, # 4534
-2186,1091,2285,4120, 492,7509, 638,1169,1824,2135,1752,3911, 648, 926,1021,1324, # 4550
-4381, 520,4382, 997, 847,1007, 892,4383,3764,2262,1871,3647,7510,2400,1784,4384, # 4566
-1952,2942,3080,3191,1728,4121,2043,3648,4385,2007,1701,3131,1551, 30,2263,4122, # 4582
-7511,2026,4386,3534,7512, 501,7513,4123, 594,3431,2165,1821,3535,3432,3536,3192, # 4598
- 829,2826,4124,7514,1680,3132,1225,4125,7515,3262,4387,4126,3133,2336,7516,4388, # 4614
-4127,7517,3912,3913,7518,1847,2383,2596,3330,7519,4389, 374,3914, 652,4128,4129, # 4630
- 375,1140, 798,7520,7521,7522,2361,4390,2264, 546,1659, 138,3031,2445,4391,7523, # 4646
-2250, 612,1848, 910, 796,3765,1740,1371, 825,3766,3767,7524,2906,2554,7525, 692, # 4662
- 444,3032,2624, 801,4392,4130,7526,1491, 244,1053,3033,4131,4132, 340,7527,3915, # 4678
-1041,2987, 293,1168, 87,1357,7528,1539, 959,7529,2236, 721, 694,4133,3768, 219, # 4694
-1478, 644,1417,3331,2656,1413,1401,1335,1389,3916,7530,7531,2988,2362,3134,1825, # 4710
- 730,1515, 184,2827, 66,4393,7532,1660,2943, 246,3332, 378,1457, 226,3433, 975, # 4726
-3917,2944,1264,3537, 674, 696,7533, 163,7534,1141,2417,2166, 713,3538,3333,4394, # 4742
-3918,7535,7536,1186, 15,7537,1079,1070,7538,1522,3193,3539, 276,1050,2716, 758, # 4758
-1126, 653,2945,3263,7539,2337, 889,3540,3919,3081,2989, 903,1250,4395,3920,3434, # 4774
-3541,1342,1681,1718, 766,3264, 286, 89,2946,3649,7540,1713,7541,2597,3334,2990, # 4790
-7542,2947,2215,3194,2866,7543,4396,2498,2526, 181, 387,1075,3921, 731,2187,3335, # 4806
-7544,3265, 310, 313,3435,2299, 770,4134, 54,3034, 189,4397,3082,3769,3922,7545, # 4822
-1230,1617,1849, 355,3542,4135,4398,3336, 111,4136,3650,1350,3135,3436,3035,4137, # 4838
-2149,3266,3543,7546,2784,3923,3924,2991, 722,2008,7547,1071, 247,1207,2338,2471, # 4854
-1378,4399,2009, 864,1437,1214,4400, 373,3770,1142,2216, 667,4401, 442,2753,2555, # 4870
-3771,3925,1968,4138,3267,1839, 837, 170,1107, 934,1336,1882,7548,7549,2118,4139, # 4886
-2828, 743,1569,7550,4402,4140, 582,2384,1418,3437,7551,1802,7552, 357,1395,1729, # 4902
-3651,3268,2418,1564,2237,7553,3083,3772,1633,4403,1114,2085,4141,1532,7554, 482, # 4918
-2446,4404,7555,7556,1492, 833,1466,7557,2717,3544,1641,2829,7558,1526,1272,3652, # 4934
-4142,1686,1794, 416,2556,1902,1953,1803,7559,3773,2785,3774,1159,2316,7560,2867, # 4950
-4405,1610,1584,3036,2419,2754, 443,3269,1163,3136,7561,7562,3926,7563,4143,2499, # 4966
-3037,4406,3927,3137,2103,1647,3545,2010,1872,4144,7564,4145, 431,3438,7565, 250, # 4982
- 97, 81,4146,7566,1648,1850,1558, 160, 848,7567, 866, 740,1694,7568,2201,2830, # 4998
-3195,4147,4407,3653,1687, 950,2472, 426, 469,3196,3654,3655,3928,7569,7570,1188, # 5014
- 424,1995, 861,3546,4148,3775,2202,2685, 168,1235,3547,4149,7571,2086,1674,4408, # 5030
-3337,3270, 220,2557,1009,7572,3776, 670,2992, 332,1208, 717,7573,7574,3548,2447, # 5046
-3929,3338,7575, 513,7576,1209,2868,3339,3138,4409,1080,7577,7578,7579,7580,2527, # 5062
-3656,3549, 815,1587,3930,3931,7581,3550,3439,3777,1254,4410,1328,3038,1390,3932, # 5078
-1741,3933,3778,3934,7582, 236,3779,2448,3271,7583,7584,3657,3780,1273,3781,4411, # 5094
-7585, 308,7586,4412, 245,4413,1851,2473,1307,2575, 430, 715,2136,2449,7587, 270, # 5110
- 199,2869,3935,7588,3551,2718,1753, 761,1754, 725,1661,1840,4414,3440,3658,7589, # 5126
-7590, 587, 14,3272, 227,2598, 326, 480,2265, 943,2755,3552, 291, 650,1883,7591, # 5142
-1702,1226, 102,1547, 62,3441, 904,4415,3442,1164,4150,7592,7593,1224,1548,2756, # 5158
- 391, 498,1493,7594,1386,1419,7595,2055,1177,4416, 813, 880,1081,2363, 566,1145, # 5174
-4417,2286,1001,1035,2558,2599,2238, 394,1286,7596,7597,2068,7598, 86,1494,1730, # 5190
-3936, 491,1588, 745, 897,2948, 843,3340,3937,2757,2870,3273,1768, 998,2217,2069, # 5206
- 397,1826,1195,1969,3659,2993,3341, 284,7599,3782,2500,2137,2119,1903,7600,3938, # 5222
-2150,3939,4151,1036,3443,1904, 114,2559,4152, 209,1527,7601,7602,2949,2831,2625, # 5238
-2385,2719,3139, 812,2560,7603,3274,7604,1559, 737,1884,3660,1210, 885, 28,2686, # 5254
-3553,3783,7605,4153,1004,1779,4418,7606, 346,1981,2218,2687,4419,3784,1742, 797, # 5270
-1642,3940,1933,1072,1384,2151, 896,3941,3275,3661,3197,2871,3554,7607,2561,1958, # 5286
-4420,2450,1785,7608,7609,7610,3942,4154,1005,1308,3662,4155,2720,4421,4422,1528, # 5302
-2600, 161,1178,4156,1982, 987,4423,1101,4157, 631,3943,1157,3198,2420,1343,1241, # 5318
-1016,2239,2562, 372, 877,2339,2501,1160, 555,1934, 911,3944,7611, 466,1170, 169, # 5334
-1051,2907,2688,3663,2474,2994,1182,2011,2563,1251,2626,7612, 992,2340,3444,1540, # 5350
-2721,1201,2070,2401,1996,2475,7613,4424, 528,1922,2188,1503,1873,1570,2364,3342, # 5366
-3276,7614, 557,1073,7615,1827,3445,2087,2266,3140,3039,3084, 767,3085,2786,4425, # 5382
-1006,4158,4426,2341,1267,2176,3664,3199, 778,3945,3200,2722,1597,2657,7616,4427, # 5398
-7617,3446,7618,7619,7620,3277,2689,1433,3278, 131, 95,1504,3946, 723,4159,3141, # 5414
-1841,3555,2758,2189,3947,2027,2104,3665,7621,2995,3948,1218,7622,3343,3201,3949, # 5430
-4160,2576, 248,1634,3785, 912,7623,2832,3666,3040,3786, 654, 53,7624,2996,7625, # 5446
-1688,4428, 777,3447,1032,3950,1425,7626, 191, 820,2120,2833, 971,4429, 931,3202, # 5462
- 135, 664, 783,3787,1997, 772,2908,1935,3951,3788,4430,2909,3203, 282,2723, 640, # 5478
-1372,3448,1127, 922, 325,3344,7627,7628, 711,2044,7629,7630,3952,2219,2787,1936, # 5494
-3953,3345,2220,2251,3789,2300,7631,4431,3790,1258,3279,3954,3204,2138,2950,3955, # 5510
-3956,7632,2221, 258,3205,4432, 101,1227,7633,3280,1755,7634,1391,3281,7635,2910, # 5526
-2056, 893,7636,7637,7638,1402,4161,2342,7639,7640,3206,3556,7641,7642, 878,1325, # 5542
-1780,2788,4433, 259,1385,2577, 744,1183,2267,4434,7643,3957,2502,7644, 684,1024, # 5558
-4162,7645, 472,3557,3449,1165,3282,3958,3959, 322,2152, 881, 455,1695,1152,1340, # 5574
- 660, 554,2153,4435,1058,4436,4163, 830,1065,3346,3960,4437,1923,7646,1703,1918, # 5590
-7647, 932,2268, 122,7648,4438, 947, 677,7649,3791,2627, 297,1905,1924,2269,4439, # 5606
-2317,3283,7650,7651,4164,7652,4165, 84,4166, 112, 989,7653, 547,1059,3961, 701, # 5622
-3558,1019,7654,4167,7655,3450, 942, 639, 457,2301,2451, 993,2951, 407, 851, 494, # 5638
-4440,3347, 927,7656,1237,7657,2421,3348, 573,4168, 680, 921,2911,1279,1874, 285, # 5654
- 790,1448,1983, 719,2167,7658,7659,4441,3962,3963,1649,7660,1541, 563,7661,1077, # 5670
-7662,3349,3041,3451, 511,2997,3964,3965,3667,3966,1268,2564,3350,3207,4442,4443, # 5686
-7663, 535,1048,1276,1189,2912,2028,3142,1438,1373,2834,2952,1134,2012,7664,4169, # 5702
-1238,2578,3086,1259,7665, 700,7666,2953,3143,3668,4170,7667,4171,1146,1875,1906, # 5718
-4444,2601,3967, 781,2422, 132,1589, 203, 147, 273,2789,2402, 898,1786,2154,3968, # 5734
-3969,7668,3792,2790,7669,7670,4445,4446,7671,3208,7672,1635,3793, 965,7673,1804, # 5750
-2690,1516,3559,1121,1082,1329,3284,3970,1449,3794, 65,1128,2835,2913,2759,1590, # 5766
-3795,7674,7675, 12,2658, 45, 976,2579,3144,4447, 517,2528,1013,1037,3209,7676, # 5782
-3796,2836,7677,3797,7678,3452,7679,2602, 614,1998,2318,3798,3087,2724,2628,7680, # 5798
-2580,4172, 599,1269,7681,1810,3669,7682,2691,3088, 759,1060, 489,1805,3351,3285, # 5814
-1358,7683,7684,2386,1387,1215,2629,2252, 490,7685,7686,4173,1759,2387,2343,7687, # 5830
-4448,3799,1907,3971,2630,1806,3210,4449,3453,3286,2760,2344, 874,7688,7689,3454, # 5846
-3670,1858, 91,2914,3671,3042,3800,4450,7690,3145,3972,2659,7691,3455,1202,1403, # 5862
-3801,2954,2529,1517,2503,4451,3456,2504,7692,4452,7693,2692,1885,1495,1731,3973, # 5878
-2365,4453,7694,2029,7695,7696,3974,2693,1216, 237,2581,4174,2319,3975,3802,4454, # 5894
-4455,2694,3560,3457, 445,4456,7697,7698,7699,7700,2761, 61,3976,3672,1822,3977, # 5910
-7701, 687,2045, 935, 925, 405,2660, 703,1096,1859,2725,4457,3978,1876,1367,2695, # 5926
-3352, 918,2105,1781,2476, 334,3287,1611,1093,4458, 564,3146,3458,3673,3353, 945, # 5942
-2631,2057,4459,7702,1925, 872,4175,7703,3459,2696,3089, 349,4176,3674,3979,4460, # 5958
-3803,4177,3675,2155,3980,4461,4462,4178,4463,2403,2046, 782,3981, 400, 251,4179, # 5974
-1624,7704,7705, 277,3676, 299,1265, 476,1191,3804,2121,4180,4181,1109, 205,7706, # 5990
-2582,1000,2156,3561,1860,7707,7708,7709,4464,7710,4465,2565, 107,2477,2157,3982, # 6006
-3460,3147,7711,1533, 541,1301, 158, 753,4182,2872,3562,7712,1696, 370,1088,4183, # 6022
-4466,3563, 579, 327, 440, 162,2240, 269,1937,1374,3461, 968,3043, 56,1396,3090, # 6038
-2106,3288,3354,7713,1926,2158,4467,2998,7714,3564,7715,7716,3677,4468,2478,7717, # 6054
-2791,7718,1650,4469,7719,2603,7720,7721,3983,2661,3355,1149,3356,3984,3805,3985, # 6070
-7722,1076, 49,7723, 951,3211,3289,3290, 450,2837, 920,7724,1811,2792,2366,4184, # 6086
-1908,1138,2367,3806,3462,7725,3212,4470,1909,1147,1518,2423,4471,3807,7726,4472, # 6102
-2388,2604, 260,1795,3213,7727,7728,3808,3291, 708,7729,3565,1704,7730,3566,1351, # 6118
-1618,3357,2999,1886, 944,4185,3358,4186,3044,3359,4187,7731,3678, 422, 413,1714, # 6134
-3292, 500,2058,2345,4188,2479,7732,1344,1910, 954,7733,1668,7734,7735,3986,2404, # 6150
-4189,3567,3809,4190,7736,2302,1318,2505,3091, 133,3092,2873,4473, 629, 31,2838, # 6166
-2697,3810,4474, 850, 949,4475,3987,2955,1732,2088,4191,1496,1852,7737,3988, 620, # 6182
-3214, 981,1242,3679,3360,1619,3680,1643,3293,2139,2452,1970,1719,3463,2168,7738, # 6198
-3215,7739,7740,3361,1828,7741,1277,4476,1565,2047,7742,1636,3568,3093,7743, 869, # 6214
-2839, 655,3811,3812,3094,3989,3000,3813,1310,3569,4477,7744,7745,7746,1733, 558, # 6230
-4478,3681, 335,1549,3045,1756,4192,3682,1945,3464,1829,1291,1192, 470,2726,2107, # 6246
-2793, 913,1054,3990,7747,1027,7748,3046,3991,4479, 982,2662,3362,3148,3465,3216, # 6262
-3217,1946,2794,7749, 571,4480,7750,1830,7751,3570,2583,1523,2424,7752,2089, 984, # 6278
-4481,3683,1959,7753,3684, 852, 923,2795,3466,3685, 969,1519, 999,2048,2320,1705, # 6294
-7754,3095, 615,1662, 151, 597,3992,2405,2321,1049, 275,4482,3686,4193, 568,3687, # 6310
-3571,2480,4194,3688,7755,2425,2270, 409,3218,7756,1566,2874,3467,1002, 769,2840, # 6326
- 194,2090,3149,3689,2222,3294,4195, 628,1505,7757,7758,1763,2177,3001,3993, 521, # 6342
-1161,2584,1787,2203,2406,4483,3994,1625,4196,4197, 412, 42,3096, 464,7759,2632, # 6358
-4484,3363,1760,1571,2875,3468,2530,1219,2204,3814,2633,2140,2368,4485,4486,3295, # 6374
-1651,3364,3572,7760,7761,3573,2481,3469,7762,3690,7763,7764,2271,2091, 460,7765, # 6390
-4487,7766,3002, 962, 588,3574, 289,3219,2634,1116, 52,7767,3047,1796,7768,7769, # 6406
-7770,1467,7771,1598,1143,3691,4198,1984,1734,1067,4488,1280,3365, 465,4489,1572, # 6422
- 510,7772,1927,2241,1812,1644,3575,7773,4490,3692,7774,7775,2663,1573,1534,7776, # 6438
-7777,4199, 536,1807,1761,3470,3815,3150,2635,7778,7779,7780,4491,3471,2915,1911, # 6454
-2796,7781,3296,1122, 377,3220,7782, 360,7783,7784,4200,1529, 551,7785,2059,3693, # 6470
-1769,2426,7786,2916,4201,3297,3097,2322,2108,2030,4492,1404, 136,1468,1479, 672, # 6486
-1171,3221,2303, 271,3151,7787,2762,7788,2049, 678,2727, 865,1947,4493,7789,2013, # 6502
-3995,2956,7790,2728,2223,1397,3048,3694,4494,4495,1735,2917,3366,3576,7791,3816, # 6518
- 509,2841,2453,2876,3817,7792,7793,3152,3153,4496,4202,2531,4497,2304,1166,1010, # 6534
- 552, 681,1887,7794,7795,2957,2958,3996,1287,1596,1861,3154, 358, 453, 736, 175, # 6550
- 478,1117, 905,1167,1097,7796,1853,1530,7797,1706,7798,2178,3472,2287,3695,3473, # 6566
-3577,4203,2092,4204,7799,3367,1193,2482,4205,1458,2190,2205,1862,1888,1421,3298, # 6582
-2918,3049,2179,3474, 595,2122,7800,3997,7801,7802,4206,1707,2636, 223,3696,1359, # 6598
- 751,3098, 183,3475,7803,2797,3003, 419,2369, 633, 704,3818,2389, 241,7804,7805, # 6614
-7806, 838,3004,3697,2272,2763,2454,3819,1938,2050,3998,1309,3099,2242,1181,7807, # 6630
-1136,2206,3820,2370,1446,4207,2305,4498,7808,7809,4208,1055,2605, 484,3698,7810, # 6646
-3999, 625,4209,2273,3368,1499,4210,4000,7811,4001,4211,3222,2274,2275,3476,7812, # 6662
-7813,2764, 808,2606,3699,3369,4002,4212,3100,2532, 526,3370,3821,4213, 955,7814, # 6678
-1620,4214,2637,2427,7815,1429,3700,1669,1831, 994, 928,7816,3578,1260,7817,7818, # 6694
-7819,1948,2288, 741,2919,1626,4215,2729,2455, 867,1184, 362,3371,1392,7820,7821, # 6710
-4003,4216,1770,1736,3223,2920,4499,4500,1928,2698,1459,1158,7822,3050,3372,2877, # 6726
-1292,1929,2506,2842,3701,1985,1187,2071,2014,2607,4217,7823,2566,2507,2169,3702, # 6742
-2483,3299,7824,3703,4501,7825,7826, 666,1003,3005,1022,3579,4218,7827,4502,1813, # 6758
-2253, 574,3822,1603, 295,1535, 705,3823,4219, 283, 858, 417,7828,7829,3224,4503, # 6774
-4504,3051,1220,1889,1046,2276,2456,4004,1393,1599, 689,2567, 388,4220,7830,2484, # 6790
- 802,7831,2798,3824,2060,1405,2254,7832,4505,3825,2109,1052,1345,3225,1585,7833, # 6806
- 809,7834,7835,7836, 575,2730,3477, 956,1552,1469,1144,2323,7837,2324,1560,2457, # 6822
-3580,3226,4005, 616,2207,3155,2180,2289,7838,1832,7839,3478,4506,7840,1319,3704, # 6838
-3705,1211,3581,1023,3227,1293,2799,7841,7842,7843,3826, 607,2306,3827, 762,2878, # 6854
-1439,4221,1360,7844,1485,3052,7845,4507,1038,4222,1450,2061,2638,4223,1379,4508, # 6870
-2585,7846,7847,4224,1352,1414,2325,2921,1172,7848,7849,3828,3829,7850,1797,1451, # 6886
-7851,7852,7853,7854,2922,4006,4007,2485,2346, 411,4008,4009,3582,3300,3101,4509, # 6902
-1561,2664,1452,4010,1375,7855,7856, 47,2959, 316,7857,1406,1591,2923,3156,7858, # 6918
-1025,2141,3102,3157, 354,2731, 884,2224,4225,2407, 508,3706, 726,3583, 996,2428, # 6934
-3584, 729,7859, 392,2191,1453,4011,4510,3707,7860,7861,2458,3585,2608,1675,2800, # 6950
- 919,2347,2960,2348,1270,4511,4012, 73,7862,7863, 647,7864,3228,2843,2255,1550, # 6966
-1346,3006,7865,1332, 883,3479,7866,7867,7868,7869,3301,2765,7870,1212, 831,1347, # 6982
-4226,4512,2326,3830,1863,3053, 720,3831,4513,4514,3832,7871,4227,7872,7873,4515, # 6998
-7874,7875,1798,4516,3708,2609,4517,3586,1645,2371,7876,7877,2924, 669,2208,2665, # 7014
-2429,7878,2879,7879,7880,1028,3229,7881,4228,2408,7882,2256,1353,7883,7884,4518, # 7030
-3158, 518,7885,4013,7886,4229,1960,7887,2142,4230,7888,7889,3007,2349,2350,3833, # 7046
- 516,1833,1454,4014,2699,4231,4519,2225,2610,1971,1129,3587,7890,2766,7891,2961, # 7062
-1422, 577,1470,3008,1524,3373,7892,7893, 432,4232,3054,3480,7894,2586,1455,2508, # 7078
-2226,1972,1175,7895,1020,2732,4015,3481,4520,7896,2733,7897,1743,1361,3055,3482, # 7094
-2639,4016,4233,4521,2290, 895, 924,4234,2170, 331,2243,3056, 166,1627,3057,1098, # 7110
-7898,1232,2880,2227,3374,4522, 657, 403,1196,2372, 542,3709,3375,1600,4235,3483, # 7126
-7899,4523,2767,3230, 576, 530,1362,7900,4524,2533,2666,3710,4017,7901, 842,3834, # 7142
-7902,2801,2031,1014,4018, 213,2700,3376, 665, 621,4236,7903,3711,2925,2430,7904, # 7158
-2431,3302,3588,3377,7905,4237,2534,4238,4525,3589,1682,4239,3484,1380,7906, 724, # 7174
-2277, 600,1670,7907,1337,1233,4526,3103,2244,7908,1621,4527,7909, 651,4240,7910, # 7190
-1612,4241,2611,7911,2844,7912,2734,2307,3058,7913, 716,2459,3059, 174,1255,2701, # 7206
-4019,3590, 548,1320,1398, 728,4020,1574,7914,1890,1197,3060,4021,7915,3061,3062, # 7222
-3712,3591,3713, 747,7916, 635,4242,4528,7917,7918,7919,4243,7920,7921,4529,7922, # 7238
-3378,4530,2432, 451,7923,3714,2535,2072,4244,2735,4245,4022,7924,1764,4531,7925, # 7254
-4246, 350,7926,2278,2390,2486,7927,4247,4023,2245,1434,4024, 488,4532, 458,4248, # 7270
-4025,3715, 771,1330,2391,3835,2568,3159,2159,2409,1553,2667,3160,4249,7928,2487, # 7286
-2881,2612,1720,2702,4250,3379,4533,7929,2536,4251,7930,3231,4252,2768,7931,2015, # 7302
-2736,7932,1155,1017,3716,3836,7933,3303,2308, 201,1864,4253,1430,7934,4026,7935, # 7318
-7936,7937,7938,7939,4254,1604,7940, 414,1865, 371,2587,4534,4535,3485,2016,3104, # 7334
-4536,1708, 960,4255, 887, 389,2171,1536,1663,1721,7941,2228,4027,2351,2926,1580, # 7350
-7942,7943,7944,1744,7945,2537,4537,4538,7946,4539,7947,2073,7948,7949,3592,3380, # 7366
-2882,4256,7950,4257,2640,3381,2802, 673,2703,2460, 709,3486,4028,3593,4258,7951, # 7382
-1148, 502, 634,7952,7953,1204,4540,3594,1575,4541,2613,3717,7954,3718,3105, 948, # 7398
-3232, 121,1745,3837,1110,7955,4259,3063,2509,3009,4029,3719,1151,1771,3838,1488, # 7414
-4030,1986,7956,2433,3487,7957,7958,2093,7959,4260,3839,1213,1407,2803, 531,2737, # 7430
-2538,3233,1011,1537,7960,2769,4261,3106,1061,7961,3720,3721,1866,2883,7962,2017, # 7446
- 120,4262,4263,2062,3595,3234,2309,3840,2668,3382,1954,4542,7963,7964,3488,1047, # 7462
-2704,1266,7965,1368,4543,2845, 649,3383,3841,2539,2738,1102,2846,2669,7966,7967, # 7478
-1999,7968,1111,3596,2962,7969,2488,3842,3597,2804,1854,3384,3722,7970,7971,3385, # 7494
-2410,2884,3304,3235,3598,7972,2569,7973,3599,2805,4031,1460, 856,7974,3600,7975, # 7510
-2885,2963,7976,2886,3843,7977,4264, 632,2510, 875,3844,1697,3845,2291,7978,7979, # 7526
-4544,3010,1239, 580,4545,4265,7980, 914, 936,2074,1190,4032,1039,2123,7981,7982, # 7542
-7983,3386,1473,7984,1354,4266,3846,7985,2172,3064,4033, 915,3305,4267,4268,3306, # 7558
-1605,1834,7986,2739, 398,3601,4269,3847,4034, 328,1912,2847,4035,3848,1331,4270, # 7574
-3011, 937,4271,7987,3602,4036,4037,3387,2160,4546,3388, 524, 742, 538,3065,1012, # 7590
-7988,7989,3849,2461,7990, 658,1103, 225,3850,7991,7992,4547,7993,4548,7994,3236, # 7606
-1243,7995,4038, 963,2246,4549,7996,2705,3603,3161,7997,7998,2588,2327,7999,4550, # 7622
-8000,8001,8002,3489,3307, 957,3389,2540,2032,1930,2927,2462, 870,2018,3604,1746, # 7638
-2770,2771,2434,2463,8003,3851,8004,3723,3107,3724,3490,3390,3725,8005,1179,3066, # 7654
-8006,3162,2373,4272,3726,2541,3163,3108,2740,4039,8007,3391,1556,2542,2292, 977, # 7670
-2887,2033,4040,1205,3392,8008,1765,3393,3164,2124,1271,1689, 714,4551,3491,8009, # 7686
-2328,3852, 533,4273,3605,2181, 617,8010,2464,3308,3492,2310,8011,8012,3165,8013, # 7702
-8014,3853,1987, 618, 427,2641,3493,3394,8015,8016,1244,1690,8017,2806,4274,4552, # 7718
-8018,3494,8019,8020,2279,1576, 473,3606,4275,3395, 972,8021,3607,8022,3067,8023, # 7734
-8024,4553,4554,8025,3727,4041,4042,8026, 153,4555, 356,8027,1891,2888,4276,2143, # 7750
- 408, 803,2352,8028,3854,8029,4277,1646,2570,2511,4556,4557,3855,8030,3856,4278, # 7766
-8031,2411,3396, 752,8032,8033,1961,2964,8034, 746,3012,2465,8035,4279,3728, 698, # 7782
-4558,1892,4280,3608,2543,4559,3609,3857,8036,3166,3397,8037,1823,1302,4043,2706, # 7798
-3858,1973,4281,8038,4282,3167, 823,1303,1288,1236,2848,3495,4044,3398, 774,3859, # 7814
-8039,1581,4560,1304,2849,3860,4561,8040,2435,2161,1083,3237,4283,4045,4284, 344, # 7830
-1173, 288,2311, 454,1683,8041,8042,1461,4562,4046,2589,8043,8044,4563, 985, 894, # 7846
-8045,3399,3168,8046,1913,2928,3729,1988,8047,2110,1974,8048,4047,8049,2571,1194, # 7862
- 425,8050,4564,3169,1245,3730,4285,8051,8052,2850,8053, 636,4565,1855,3861, 760, # 7878
-1799,8054,4286,2209,1508,4566,4048,1893,1684,2293,8055,8056,8057,4287,4288,2210, # 7894
- 479,8058,8059, 832,8060,4049,2489,8061,2965,2490,3731, 990,3109, 627,1814,2642, # 7910
-4289,1582,4290,2125,2111,3496,4567,8062, 799,4291,3170,8063,4568,2112,1737,3013, # 7926
-1018, 543, 754,4292,3309,1676,4569,4570,4050,8064,1489,8065,3497,8066,2614,2889, # 7942
-4051,8067,8068,2966,8069,8070,8071,8072,3171,4571,4572,2182,1722,8073,3238,3239, # 7958
-1842,3610,1715, 481, 365,1975,1856,8074,8075,1962,2491,4573,8076,2126,3611,3240, # 7974
- 433,1894,2063,2075,8077, 602,2741,8078,8079,8080,8081,8082,3014,1628,3400,8083, # 7990
-3172,4574,4052,2890,4575,2512,8084,2544,2772,8085,8086,8087,3310,4576,2891,8088, # 8006
-4577,8089,2851,4578,4579,1221,2967,4053,2513,8090,8091,8092,1867,1989,8093,8094, # 8022
-8095,1895,8096,8097,4580,1896,4054, 318,8098,2094,4055,4293,8099,8100, 485,8101, # 8038
- 938,3862, 553,2670, 116,8102,3863,3612,8103,3498,2671,2773,3401,3311,2807,8104, # 8054
-3613,2929,4056,1747,2930,2968,8105,8106, 207,8107,8108,2672,4581,2514,8109,3015, # 8070
- 890,3614,3864,8110,1877,3732,3402,8111,2183,2353,3403,1652,8112,8113,8114, 941, # 8086
-2294, 208,3499,4057,2019, 330,4294,3865,2892,2492,3733,4295,8115,8116,8117,8118, # 8102
-#Everything below is of no interest for detection purpose
-2515,1613,4582,8119,3312,3866,2516,8120,4058,8121,1637,4059,2466,4583,3867,8122, # 8118
-2493,3016,3734,8123,8124,2192,8125,8126,2162,8127,8128,8129,8130,8131,8132,8133, # 8134
-8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8144,8145,8146,8147,8148,8149, # 8150
-8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8160,8161,8162,8163,8164,8165, # 8166
-8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181, # 8182
-8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197, # 8198
-8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213, # 8214
-8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229, # 8230
-8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245, # 8246
-8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261, # 8262
-8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277, # 8278
-8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293, # 8294
-8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,8304,8305,8306,8307,8308,8309, # 8310
-8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325, # 8326
-8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341, # 8342
-8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357, # 8358
-8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373, # 8374
-8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389, # 8390
-8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,8400,8401,8402,8403,8404,8405, # 8406
-8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421, # 8422
-8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437, # 8438
-8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,8450,8451,8452,8453, # 8454
-8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469, # 8470
-8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485, # 8486
-8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,8500,8501, # 8502
-8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517, # 8518
-8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533, # 8534
-8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549, # 8550
-8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,8565, # 8566
-8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8579,8580,8581, # 8582
-8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597, # 8598
-8598,8599,8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613, # 8614
-8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629, # 8630
-8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645, # 8646
-8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661, # 8662
-8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677, # 8678
-8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693, # 8694
-8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,8704,8705,8706,8707,8708,8709, # 8710
-8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725, # 8726
-8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741) # 8742
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/euctwprober.py b/vendor/requests/packages/chardet/euctwprober.py
deleted file mode 100644
index fe652fe3..00000000
--- a/vendor/requests/packages/chardet/euctwprober.py
+++ /dev/null
@@ -1,41 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import EUCTWDistributionAnalysis
-from .mbcssm import EUCTWSMModel
-
-class EUCTWProber(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(EUCTWSMModel)
- self._mDistributionAnalyzer = EUCTWDistributionAnalysis()
- self.reset()
-
- def get_charset_name(self):
- return "EUC-TW"
diff --git a/vendor/requests/packages/chardet/gb2312freq.py b/vendor/requests/packages/chardet/gb2312freq.py
deleted file mode 100644
index 1238f510..00000000
--- a/vendor/requests/packages/chardet/gb2312freq.py
+++ /dev/null
@@ -1,472 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# GB2312 most frequently used character table
-#
-# Char to FreqOrder table , from hz6763
-
-# 512 --> 0.79 -- 0.79
-# 1024 --> 0.92 -- 0.13
-# 2048 --> 0.98 -- 0.06
-# 6768 --> 1.00 -- 0.02
-#
-# Ideal Distribution Ratio = 0.79135/(1-0.79135) = 3.79
-# Random Distribution Ration = 512 / (3755 - 512) = 0.157
-#
-# Typical Distribution Ratio about 25% of Ideal one, still much higher that RDR
-
-GB2312_TYPICAL_DISTRIBUTION_RATIO = 0.9
-
-GB2312_TABLE_SIZE = 3760
-
-GB2312CharToFreqOrder = (
-1671, 749,1443,2364,3924,3807,2330,3921,1704,3463,2691,1511,1515, 572,3191,2205,
-2361, 224,2558, 479,1711, 963,3162, 440,4060,1905,2966,2947,3580,2647,3961,3842,
-2204, 869,4207, 970,2678,5626,2944,2956,1479,4048, 514,3595, 588,1346,2820,3409,
- 249,4088,1746,1873,2047,1774, 581,1813, 358,1174,3590,1014,1561,4844,2245, 670,
-1636,3112, 889,1286, 953, 556,2327,3060,1290,3141, 613, 185,3477,1367, 850,3820,
-1715,2428,2642,2303,2732,3041,2562,2648,3566,3946,1349, 388,3098,2091,1360,3585,
- 152,1687,1539, 738,1559, 59,1232,2925,2267,1388,1249,1741,1679,2960, 151,1566,
-1125,1352,4271, 924,4296, 385,3166,4459, 310,1245,2850, 70,3285,2729,3534,3575,
-2398,3298,3466,1960,2265, 217,3647, 864,1909,2084,4401,2773,1010,3269,5152, 853,
-3051,3121,1244,4251,1895, 364,1499,1540,2313,1180,3655,2268, 562, 715,2417,3061,
- 544, 336,3768,2380,1752,4075, 950, 280,2425,4382, 183,2759,3272, 333,4297,2155,
-1688,2356,1444,1039,4540, 736,1177,3349,2443,2368,2144,2225, 565, 196,1482,3406,
- 927,1335,4147, 692, 878,1311,1653,3911,3622,1378,4200,1840,2969,3149,2126,1816,
-2534,1546,2393,2760, 737,2494, 13, 447, 245,2747, 38,2765,2129,2589,1079, 606,
- 360, 471,3755,2890, 404, 848, 699,1785,1236, 370,2221,1023,3746,2074,2026,2023,
-2388,1581,2119, 812,1141,3091,2536,1519, 804,2053, 406,1596,1090, 784, 548,4414,
-1806,2264,2936,1100, 343,4114,5096, 622,3358, 743,3668,1510,1626,5020,3567,2513,
-3195,4115,5627,2489,2991, 24,2065,2697,1087,2719, 48,1634, 315, 68, 985,2052,
- 198,2239,1347,1107,1439, 597,2366,2172, 871,3307, 919,2487,2790,1867, 236,2570,
-1413,3794, 906,3365,3381,1701,1982,1818,1524,2924,1205, 616,2586,2072,2004, 575,
- 253,3099, 32,1365,1182, 197,1714,2454,1201, 554,3388,3224,2748, 756,2587, 250,
-2567,1507,1517,3529,1922,2761,2337,3416,1961,1677,2452,2238,3153, 615, 911,1506,
-1474,2495,1265,1906,2749,3756,3280,2161, 898,2714,1759,3450,2243,2444, 563, 26,
-3286,2266,3769,3344,2707,3677, 611,1402, 531,1028,2871,4548,1375, 261,2948, 835,
-1190,4134, 353, 840,2684,1900,3082,1435,2109,1207,1674, 329,1872,2781,4055,2686,
-2104, 608,3318,2423,2957,2768,1108,3739,3512,3271,3985,2203,1771,3520,1418,2054,
-1681,1153, 225,1627,2929, 162,2050,2511,3687,1954, 124,1859,2431,1684,3032,2894,
- 585,4805,3969,2869,2704,2088,2032,2095,3656,2635,4362,2209, 256, 518,2042,2105,
-3777,3657, 643,2298,1148,1779, 190, 989,3544, 414, 11,2135,2063,2979,1471, 403,
-3678, 126, 770,1563, 671,2499,3216,2877, 600,1179, 307,2805,4937,1268,1297,2694,
- 252,4032,1448,1494,1331,1394, 127,2256, 222,1647,1035,1481,3056,1915,1048, 873,
-3651, 210, 33,1608,2516, 200,1520, 415, 102, 0,3389,1287, 817, 91,3299,2940,
- 836,1814, 549,2197,1396,1669,2987,3582,2297,2848,4528,1070, 687, 20,1819, 121,
-1552,1364,1461,1968,2617,3540,2824,2083, 177, 948,4938,2291, 110,4549,2066, 648,
-3359,1755,2110,2114,4642,4845,1693,3937,3308,1257,1869,2123, 208,1804,3159,2992,
-2531,2549,3361,2418,1350,2347,2800,2568,1291,2036,2680, 72, 842,1990, 212,1233,
-1154,1586, 75,2027,3410,4900,1823,1337,2710,2676, 728,2810,1522,3026,4995, 157,
- 755,1050,4022, 710, 785,1936,2194,2085,1406,2777,2400, 150,1250,4049,1206, 807,
-1910, 534, 529,3309,1721,1660, 274, 39,2827, 661,2670,1578, 925,3248,3815,1094,
-4278,4901,4252, 41,1150,3747,2572,2227,4501,3658,4902,3813,3357,3617,2884,2258,
- 887, 538,4187,3199,1294,2439,3042,2329,2343,2497,1255, 107, 543,1527, 521,3478,
-3568, 194,5062, 15, 961,3870,1241,1192,2664, 66,5215,3260,2111,1295,1127,2152,
-3805,4135, 901,1164,1976, 398,1278, 530,1460, 748, 904,1054,1966,1426, 53,2909,
- 509, 523,2279,1534, 536,1019, 239,1685, 460,2353, 673,1065,2401,3600,4298,2272,
-1272,2363, 284,1753,3679,4064,1695, 81, 815,2677,2757,2731,1386, 859, 500,4221,
-2190,2566, 757,1006,2519,2068,1166,1455, 337,2654,3203,1863,1682,1914,3025,1252,
-1409,1366, 847, 714,2834,2038,3209, 964,2970,1901, 885,2553,1078,1756,3049, 301,
-1572,3326, 688,2130,1996,2429,1805,1648,2930,3421,2750,3652,3088, 262,1158,1254,
- 389,1641,1812, 526,1719, 923,2073,1073,1902, 468, 489,4625,1140, 857,2375,3070,
-3319,2863, 380, 116,1328,2693,1161,2244, 273,1212,1884,2769,3011,1775,1142, 461,
-3066,1200,2147,2212, 790, 702,2695,4222,1601,1058, 434,2338,5153,3640, 67,2360,
-4099,2502, 618,3472,1329, 416,1132, 830,2782,1807,2653,3211,3510,1662, 192,2124,
- 296,3979,1739,1611,3684, 23, 118, 324, 446,1239,1225, 293,2520,3814,3795,2535,
-3116, 17,1074, 467,2692,2201, 387,2922, 45,1326,3055,1645,3659,2817, 958, 243,
-1903,2320,1339,2825,1784,3289, 356, 576, 865,2315,2381,3377,3916,1088,3122,1713,
-1655, 935, 628,4689,1034,1327, 441, 800, 720, 894,1979,2183,1528,5289,2702,1071,
-4046,3572,2399,1571,3281, 79, 761,1103, 327, 134, 758,1899,1371,1615, 879, 442,
- 215,2605,2579, 173,2048,2485,1057,2975,3317,1097,2253,3801,4263,1403,1650,2946,
- 814,4968,3487,1548,2644,1567,1285, 2, 295,2636, 97, 946,3576, 832, 141,4257,
-3273, 760,3821,3521,3156,2607, 949,1024,1733,1516,1803,1920,2125,2283,2665,3180,
-1501,2064,3560,2171,1592, 803,3518,1416, 732,3897,4258,1363,1362,2458, 119,1427,
- 602,1525,2608,1605,1639,3175, 694,3064, 10, 465, 76,2000,4846,4208, 444,3781,
-1619,3353,2206,1273,3796, 740,2483, 320,1723,2377,3660,2619,1359,1137,1762,1724,
-2345,2842,1850,1862, 912, 821,1866, 612,2625,1735,2573,3369,1093, 844, 89, 937,
- 930,1424,3564,2413,2972,1004,3046,3019,2011, 711,3171,1452,4178, 428, 801,1943,
- 432, 445,2811, 206,4136,1472, 730, 349, 73, 397,2802,2547, 998,1637,1167, 789,
- 396,3217, 154,1218, 716,1120,1780,2819,4826,1931,3334,3762,2139,1215,2627, 552,
-3664,3628,3232,1405,2383,3111,1356,2652,3577,3320,3101,1703, 640,1045,1370,1246,
-4996, 371,1575,2436,1621,2210, 984,4033,1734,2638, 16,4529, 663,2755,3255,1451,
-3917,2257,1253,1955,2234,1263,2951, 214,1229, 617, 485, 359,1831,1969, 473,2310,
- 750,2058, 165, 80,2864,2419, 361,4344,2416,2479,1134, 796,3726,1266,2943, 860,
-2715, 938, 390,2734,1313,1384, 248, 202, 877,1064,2854, 522,3907, 279,1602, 297,
-2357, 395,3740, 137,2075, 944,4089,2584,1267,3802, 62,1533,2285, 178, 176, 780,
-2440, 201,3707, 590, 478,1560,4354,2117,1075, 30, 74,4643,4004,1635,1441,2745,
- 776,2596, 238,1077,1692,1912,2844, 605, 499,1742,3947, 241,3053, 980,1749, 936,
-2640,4511,2582, 515,1543,2162,5322,2892,2993, 890,2148,1924, 665,1827,3581,1032,
- 968,3163, 339,1044,1896, 270, 583,1791,1720,4367,1194,3488,3669, 43,2523,1657,
- 163,2167, 290,1209,1622,3378, 550, 634,2508,2510, 695,2634,2384,2512,1476,1414,
- 220,1469,2341,2138,2852,3183,2900,4939,2865,3502,1211,3680, 854,3227,1299,2976,
-3172, 186,2998,1459, 443,1067,3251,1495, 321,1932,3054, 909, 753,1410,1828, 436,
-2441,1119,1587,3164,2186,1258, 227, 231,1425,1890,3200,3942, 247, 959, 725,5254,
-2741, 577,2158,2079, 929, 120, 174, 838,2813, 591,1115, 417,2024, 40,3240,1536,
-1037, 291,4151,2354, 632,1298,2406,2500,3535,1825,1846,3451, 205,1171, 345,4238,
- 18,1163, 811, 685,2208,1217, 425,1312,1508,1175,4308,2552,1033, 587,1381,3059,
-2984,3482, 340,1316,4023,3972, 792,3176, 519, 777,4690, 918, 933,4130,2981,3741,
- 90,3360,2911,2200,5184,4550, 609,3079,2030, 272,3379,2736, 363,3881,1130,1447,
- 286, 779, 357,1169,3350,3137,1630,1220,2687,2391, 747,1277,3688,2618,2682,2601,
-1156,3196,5290,4034,3102,1689,3596,3128, 874, 219,2783, 798, 508,1843,2461, 269,
-1658,1776,1392,1913,2983,3287,2866,2159,2372, 829,4076, 46,4253,2873,1889,1894,
- 915,1834,1631,2181,2318, 298, 664,2818,3555,2735, 954,3228,3117, 527,3511,2173,
- 681,2712,3033,2247,2346,3467,1652, 155,2164,3382, 113,1994, 450, 899, 494, 994,
-1237,2958,1875,2336,1926,3727, 545,1577,1550, 633,3473, 204,1305,3072,2410,1956,
-2471, 707,2134, 841,2195,2196,2663,3843,1026,4940, 990,3252,4997, 368,1092, 437,
-3212,3258,1933,1829, 675,2977,2893, 412, 943,3723,4644,3294,3283,2230,2373,5154,
-2389,2241,2661,2323,1404,2524, 593, 787, 677,3008,1275,2059, 438,2709,2609,2240,
-2269,2246,1446, 36,1568,1373,3892,1574,2301,1456,3962, 693,2276,5216,2035,1143,
-2720,1919,1797,1811,2763,4137,2597,1830,1699,1488,1198,2090, 424,1694, 312,3634,
-3390,4179,3335,2252,1214, 561,1059,3243,2295,2561, 975,5155,2321,2751,3772, 472,
-1537,3282,3398,1047,2077,2348,2878,1323,3340,3076, 690,2906, 51, 369, 170,3541,
-1060,2187,2688,3670,2541,1083,1683, 928,3918, 459, 109,4427, 599,3744,4286, 143,
-2101,2730,2490, 82,1588,3036,2121, 281,1860, 477,4035,1238,2812,3020,2716,3312,
-1530,2188,2055,1317, 843, 636,1808,1173,3495, 649, 181,1002, 147,3641,1159,2414,
-3750,2289,2795, 813,3123,2610,1136,4368, 5,3391,4541,2174, 420, 429,1728, 754,
-1228,2115,2219, 347,2223,2733, 735,1518,3003,2355,3134,1764,3948,3329,1888,2424,
-1001,1234,1972,3321,3363,1672,1021,1450,1584, 226, 765, 655,2526,3404,3244,2302,
-3665, 731, 594,2184, 319,1576, 621, 658,2656,4299,2099,3864,1279,2071,2598,2739,
- 795,3086,3699,3908,1707,2352,2402,1382,3136,2475,1465,4847,3496,3865,1085,3004,
-2591,1084, 213,2287,1963,3565,2250, 822, 793,4574,3187,1772,1789,3050, 595,1484,
-1959,2770,1080,2650, 456, 422,2996, 940,3322,4328,4345,3092,2742, 965,2784, 739,
-4124, 952,1358,2498,2949,2565, 332,2698,2378, 660,2260,2473,4194,3856,2919, 535,
-1260,2651,1208,1428,1300,1949,1303,2942, 433,2455,2450,1251,1946, 614,1269, 641,
-1306,1810,2737,3078,2912, 564,2365,1419,1415,1497,4460,2367,2185,1379,3005,1307,
-3218,2175,1897,3063, 682,1157,4040,4005,1712,1160,1941,1399, 394, 402,2952,1573,
-1151,2986,2404, 862, 299,2033,1489,3006, 346, 171,2886,3401,1726,2932, 168,2533,
- 47,2507,1030,3735,1145,3370,1395,1318,1579,3609,4560,2857,4116,1457,2529,1965,
- 504,1036,2690,2988,2405, 745,5871, 849,2397,2056,3081, 863,2359,3857,2096, 99,
-1397,1769,2300,4428,1643,3455,1978,1757,3718,1440, 35,4879,3742,1296,4228,2280,
- 160,5063,1599,2013, 166, 520,3479,1646,3345,3012, 490,1937,1545,1264,2182,2505,
-1096,1188,1369,1436,2421,1667,2792,2460,1270,2122, 727,3167,2143, 806,1706,1012,
-1800,3037, 960,2218,1882, 805, 139,2456,1139,1521, 851,1052,3093,3089, 342,2039,
- 744,5097,1468,1502,1585,2087, 223, 939, 326,2140,2577, 892,2481,1623,4077, 982,
-3708, 135,2131, 87,2503,3114,2326,1106, 876,1616, 547,2997,2831,2093,3441,4530,
-4314, 9,3256,4229,4148, 659,1462,1986,1710,2046,2913,2231,4090,4880,5255,3392,
-3274,1368,3689,4645,1477, 705,3384,3635,1068,1529,2941,1458,3782,1509, 100,1656,
-2548, 718,2339, 408,1590,2780,3548,1838,4117,3719,1345,3530, 717,3442,2778,3220,
-2898,1892,4590,3614,3371,2043,1998,1224,3483, 891, 635, 584,2559,3355, 733,1766,
-1729,1172,3789,1891,2307, 781,2982,2271,1957,1580,5773,2633,2005,4195,3097,1535,
-3213,1189,1934,5693,3262, 586,3118,1324,1598, 517,1564,2217,1868,1893,4445,3728,
-2703,3139,1526,1787,1992,3882,2875,1549,1199,1056,2224,1904,2711,5098,4287, 338,
-1993,3129,3489,2689,1809,2815,1997, 957,1855,3898,2550,3275,3057,1105,1319, 627,
-1505,1911,1883,3526, 698,3629,3456,1833,1431, 746, 77,1261,2017,2296,1977,1885,
- 125,1334,1600, 525,1798,1109,2222,1470,1945, 559,2236,1186,3443,2476,1929,1411,
-2411,3135,1777,3372,2621,1841,1613,3229, 668,1430,1839,2643,2916, 195,1989,2671,
-2358,1387, 629,3205,2293,5256,4439, 123,1310, 888,1879,4300,3021,3605,1003,1162,
-3192,2910,2010, 140,2395,2859, 55,1082,2012,2901, 662, 419,2081,1438, 680,2774,
-4654,3912,1620,1731,1625,5035,4065,2328, 512,1344, 802,5443,2163,2311,2537, 524,
-3399, 98,1155,2103,1918,2606,3925,2816,1393,2465,1504,3773,2177,3963,1478,4346,
- 180,1113,4655,3461,2028,1698, 833,2696,1235,1322,1594,4408,3623,3013,3225,2040,
-3022, 541,2881, 607,3632,2029,1665,1219, 639,1385,1686,1099,2803,3231,1938,3188,
-2858, 427, 676,2772,1168,2025, 454,3253,2486,3556, 230,1950, 580, 791,1991,1280,
-1086,1974,2034, 630, 257,3338,2788,4903,1017, 86,4790, 966,2789,1995,1696,1131,
- 259,3095,4188,1308, 179,1463,5257, 289,4107,1248, 42,3413,1725,2288, 896,1947,
- 774,4474,4254, 604,3430,4264, 392,2514,2588, 452, 237,1408,3018, 988,4531,1970,
-3034,3310, 540,2370,1562,1288,2990, 502,4765,1147, 4,1853,2708, 207, 294,2814,
-4078,2902,2509, 684, 34,3105,3532,2551, 644, 709,2801,2344, 573,1727,3573,3557,
-2021,1081,3100,4315,2100,3681, 199,2263,1837,2385, 146,3484,1195,2776,3949, 997,
-1939,3973,1008,1091,1202,1962,1847,1149,4209,5444,1076, 493, 117,5400,2521, 972,
-1490,2934,1796,4542,2374,1512,2933,2657, 413,2888,1135,2762,2314,2156,1355,2369,
- 766,2007,2527,2170,3124,2491,2593,2632,4757,2437, 234,3125,3591,1898,1750,1376,
-1942,3468,3138, 570,2127,2145,3276,4131, 962, 132,1445,4196, 19, 941,3624,3480,
-3366,1973,1374,4461,3431,2629, 283,2415,2275, 808,2887,3620,2112,2563,1353,3610,
- 955,1089,3103,1053, 96, 88,4097, 823,3808,1583, 399, 292,4091,3313, 421,1128,
- 642,4006, 903,2539,1877,2082, 596, 29,4066,1790, 722,2157, 130, 995,1569, 769,
-1485, 464, 513,2213, 288,1923,1101,2453,4316, 133, 486,2445, 50, 625, 487,2207,
- 57, 423, 481,2962, 159,3729,1558, 491, 303, 482, 501, 240,2837, 112,3648,2392,
-1783, 362, 8,3433,3422, 610,2793,3277,1390,1284,1654, 21,3823, 734, 367, 623,
- 193, 287, 374,1009,1483, 816, 476, 313,2255,2340,1262,2150,2899,1146,2581, 782,
-2116,1659,2018,1880, 255,3586,3314,1110,2867,2137,2564, 986,2767,5185,2006, 650,
- 158, 926, 762, 881,3157,2717,2362,3587, 306,3690,3245,1542,3077,2427,1691,2478,
-2118,2985,3490,2438, 539,2305, 983, 129,1754, 355,4201,2386, 827,2923, 104,1773,
-2838,2771, 411,2905,3919, 376, 767, 122,1114, 828,2422,1817,3506, 266,3460,1007,
-1609,4998, 945,2612,4429,2274, 726,1247,1964,2914,2199,2070,4002,4108, 657,3323,
-1422, 579, 455,2764,4737,1222,2895,1670, 824,1223,1487,2525, 558, 861,3080, 598,
-2659,2515,1967, 752,2583,2376,2214,4180, 977, 704,2464,4999,2622,4109,1210,2961,
- 819,1541, 142,2284, 44, 418, 457,1126,3730,4347,4626,1644,1876,3671,1864, 302,
-1063,5694, 624, 723,1984,3745,1314,1676,2488,1610,1449,3558,3569,2166,2098, 409,
-1011,2325,3704,2306, 818,1732,1383,1824,1844,3757, 999,2705,3497,1216,1423,2683,
-2426,2954,2501,2726,2229,1475,2554,5064,1971,1794,1666,2014,1343, 783, 724, 191,
-2434,1354,2220,5065,1763,2752,2472,4152, 131, 175,2885,3434, 92,1466,4920,2616,
-3871,3872,3866, 128,1551,1632, 669,1854,3682,4691,4125,1230, 188,2973,3290,1302,
-1213, 560,3266, 917, 763,3909,3249,1760, 868,1958, 764,1782,2097, 145,2277,3774,
-4462, 64,1491,3062, 971,2132,3606,2442, 221,1226,1617, 218, 323,1185,3207,3147,
- 571, 619,1473,1005,1744,2281, 449,1887,2396,3685, 275, 375,3816,1743,3844,3731,
- 845,1983,2350,4210,1377, 773, 967,3499,3052,3743,2725,4007,1697,1022,3943,1464,
-3264,2855,2722,1952,1029,2839,2467, 84,4383,2215, 820,1391,2015,2448,3672, 377,
-1948,2168, 797,2545,3536,2578,2645, 94,2874,1678, 405,1259,3071, 771, 546,1315,
- 470,1243,3083, 895,2468, 981, 969,2037, 846,4181, 653,1276,2928, 14,2594, 557,
-3007,2474, 156, 902,1338,1740,2574, 537,2518, 973,2282,2216,2433,1928, 138,2903,
-1293,2631,1612, 646,3457, 839,2935, 111, 496,2191,2847, 589,3186, 149,3994,2060,
-4031,2641,4067,3145,1870, 37,3597,2136,1025,2051,3009,3383,3549,1121,1016,3261,
-1301, 251,2446,2599,2153, 872,3246, 637, 334,3705, 831, 884, 921,3065,3140,4092,
-2198,1944, 246,2964, 108,2045,1152,1921,2308,1031, 203,3173,4170,1907,3890, 810,
-1401,2003,1690, 506, 647,1242,2828,1761,1649,3208,2249,1589,3709,2931,5156,1708,
- 498, 666,2613, 834,3817,1231, 184,2851,1124, 883,3197,2261,3710,1765,1553,2658,
-1178,2639,2351, 93,1193, 942,2538,2141,4402, 235,1821, 870,1591,2192,1709,1871,
-3341,1618,4126,2595,2334, 603, 651, 69, 701, 268,2662,3411,2555,1380,1606, 503,
- 448, 254,2371,2646, 574,1187,2309,1770, 322,2235,1292,1801, 305, 566,1133, 229,
-2067,2057, 706, 167, 483,2002,2672,3295,1820,3561,3067, 316, 378,2746,3452,1112,
- 136,1981, 507,1651,2917,1117, 285,4591, 182,2580,3522,1304, 335,3303,1835,2504,
-1795,1792,2248, 674,1018,2106,2449,1857,2292,2845, 976,3047,1781,2600,2727,1389,
-1281, 52,3152, 153, 265,3950, 672,3485,3951,4463, 430,1183, 365, 278,2169, 27,
-1407,1336,2304, 209,1340,1730,2202,1852,2403,2883, 979,1737,1062, 631,2829,2542,
-3876,2592, 825,2086,2226,3048,3625, 352,1417,3724, 542, 991, 431,1351,3938,1861,
-2294, 826,1361,2927,3142,3503,1738, 463,2462,2723, 582,1916,1595,2808, 400,3845,
-3891,2868,3621,2254, 58,2492,1123, 910,2160,2614,1372,1603,1196,1072,3385,1700,
-3267,1980, 696, 480,2430, 920, 799,1570,2920,1951,2041,4047,2540,1321,4223,2469,
-3562,2228,1271,2602, 401,2833,3351,2575,5157, 907,2312,1256, 410, 263,3507,1582,
- 996, 678,1849,2316,1480, 908,3545,2237, 703,2322, 667,1826,2849,1531,2604,2999,
-2407,3146,2151,2630,1786,3711, 469,3542, 497,3899,2409, 858, 837,4446,3393,1274,
- 786, 620,1845,2001,3311, 484, 308,3367,1204,1815,3691,2332,1532,2557,1842,2020,
-2724,1927,2333,4440, 567, 22,1673,2728,4475,1987,1858,1144,1597, 101,1832,3601,
- 12, 974,3783,4391, 951,1412, 1,3720, 453,4608,4041, 528,1041,1027,3230,2628,
-1129, 875,1051,3291,1203,2262,1069,2860,2799,2149,2615,3278, 144,1758,3040, 31,
- 475,1680, 366,2685,3184, 311,1642,4008,2466,5036,1593,1493,2809, 216,1420,1668,
- 233, 304,2128,3284, 232,1429,1768,1040,2008,3407,2740,2967,2543, 242,2133, 778,
-1565,2022,2620, 505,2189,2756,1098,2273, 372,1614, 708, 553,2846,2094,2278, 169,
-3626,2835,4161, 228,2674,3165, 809,1454,1309, 466,1705,1095, 900,3423, 880,2667,
-3751,5258,2317,3109,2571,4317,2766,1503,1342, 866,4447,1118, 63,2076, 314,1881,
-1348,1061, 172, 978,3515,1747, 532, 511,3970, 6, 601, 905,2699,3300,1751, 276,
-1467,3725,2668, 65,4239,2544,2779,2556,1604, 578,2451,1802, 992,2331,2624,1320,
-3446, 713,1513,1013, 103,2786,2447,1661, 886,1702, 916, 654,3574,2031,1556, 751,
-2178,2821,2179,1498,1538,2176, 271, 914,2251,2080,1325, 638,1953,2937,3877,2432,
-2754, 95,3265,1716, 260,1227,4083, 775, 106,1357,3254, 426,1607, 555,2480, 772,
-1985, 244,2546, 474, 495,1046,2611,1851,2061, 71,2089,1675,2590, 742,3758,2843,
-3222,1433, 267,2180,2576,2826,2233,2092,3913,2435, 956,1745,3075, 856,2113,1116,
- 451, 3,1988,2896,1398, 993,2463,1878,2049,1341,2718,2721,2870,2108, 712,2904,
-4363,2753,2324, 277,2872,2349,2649, 384, 987, 435, 691,3000, 922, 164,3939, 652,
-1500,1184,4153,2482,3373,2165,4848,2335,3775,3508,3154,2806,2830,1554,2102,1664,
-2530,1434,2408, 893,1547,2623,3447,2832,2242,2532,3169,2856,3223,2078, 49,3770,
-3469, 462, 318, 656,2259,3250,3069, 679,1629,2758, 344,1138,1104,3120,1836,1283,
-3115,2154,1437,4448, 934, 759,1999, 794,2862,1038, 533,2560,1722,2342, 855,2626,
-1197,1663,4476,3127, 85,4240,2528, 25,1111,1181,3673, 407,3470,4561,2679,2713,
- 768,1925,2841,3986,1544,1165, 932, 373,1240,2146,1930,2673, 721,4766, 354,4333,
- 391,2963, 187, 61,3364,1442,1102, 330,1940,1767, 341,3809,4118, 393,2496,2062,
-2211, 105, 331, 300, 439, 913,1332, 626, 379,3304,1557, 328, 689,3952, 309,1555,
- 931, 317,2517,3027, 325, 569, 686,2107,3084, 60,1042,1333,2794, 264,3177,4014,
-1628, 258,3712, 7,4464,1176,1043,1778, 683, 114,1975, 78,1492, 383,1886, 510,
- 386, 645,5291,2891,2069,3305,4138,3867,2939,2603,2493,1935,1066,1848,3588,1015,
-1282,1289,4609, 697,1453,3044,2666,3611,1856,2412, 54, 719,1330, 568,3778,2459,
-1748, 788, 492, 551,1191,1000, 488,3394,3763, 282,1799, 348,2016,1523,3155,2390,
-1049, 382,2019,1788,1170, 729,2968,3523, 897,3926,2785,2938,3292, 350,2319,3238,
-1718,1717,2655,3453,3143,4465, 161,2889,2980,2009,1421, 56,1908,1640,2387,2232,
-1917,1874,2477,4921, 148, 83,3438, 592,4245,2882,1822,1055, 741, 115,1496,1624,
- 381,1638,4592,1020, 516,3214, 458, 947,4575,1432, 211,1514,2926,1865,2142, 189,
- 852,1221,1400,1486, 882,2299,4036, 351, 28,1122, 700,6479,6480,6481,6482,6483, # last 512
-#Everything below is of no interest for detection purpose
-5508,6484,3900,3414,3974,4441,4024,3537,4037,5628,5099,3633,6485,3148,6486,3636,
-5509,3257,5510,5973,5445,5872,4941,4403,3174,4627,5873,6276,2286,4230,5446,5874,
-5122,6102,6103,4162,5447,5123,5323,4849,6277,3980,3851,5066,4246,5774,5067,6278,
-3001,2807,5695,3346,5775,5974,5158,5448,6487,5975,5976,5776,3598,6279,5696,4806,
-4211,4154,6280,6488,6489,6490,6281,4212,5037,3374,4171,6491,4562,4807,4722,4827,
-5977,6104,4532,4079,5159,5324,5160,4404,3858,5359,5875,3975,4288,4610,3486,4512,
-5325,3893,5360,6282,6283,5560,2522,4231,5978,5186,5449,2569,3878,6284,5401,3578,
-4415,6285,4656,5124,5979,2506,4247,4449,3219,3417,4334,4969,4329,6492,4576,4828,
-4172,4416,4829,5402,6286,3927,3852,5361,4369,4830,4477,4867,5876,4173,6493,6105,
-4657,6287,6106,5877,5450,6494,4155,4868,5451,3700,5629,4384,6288,6289,5878,3189,
-4881,6107,6290,6495,4513,6496,4692,4515,4723,5100,3356,6497,6291,3810,4080,5561,
-3570,4430,5980,6498,4355,5697,6499,4724,6108,6109,3764,4050,5038,5879,4093,3226,
-6292,5068,5217,4693,3342,5630,3504,4831,4377,4466,4309,5698,4431,5777,6293,5778,
-4272,3706,6110,5326,3752,4676,5327,4273,5403,4767,5631,6500,5699,5880,3475,5039,
-6294,5562,5125,4348,4301,4482,4068,5126,4593,5700,3380,3462,5981,5563,3824,5404,
-4970,5511,3825,4738,6295,6501,5452,4516,6111,5881,5564,6502,6296,5982,6503,4213,
-4163,3454,6504,6112,4009,4450,6113,4658,6297,6114,3035,6505,6115,3995,4904,4739,
-4563,4942,4110,5040,3661,3928,5362,3674,6506,5292,3612,4791,5565,4149,5983,5328,
-5259,5021,4725,4577,4564,4517,4364,6298,5405,4578,5260,4594,4156,4157,5453,3592,
-3491,6507,5127,5512,4709,4922,5984,5701,4726,4289,6508,4015,6116,5128,4628,3424,
-4241,5779,6299,4905,6509,6510,5454,5702,5780,6300,4365,4923,3971,6511,5161,3270,
-3158,5985,4100, 867,5129,5703,6117,5363,3695,3301,5513,4467,6118,6512,5455,4232,
-4242,4629,6513,3959,4478,6514,5514,5329,5986,4850,5162,5566,3846,4694,6119,5456,
-4869,5781,3779,6301,5704,5987,5515,4710,6302,5882,6120,4392,5364,5705,6515,6121,
-6516,6517,3736,5988,5457,5989,4695,2457,5883,4551,5782,6303,6304,6305,5130,4971,
-6122,5163,6123,4870,3263,5365,3150,4871,6518,6306,5783,5069,5706,3513,3498,4409,
-5330,5632,5366,5458,5459,3991,5990,4502,3324,5991,5784,3696,4518,5633,4119,6519,
-4630,5634,4417,5707,4832,5992,3418,6124,5993,5567,4768,5218,6520,4595,3458,5367,
-6125,5635,6126,4202,6521,4740,4924,6307,3981,4069,4385,6308,3883,2675,4051,3834,
-4302,4483,5568,5994,4972,4101,5368,6309,5164,5884,3922,6127,6522,6523,5261,5460,
-5187,4164,5219,3538,5516,4111,3524,5995,6310,6311,5369,3181,3386,2484,5188,3464,
-5569,3627,5708,6524,5406,5165,4677,4492,6312,4872,4851,5885,4468,5996,6313,5709,
-5710,6128,2470,5886,6314,5293,4882,5785,3325,5461,5101,6129,5711,5786,6525,4906,
-6526,6527,4418,5887,5712,4808,2907,3701,5713,5888,6528,3765,5636,5331,6529,6530,
-3593,5889,3637,4943,3692,5714,5787,4925,6315,6130,5462,4405,6131,6132,6316,5262,
-6531,6532,5715,3859,5716,5070,4696,5102,3929,5788,3987,4792,5997,6533,6534,3920,
-4809,5000,5998,6535,2974,5370,6317,5189,5263,5717,3826,6536,3953,5001,4883,3190,
-5463,5890,4973,5999,4741,6133,6134,3607,5570,6000,4711,3362,3630,4552,5041,6318,
-6001,2950,2953,5637,4646,5371,4944,6002,2044,4120,3429,6319,6537,5103,4833,6538,
-6539,4884,4647,3884,6003,6004,4758,3835,5220,5789,4565,5407,6540,6135,5294,4697,
-4852,6320,6321,3206,4907,6541,6322,4945,6542,6136,6543,6323,6005,4631,3519,6544,
-5891,6545,5464,3784,5221,6546,5571,4659,6547,6324,6137,5190,6548,3853,6549,4016,
-4834,3954,6138,5332,3827,4017,3210,3546,4469,5408,5718,3505,4648,5790,5131,5638,
-5791,5465,4727,4318,6325,6326,5792,4553,4010,4698,3439,4974,3638,4335,3085,6006,
-5104,5042,5166,5892,5572,6327,4356,4519,5222,5573,5333,5793,5043,6550,5639,5071,
-4503,6328,6139,6551,6140,3914,3901,5372,6007,5640,4728,4793,3976,3836,4885,6552,
-4127,6553,4451,4102,5002,6554,3686,5105,6555,5191,5072,5295,4611,5794,5296,6556,
-5893,5264,5894,4975,5466,5265,4699,4976,4370,4056,3492,5044,4886,6557,5795,4432,
-4769,4357,5467,3940,4660,4290,6141,4484,4770,4661,3992,6329,4025,4662,5022,4632,
-4835,4070,5297,4663,4596,5574,5132,5409,5895,6142,4504,5192,4664,5796,5896,3885,
-5575,5797,5023,4810,5798,3732,5223,4712,5298,4084,5334,5468,6143,4052,4053,4336,
-4977,4794,6558,5335,4908,5576,5224,4233,5024,4128,5469,5225,4873,6008,5045,4729,
-4742,4633,3675,4597,6559,5897,5133,5577,5003,5641,5719,6330,6560,3017,2382,3854,
-4406,4811,6331,4393,3964,4946,6561,2420,3722,6562,4926,4378,3247,1736,4442,6332,
-5134,6333,5226,3996,2918,5470,4319,4003,4598,4743,4744,4485,3785,3902,5167,5004,
-5373,4394,5898,6144,4874,1793,3997,6334,4085,4214,5106,5642,4909,5799,6009,4419,
-4189,3330,5899,4165,4420,5299,5720,5227,3347,6145,4081,6335,2876,3930,6146,3293,
-3786,3910,3998,5900,5300,5578,2840,6563,5901,5579,6147,3531,5374,6564,6565,5580,
-4759,5375,6566,6148,3559,5643,6336,6010,5517,6337,6338,5721,5902,3873,6011,6339,
-6567,5518,3868,3649,5722,6568,4771,4947,6569,6149,4812,6570,2853,5471,6340,6341,
-5644,4795,6342,6012,5723,6343,5724,6013,4349,6344,3160,6150,5193,4599,4514,4493,
-5168,4320,6345,4927,3666,4745,5169,5903,5005,4928,6346,5725,6014,4730,4203,5046,
-4948,3395,5170,6015,4150,6016,5726,5519,6347,5047,3550,6151,6348,4197,4310,5904,
-6571,5581,2965,6152,4978,3960,4291,5135,6572,5301,5727,4129,4026,5905,4853,5728,
-5472,6153,6349,4533,2700,4505,5336,4678,3583,5073,2994,4486,3043,4554,5520,6350,
-6017,5800,4487,6351,3931,4103,5376,6352,4011,4321,4311,4190,5136,6018,3988,3233,
-4350,5906,5645,4198,6573,5107,3432,4191,3435,5582,6574,4139,5410,6353,5411,3944,
-5583,5074,3198,6575,6354,4358,6576,5302,4600,5584,5194,5412,6577,6578,5585,5413,
-5303,4248,5414,3879,4433,6579,4479,5025,4854,5415,6355,4760,4772,3683,2978,4700,
-3797,4452,3965,3932,3721,4910,5801,6580,5195,3551,5907,3221,3471,3029,6019,3999,
-5908,5909,5266,5267,3444,3023,3828,3170,4796,5646,4979,4259,6356,5647,5337,3694,
-6357,5648,5338,4520,4322,5802,3031,3759,4071,6020,5586,4836,4386,5048,6581,3571,
-4679,4174,4949,6154,4813,3787,3402,3822,3958,3215,3552,5268,4387,3933,4950,4359,
-6021,5910,5075,3579,6358,4234,4566,5521,6359,3613,5049,6022,5911,3375,3702,3178,
-4911,5339,4521,6582,6583,4395,3087,3811,5377,6023,6360,6155,4027,5171,5649,4421,
-4249,2804,6584,2270,6585,4000,4235,3045,6156,5137,5729,4140,4312,3886,6361,4330,
-6157,4215,6158,3500,3676,4929,4331,3713,4930,5912,4265,3776,3368,5587,4470,4855,
-3038,4980,3631,6159,6160,4132,4680,6161,6362,3923,4379,5588,4255,6586,4121,6587,
-6363,4649,6364,3288,4773,4774,6162,6024,6365,3543,6588,4274,3107,3737,5050,5803,
-4797,4522,5589,5051,5730,3714,4887,5378,4001,4523,6163,5026,5522,4701,4175,2791,
-3760,6589,5473,4224,4133,3847,4814,4815,4775,3259,5416,6590,2738,6164,6025,5304,
-3733,5076,5650,4816,5590,6591,6165,6592,3934,5269,6593,3396,5340,6594,5804,3445,
-3602,4042,4488,5731,5732,3525,5591,4601,5196,6166,6026,5172,3642,4612,3202,4506,
-4798,6366,3818,5108,4303,5138,5139,4776,3332,4304,2915,3415,4434,5077,5109,4856,
-2879,5305,4817,6595,5913,3104,3144,3903,4634,5341,3133,5110,5651,5805,6167,4057,
-5592,2945,4371,5593,6596,3474,4182,6367,6597,6168,4507,4279,6598,2822,6599,4777,
-4713,5594,3829,6169,3887,5417,6170,3653,5474,6368,4216,2971,5228,3790,4579,6369,
-5733,6600,6601,4951,4746,4555,6602,5418,5475,6027,3400,4665,5806,6171,4799,6028,
-5052,6172,3343,4800,4747,5006,6370,4556,4217,5476,4396,5229,5379,5477,3839,5914,
-5652,5807,4714,3068,4635,5808,6173,5342,4192,5078,5419,5523,5734,6174,4557,6175,
-4602,6371,6176,6603,5809,6372,5735,4260,3869,5111,5230,6029,5112,6177,3126,4681,
-5524,5915,2706,3563,4748,3130,6178,4018,5525,6604,6605,5478,4012,4837,6606,4534,
-4193,5810,4857,3615,5479,6030,4082,3697,3539,4086,5270,3662,4508,4931,5916,4912,
-5811,5027,3888,6607,4397,3527,3302,3798,2775,2921,2637,3966,4122,4388,4028,4054,
-1633,4858,5079,3024,5007,3982,3412,5736,6608,3426,3236,5595,3030,6179,3427,3336,
-3279,3110,6373,3874,3039,5080,5917,5140,4489,3119,6374,5812,3405,4494,6031,4666,
-4141,6180,4166,6032,5813,4981,6609,5081,4422,4982,4112,3915,5653,3296,3983,6375,
-4266,4410,5654,6610,6181,3436,5082,6611,5380,6033,3819,5596,4535,5231,5306,5113,
-6612,4952,5918,4275,3113,6613,6376,6182,6183,5814,3073,4731,4838,5008,3831,6614,
-4888,3090,3848,4280,5526,5232,3014,5655,5009,5737,5420,5527,6615,5815,5343,5173,
-5381,4818,6616,3151,4953,6617,5738,2796,3204,4360,2989,4281,5739,5174,5421,5197,
-3132,5141,3849,5142,5528,5083,3799,3904,4839,5480,2880,4495,3448,6377,6184,5271,
-5919,3771,3193,6034,6035,5920,5010,6036,5597,6037,6378,6038,3106,5422,6618,5423,
-5424,4142,6619,4889,5084,4890,4313,5740,6620,3437,5175,5307,5816,4199,5198,5529,
-5817,5199,5656,4913,5028,5344,3850,6185,2955,5272,5011,5818,4567,4580,5029,5921,
-3616,5233,6621,6622,6186,4176,6039,6379,6380,3352,5200,5273,2908,5598,5234,3837,
-5308,6623,6624,5819,4496,4323,5309,5201,6625,6626,4983,3194,3838,4167,5530,5922,
-5274,6381,6382,3860,3861,5599,3333,4292,4509,6383,3553,5481,5820,5531,4778,6187,
-3955,3956,4324,4389,4218,3945,4325,3397,2681,5923,4779,5085,4019,5482,4891,5382,
-5383,6040,4682,3425,5275,4094,6627,5310,3015,5483,5657,4398,5924,3168,4819,6628,
-5925,6629,5532,4932,4613,6041,6630,4636,6384,4780,4204,5658,4423,5821,3989,4683,
-5822,6385,4954,6631,5345,6188,5425,5012,5384,3894,6386,4490,4104,6632,5741,5053,
-6633,5823,5926,5659,5660,5927,6634,5235,5742,5824,4840,4933,4820,6387,4859,5928,
-4955,6388,4143,3584,5825,5346,5013,6635,5661,6389,5014,5484,5743,4337,5176,5662,
-6390,2836,6391,3268,6392,6636,6042,5236,6637,4158,6638,5744,5663,4471,5347,3663,
-4123,5143,4293,3895,6639,6640,5311,5929,5826,3800,6189,6393,6190,5664,5348,3554,
-3594,4749,4603,6641,5385,4801,6043,5827,4183,6642,5312,5426,4761,6394,5665,6191,
-4715,2669,6643,6644,5533,3185,5427,5086,5930,5931,5386,6192,6044,6645,4781,4013,
-5745,4282,4435,5534,4390,4267,6045,5746,4984,6046,2743,6193,3501,4087,5485,5932,
-5428,4184,4095,5747,4061,5054,3058,3862,5933,5600,6646,5144,3618,6395,3131,5055,
-5313,6396,4650,4956,3855,6194,3896,5202,4985,4029,4225,6195,6647,5828,5486,5829,
-3589,3002,6648,6397,4782,5276,6649,6196,6650,4105,3803,4043,5237,5830,6398,4096,
-3643,6399,3528,6651,4453,3315,4637,6652,3984,6197,5535,3182,3339,6653,3096,2660,
-6400,6654,3449,5934,4250,4236,6047,6401,5831,6655,5487,3753,4062,5832,6198,6199,
-6656,3766,6657,3403,4667,6048,6658,4338,2897,5833,3880,2797,3780,4326,6659,5748,
-5015,6660,5387,4351,5601,4411,6661,3654,4424,5935,4339,4072,5277,4568,5536,6402,
-6662,5238,6663,5349,5203,6200,5204,6201,5145,4536,5016,5056,4762,5834,4399,4957,
-6202,6403,5666,5749,6664,4340,6665,5936,5177,5667,6666,6667,3459,4668,6404,6668,
-6669,4543,6203,6670,4276,6405,4480,5537,6671,4614,5205,5668,6672,3348,2193,4763,
-6406,6204,5937,5602,4177,5669,3419,6673,4020,6205,4443,4569,5388,3715,3639,6407,
-6049,4058,6206,6674,5938,4544,6050,4185,4294,4841,4651,4615,5488,6207,6408,6051,
-5178,3241,3509,5835,6208,4958,5836,4341,5489,5278,6209,2823,5538,5350,5206,5429,
-6675,4638,4875,4073,3516,4684,4914,4860,5939,5603,5389,6052,5057,3237,5490,3791,
-6676,6409,6677,4821,4915,4106,5351,5058,4243,5539,4244,5604,4842,4916,5239,3028,
-3716,5837,5114,5605,5390,5940,5430,6210,4332,6678,5540,4732,3667,3840,6053,4305,
-3408,5670,5541,6410,2744,5240,5750,6679,3234,5606,6680,5607,5671,3608,4283,4159,
-4400,5352,4783,6681,6411,6682,4491,4802,6211,6412,5941,6413,6414,5542,5751,6683,
-4669,3734,5942,6684,6415,5943,5059,3328,4670,4144,4268,6685,6686,6687,6688,4372,
-3603,6689,5944,5491,4373,3440,6416,5543,4784,4822,5608,3792,4616,5838,5672,3514,
-5391,6417,4892,6690,4639,6691,6054,5673,5839,6055,6692,6056,5392,6212,4038,5544,
-5674,4497,6057,6693,5840,4284,5675,4021,4545,5609,6418,4454,6419,6213,4113,4472,
-5314,3738,5087,5279,4074,5610,4959,4063,3179,4750,6058,6420,6214,3476,4498,4716,
-5431,4960,4685,6215,5241,6694,6421,6216,6695,5841,5945,6422,3748,5946,5179,3905,
-5752,5545,5947,4374,6217,4455,6423,4412,6218,4803,5353,6696,3832,5280,6219,4327,
-4702,6220,6221,6059,4652,5432,6424,3749,4751,6425,5753,4986,5393,4917,5948,5030,
-5754,4861,4733,6426,4703,6697,6222,4671,5949,4546,4961,5180,6223,5031,3316,5281,
-6698,4862,4295,4934,5207,3644,6427,5842,5950,6428,6429,4570,5843,5282,6430,6224,
-5088,3239,6060,6699,5844,5755,6061,6431,2701,5546,6432,5115,5676,4039,3993,3327,
-4752,4425,5315,6433,3941,6434,5677,4617,4604,3074,4581,6225,5433,6435,6226,6062,
-4823,5756,5116,6227,3717,5678,4717,5845,6436,5679,5846,6063,5847,6064,3977,3354,
-6437,3863,5117,6228,5547,5394,4499,4524,6229,4605,6230,4306,4500,6700,5951,6065,
-3693,5952,5089,4366,4918,6701,6231,5548,6232,6702,6438,4704,5434,6703,6704,5953,
-4168,6705,5680,3420,6706,5242,4407,6066,3812,5757,5090,5954,4672,4525,3481,5681,
-4618,5395,5354,5316,5955,6439,4962,6707,4526,6440,3465,4673,6067,6441,5682,6708,
-5435,5492,5758,5683,4619,4571,4674,4804,4893,4686,5493,4753,6233,6068,4269,6442,
-6234,5032,4705,5146,5243,5208,5848,6235,6443,4963,5033,4640,4226,6236,5849,3387,
-6444,6445,4436,4437,5850,4843,5494,4785,4894,6709,4361,6710,5091,5956,3331,6237,
-4987,5549,6069,6711,4342,3517,4473,5317,6070,6712,6071,4706,6446,5017,5355,6713,
-6714,4988,5436,6447,4734,5759,6715,4735,4547,4456,4754,6448,5851,6449,6450,3547,
-5852,5318,6451,6452,5092,4205,6716,6238,4620,4219,5611,6239,6072,4481,5760,5957,
-5958,4059,6240,6453,4227,4537,6241,5761,4030,4186,5244,5209,3761,4457,4876,3337,
-5495,5181,6242,5959,5319,5612,5684,5853,3493,5854,6073,4169,5613,5147,4895,6074,
-5210,6717,5182,6718,3830,6243,2798,3841,6075,6244,5855,5614,3604,4606,5496,5685,
-5118,5356,6719,6454,5960,5357,5961,6720,4145,3935,4621,5119,5962,4261,6721,6455,
-4786,5963,4375,4582,6245,6246,6247,6076,5437,4877,5856,3376,4380,6248,4160,6722,
-5148,6456,5211,6457,6723,4718,6458,6724,6249,5358,4044,3297,6459,6250,5857,5615,
-5497,5245,6460,5498,6725,6251,6252,5550,3793,5499,2959,5396,6461,6462,4572,5093,
-5500,5964,3806,4146,6463,4426,5762,5858,6077,6253,4755,3967,4220,5965,6254,4989,
-5501,6464,4352,6726,6078,4764,2290,5246,3906,5438,5283,3767,4964,2861,5763,5094,
-6255,6256,4622,5616,5859,5860,4707,6727,4285,4708,4824,5617,6257,5551,4787,5212,
-4965,4935,4687,6465,6728,6466,5686,6079,3494,4413,2995,5247,5966,5618,6729,5967,
-5764,5765,5687,5502,6730,6731,6080,5397,6467,4990,6258,6732,4538,5060,5619,6733,
-4719,5688,5439,5018,5149,5284,5503,6734,6081,4607,6259,5120,3645,5861,4583,6260,
-4584,4675,5620,4098,5440,6261,4863,2379,3306,4585,5552,5689,4586,5285,6735,4864,
-6736,5286,6082,6737,4623,3010,4788,4381,4558,5621,4587,4896,3698,3161,5248,4353,
-4045,6262,3754,5183,4588,6738,6263,6739,6740,5622,3936,6741,6468,6742,6264,5095,
-6469,4991,5968,6743,4992,6744,6083,4897,6745,4256,5766,4307,3108,3968,4444,5287,
-3889,4343,6084,4510,6085,4559,6086,4898,5969,6746,5623,5061,4919,5249,5250,5504,
-5441,6265,5320,4878,3242,5862,5251,3428,6087,6747,4237,5624,5442,6266,5553,4539,
-6748,2585,3533,5398,4262,6088,5150,4736,4438,6089,6267,5505,4966,6749,6268,6750,
-6269,5288,5554,3650,6090,6091,4624,6092,5690,6751,5863,4270,5691,4277,5555,5864,
-6752,5692,4720,4865,6470,5151,4688,4825,6753,3094,6754,6471,3235,4653,6755,5213,
-5399,6756,3201,4589,5865,4967,6472,5866,6473,5019,3016,6757,5321,4756,3957,4573,
-6093,4993,5767,4721,6474,6758,5625,6759,4458,6475,6270,6760,5556,4994,5214,5252,
-6271,3875,5768,6094,5034,5506,4376,5769,6761,2120,6476,5253,5770,6762,5771,5970,
-3990,5971,5557,5558,5772,6477,6095,2787,4641,5972,5121,6096,6097,6272,6763,3703,
-5867,5507,6273,4206,6274,4789,6098,6764,3619,3646,3833,3804,2394,3788,4936,3978,
-4866,4899,6099,6100,5559,6478,6765,3599,5868,6101,5869,5870,6275,6766,4527,6767)
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/gb2312prober.py b/vendor/requests/packages/chardet/gb2312prober.py
deleted file mode 100644
index 0325a2d8..00000000
--- a/vendor/requests/packages/chardet/gb2312prober.py
+++ /dev/null
@@ -1,41 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import GB2312DistributionAnalysis
-from .mbcssm import GB2312SMModel
-
-class GB2312Prober(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(GB2312SMModel)
- self._mDistributionAnalyzer = GB2312DistributionAnalysis()
- self.reset()
-
- def get_charset_name(self):
- return "GB2312"
diff --git a/vendor/requests/packages/chardet/hebrewprober.py b/vendor/requests/packages/chardet/hebrewprober.py
deleted file mode 100644
index ba225c5e..00000000
--- a/vendor/requests/packages/chardet/hebrewprober.py
+++ /dev/null
@@ -1,283 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Shy Shalom
-# Portions created by the Initial Developer are Copyright (C) 2005
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .charsetprober import CharSetProber
-from .constants import eNotMe, eDetecting
-from .compat import wrap_ord
-
-# This prober doesn't actually recognize a language or a charset.
-# It is a helper prober for the use of the Hebrew model probers
-
-### General ideas of the Hebrew charset recognition ###
-#
-# Four main charsets exist in Hebrew:
-# "ISO-8859-8" - Visual Hebrew
-# "windows-1255" - Logical Hebrew
-# "ISO-8859-8-I" - Logical Hebrew
-# "x-mac-hebrew" - ?? Logical Hebrew ??
-#
-# Both "ISO" charsets use a completely identical set of code points, whereas
-# "windows-1255" and "x-mac-hebrew" are two different proper supersets of
-# these code points. windows-1255 defines additional characters in the range
-# 0x80-0x9F as some misc punctuation marks as well as some Hebrew-specific
-# diacritics and additional 'Yiddish' ligature letters in the range 0xc0-0xd6.
-# x-mac-hebrew defines similar additional code points but with a different
-# mapping.
-#
-# As far as an average Hebrew text with no diacritics is concerned, all four
-# charsets are identical with respect to code points. Meaning that for the
-# main Hebrew alphabet, all four map the same values to all 27 Hebrew letters
-# (including final letters).
-#
-# The dominant difference between these charsets is their directionality.
-# "Visual" directionality means that the text is ordered as if the renderer is
-# not aware of a BIDI rendering algorithm. The renderer sees the text and
-# draws it from left to right. The text itself when ordered naturally is read
-# backwards. A buffer of Visual Hebrew generally looks like so:
-# "[last word of first line spelled backwards] [whole line ordered backwards
-# and spelled backwards] [first word of first line spelled backwards]
-# [end of line] [last word of second line] ... etc' "
-# adding punctuation marks, numbers and English text to visual text is
-# naturally also "visual" and from left to right.
-#
-# "Logical" directionality means the text is ordered "naturally" according to
-# the order it is read. It is the responsibility of the renderer to display
-# the text from right to left. A BIDI algorithm is used to place general
-# punctuation marks, numbers and English text in the text.
-#
-# Texts in x-mac-hebrew are almost impossible to find on the Internet. From
-# what little evidence I could find, it seems that its general directionality
-# is Logical.
-#
-# To sum up all of the above, the Hebrew probing mechanism knows about two
-# charsets:
-# Visual Hebrew - "ISO-8859-8" - backwards text - Words and sentences are
-# backwards while line order is natural. For charset recognition purposes
-# the line order is unimportant (In fact, for this implementation, even
-# word order is unimportant).
-# Logical Hebrew - "windows-1255" - normal, naturally ordered text.
-#
-# "ISO-8859-8-I" is a subset of windows-1255 and doesn't need to be
-# specifically identified.
-# "x-mac-hebrew" is also identified as windows-1255. A text in x-mac-hebrew
-# that contain special punctuation marks or diacritics is displayed with
-# some unconverted characters showing as question marks. This problem might
-# be corrected using another model prober for x-mac-hebrew. Due to the fact
-# that x-mac-hebrew texts are so rare, writing another model prober isn't
-# worth the effort and performance hit.
-#
-#### The Prober ####
-#
-# The prober is divided between two SBCharSetProbers and a HebrewProber,
-# all of which are managed, created, fed data, inquired and deleted by the
-# SBCSGroupProber. The two SBCharSetProbers identify that the text is in
-# fact some kind of Hebrew, Logical or Visual. The final decision about which
-# one is it is made by the HebrewProber by combining final-letter scores
-# with the scores of the two SBCharSetProbers to produce a final answer.
-#
-# The SBCSGroupProber is responsible for stripping the original text of HTML
-# tags, English characters, numbers, low-ASCII punctuation characters, spaces
-# and new lines. It reduces any sequence of such characters to a single space.
-# The buffer fed to each prober in the SBCS group prober is pure text in
-# high-ASCII.
-# The two SBCharSetProbers (model probers) share the same language model:
-# Win1255Model.
-# The first SBCharSetProber uses the model normally as any other
-# SBCharSetProber does, to recognize windows-1255, upon which this model was
-# built. The second SBCharSetProber is told to make the pair-of-letter
-# lookup in the language model backwards. This in practice exactly simulates
-# a visual Hebrew model using the windows-1255 logical Hebrew model.
-#
-# The HebrewProber is not using any language model. All it does is look for
-# final-letter evidence suggesting the text is either logical Hebrew or visual
-# Hebrew. Disjointed from the model probers, the results of the HebrewProber
-# alone are meaningless. HebrewProber always returns 0.00 as confidence
-# since it never identifies a charset by itself. Instead, the pointer to the
-# HebrewProber is passed to the model probers as a helper "Name Prober".
-# When the Group prober receives a positive identification from any prober,
-# it asks for the name of the charset identified. If the prober queried is a
-# Hebrew model prober, the model prober forwards the call to the
-# HebrewProber to make the final decision. In the HebrewProber, the
-# decision is made according to the final-letters scores maintained and Both
-# model probers scores. The answer is returned in the form of the name of the
-# charset identified, either "windows-1255" or "ISO-8859-8".
-
-# windows-1255 / ISO-8859-8 code points of interest
-FINAL_KAF = 0xea
-NORMAL_KAF = 0xeb
-FINAL_MEM = 0xed
-NORMAL_MEM = 0xee
-FINAL_NUN = 0xef
-NORMAL_NUN = 0xf0
-FINAL_PE = 0xf3
-NORMAL_PE = 0xf4
-FINAL_TSADI = 0xf5
-NORMAL_TSADI = 0xf6
-
-# Minimum Visual vs Logical final letter score difference.
-# If the difference is below this, don't rely solely on the final letter score
-# distance.
-MIN_FINAL_CHAR_DISTANCE = 5
-
-# Minimum Visual vs Logical model score difference.
-# If the difference is below this, don't rely at all on the model score
-# distance.
-MIN_MODEL_DISTANCE = 0.01
-
-VISUAL_HEBREW_NAME = "ISO-8859-8"
-LOGICAL_HEBREW_NAME = "windows-1255"
-
-
-class HebrewProber(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self._mLogicalProber = None
- self._mVisualProber = None
- self.reset()
-
- def reset(self):
- self._mFinalCharLogicalScore = 0
- self._mFinalCharVisualScore = 0
- # The two last characters seen in the previous buffer,
- # mPrev and mBeforePrev are initialized to space in order to simulate
- # a word delimiter at the beginning of the data
- self._mPrev = ' '
- self._mBeforePrev = ' '
- # These probers are owned by the group prober.
-
- def set_model_probers(self, logicalProber, visualProber):
- self._mLogicalProber = logicalProber
- self._mVisualProber = visualProber
-
- def is_final(self, c):
- return wrap_ord(c) in [FINAL_KAF, FINAL_MEM, FINAL_NUN, FINAL_PE,
- FINAL_TSADI]
-
- def is_non_final(self, c):
- # The normal Tsadi is not a good Non-Final letter due to words like
- # 'lechotet' (to chat) containing an apostrophe after the tsadi. This
- # apostrophe is converted to a space in FilterWithoutEnglishLetters
- # causing the Non-Final tsadi to appear at an end of a word even
- # though this is not the case in the original text.
- # The letters Pe and Kaf rarely display a related behavior of not being
- # a good Non-Final letter. Words like 'Pop', 'Winamp' and 'Mubarak'
- # for example legally end with a Non-Final Pe or Kaf. However, the
- # benefit of these letters as Non-Final letters outweighs the damage
- # since these words are quite rare.
- return wrap_ord(c) in [NORMAL_KAF, NORMAL_MEM, NORMAL_NUN, NORMAL_PE]
-
- def feed(self, aBuf):
- # Final letter analysis for logical-visual decision.
- # Look for evidence that the received buffer is either logical Hebrew
- # or visual Hebrew.
- # The following cases are checked:
- # 1) A word longer than 1 letter, ending with a final letter. This is
- # an indication that the text is laid out "naturally" since the
- # final letter really appears at the end. +1 for logical score.
- # 2) A word longer than 1 letter, ending with a Non-Final letter. In
- # normal Hebrew, words ending with Kaf, Mem, Nun, Pe or Tsadi,
- # should not end with the Non-Final form of that letter. Exceptions
- # to this rule are mentioned above in isNonFinal(). This is an
- # indication that the text is laid out backwards. +1 for visual
- # score
- # 3) A word longer than 1 letter, starting with a final letter. Final
- # letters should not appear at the beginning of a word. This is an
- # indication that the text is laid out backwards. +1 for visual
- # score.
- #
- # The visual score and logical score are accumulated throughout the
- # text and are finally checked against each other in GetCharSetName().
- # No checking for final letters in the middle of words is done since
- # that case is not an indication for either Logical or Visual text.
- #
- # We automatically filter out all 7-bit characters (replace them with
- # spaces) so the word boundary detection works properly. [MAP]
-
- if self.get_state() == eNotMe:
- # Both model probers say it's not them. No reason to continue.
- return eNotMe
-
- aBuf = self.filter_high_bit_only(aBuf)
-
- for cur in aBuf:
- if cur == ' ':
- # We stand on a space - a word just ended
- if self._mBeforePrev != ' ':
- # next-to-last char was not a space so self._mPrev is not a
- # 1 letter word
- if self.is_final(self._mPrev):
- # case (1) [-2:not space][-1:final letter][cur:space]
- self._mFinalCharLogicalScore += 1
- elif self.is_non_final(self._mPrev):
- # case (2) [-2:not space][-1:Non-Final letter][
- # cur:space]
- self._mFinalCharVisualScore += 1
- else:
- # Not standing on a space
- if ((self._mBeforePrev == ' ') and
- (self.is_final(self._mPrev)) and (cur != ' ')):
- # case (3) [-2:space][-1:final letter][cur:not space]
- self._mFinalCharVisualScore += 1
- self._mBeforePrev = self._mPrev
- self._mPrev = cur
-
- # Forever detecting, till the end or until both model probers return
- # eNotMe (handled above)
- return eDetecting
-
- def get_charset_name(self):
- # Make the decision: is it Logical or Visual?
- # If the final letter score distance is dominant enough, rely on it.
- finalsub = self._mFinalCharLogicalScore - self._mFinalCharVisualScore
- if finalsub >= MIN_FINAL_CHAR_DISTANCE:
- return LOGICAL_HEBREW_NAME
- if finalsub <= -MIN_FINAL_CHAR_DISTANCE:
- return VISUAL_HEBREW_NAME
-
- # It's not dominant enough, try to rely on the model scores instead.
- modelsub = (self._mLogicalProber.get_confidence()
- - self._mVisualProber.get_confidence())
- if modelsub > MIN_MODEL_DISTANCE:
- return LOGICAL_HEBREW_NAME
- if modelsub < -MIN_MODEL_DISTANCE:
- return VISUAL_HEBREW_NAME
-
- # Still no good, back to final letter distance, maybe it'll save the
- # day.
- if finalsub < 0.0:
- return VISUAL_HEBREW_NAME
-
- # (finalsub > 0 - Logical) or (don't know what to do) default to
- # Logical.
- return LOGICAL_HEBREW_NAME
-
- def get_state(self):
- # Remain active as long as any of the model probers are active.
- if (self._mLogicalProber.get_state() == eNotMe) and \
- (self._mVisualProber.get_state() == eNotMe):
- return eNotMe
- return eDetecting
diff --git a/vendor/requests/packages/chardet/jisfreq.py b/vendor/requests/packages/chardet/jisfreq.py
deleted file mode 100644
index 064345b0..00000000
--- a/vendor/requests/packages/chardet/jisfreq.py
+++ /dev/null
@@ -1,569 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# Sampling from about 20M text materials include literature and computer technology
-#
-# Japanese frequency table, applied to both S-JIS and EUC-JP
-# They are sorted in order.
-
-# 128 --> 0.77094
-# 256 --> 0.85710
-# 512 --> 0.92635
-# 1024 --> 0.97130
-# 2048 --> 0.99431
-#
-# Ideal Distribution Ratio = 0.92635 / (1-0.92635) = 12.58
-# Random Distribution Ration = 512 / (2965+62+83+86-512) = 0.191
-#
-# Typical Distribution Ratio, 25% of IDR
-
-JIS_TYPICAL_DISTRIBUTION_RATIO = 3.0
-
-# Char to FreqOrder table ,
-JIS_TABLE_SIZE = 4368
-
-JISCharToFreqOrder = (
- 40, 1, 6, 182, 152, 180, 295,2127, 285, 381,3295,4304,3068,4606,3165,3510, # 16
-3511,1822,2785,4607,1193,2226,5070,4608, 171,2996,1247, 18, 179,5071, 856,1661, # 32
-1262,5072, 619, 127,3431,3512,3230,1899,1700, 232, 228,1294,1298, 284, 283,2041, # 48
-2042,1061,1062, 48, 49, 44, 45, 433, 434,1040,1041, 996, 787,2997,1255,4305, # 64
-2108,4609,1684,1648,5073,5074,5075,5076,5077,5078,3687,5079,4610,5080,3927,3928, # 80
-5081,3296,3432, 290,2285,1471,2187,5082,2580,2825,1303,2140,1739,1445,2691,3375, # 96
-1691,3297,4306,4307,4611, 452,3376,1182,2713,3688,3069,4308,5083,5084,5085,5086, # 112
-5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102, # 128
-5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,4097,5113,5114,5115,5116,5117, # 144
-5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133, # 160
-5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149, # 176
-5150,5151,5152,4612,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164, # 192
-5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,1472, 598, 618, 820,1205, # 208
-1309,1412,1858,1307,1692,5176,5177,5178,5179,5180,5181,5182,1142,1452,1234,1172, # 224
-1875,2043,2149,1793,1382,2973, 925,2404,1067,1241, 960,1377,2935,1491, 919,1217, # 240
-1865,2030,1406,1499,2749,4098,5183,5184,5185,5186,5187,5188,2561,4099,3117,1804, # 256
-2049,3689,4309,3513,1663,5189,3166,3118,3298,1587,1561,3433,5190,3119,1625,2998, # 272
-3299,4613,1766,3690,2786,4614,5191,5192,5193,5194,2161, 26,3377, 2,3929, 20, # 288
-3691, 47,4100, 50, 17, 16, 35, 268, 27, 243, 42, 155, 24, 154, 29, 184, # 304
- 4, 91, 14, 92, 53, 396, 33, 289, 9, 37, 64, 620, 21, 39, 321, 5, # 320
- 12, 11, 52, 13, 3, 208, 138, 0, 7, 60, 526, 141, 151,1069, 181, 275, # 336
-1591, 83, 132,1475, 126, 331, 829, 15, 69, 160, 59, 22, 157, 55,1079, 312, # 352
- 109, 38, 23, 25, 10, 19, 79,5195, 61, 382,1124, 8, 30,5196,5197,5198, # 368
-5199,5200,5201,5202,5203,5204,5205,5206, 89, 62, 74, 34,2416, 112, 139, 196, # 384
- 271, 149, 84, 607, 131, 765, 46, 88, 153, 683, 76, 874, 101, 258, 57, 80, # 400
- 32, 364, 121,1508, 169,1547, 68, 235, 145,2999, 41, 360,3027, 70, 63, 31, # 416
- 43, 259, 262,1383, 99, 533, 194, 66, 93, 846, 217, 192, 56, 106, 58, 565, # 432
- 280, 272, 311, 256, 146, 82, 308, 71, 100, 128, 214, 655, 110, 261, 104,1140, # 448
- 54, 51, 36, 87, 67,3070, 185,2618,2936,2020, 28,1066,2390,2059,5207,5208, # 464
-5209,5210,5211,5212,5213,5214,5215,5216,4615,5217,5218,5219,5220,5221,5222,5223, # 480
-5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,3514,5237,5238, # 496
-5239,5240,5241,5242,5243,5244,2297,2031,4616,4310,3692,5245,3071,5246,3598,5247, # 512
-4617,3231,3515,5248,4101,4311,4618,3808,4312,4102,5249,4103,4104,3599,5250,5251, # 528
-5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267, # 544
-5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283, # 560
-5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299, # 576
-5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315, # 592
-5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331, # 608
-5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347, # 624
-5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363, # 640
-5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379, # 656
-5380,5381, 363, 642,2787,2878,2788,2789,2316,3232,2317,3434,2011, 165,1942,3930, # 672
-3931,3932,3933,5382,4619,5383,4620,5384,5385,5386,5387,5388,5389,5390,5391,5392, # 688
-5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408, # 704
-5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424, # 720
-5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440, # 736
-5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456, # 752
-5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472, # 768
-5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488, # 784
-5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504, # 800
-5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520, # 816
-5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536, # 832
-5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552, # 848
-5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568, # 864
-5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584, # 880
-5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600, # 896
-5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616, # 912
-5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632, # 928
-5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648, # 944
-5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664, # 960
-5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680, # 976
-5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696, # 992
-5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712, # 1008
-5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728, # 1024
-5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744, # 1040
-5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760, # 1056
-5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776, # 1072
-5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792, # 1088
-5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808, # 1104
-5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824, # 1120
-5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840, # 1136
-5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856, # 1152
-5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872, # 1168
-5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888, # 1184
-5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904, # 1200
-5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920, # 1216
-5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936, # 1232
-5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952, # 1248
-5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968, # 1264
-5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984, # 1280
-5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000, # 1296
-6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016, # 1312
-6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032, # 1328
-6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048, # 1344
-6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064, # 1360
-6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080, # 1376
-6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096, # 1392
-6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112, # 1408
-6113,6114,2044,2060,4621, 997,1235, 473,1186,4622, 920,3378,6115,6116, 379,1108, # 1424
-4313,2657,2735,3934,6117,3809, 636,3233, 573,1026,3693,3435,2974,3300,2298,4105, # 1440
- 854,2937,2463, 393,2581,2417, 539, 752,1280,2750,2480, 140,1161, 440, 708,1569, # 1456
- 665,2497,1746,1291,1523,3000, 164,1603, 847,1331, 537,1997, 486, 508,1693,2418, # 1472
-1970,2227, 878,1220, 299,1030, 969, 652,2751, 624,1137,3301,2619, 65,3302,2045, # 1488
-1761,1859,3120,1930,3694,3516, 663,1767, 852, 835,3695, 269, 767,2826,2339,1305, # 1504
- 896,1150, 770,1616,6118, 506,1502,2075,1012,2519, 775,2520,2975,2340,2938,4314, # 1520
-3028,2086,1224,1943,2286,6119,3072,4315,2240,1273,1987,3935,1557, 175, 597, 985, # 1536
-3517,2419,2521,1416,3029, 585, 938,1931,1007,1052,1932,1685,6120,3379,4316,4623, # 1552
- 804, 599,3121,1333,2128,2539,1159,1554,2032,3810, 687,2033,2904, 952, 675,1467, # 1568
-3436,6121,2241,1096,1786,2440,1543,1924, 980,1813,2228, 781,2692,1879, 728,1918, # 1584
-3696,4624, 548,1950,4625,1809,1088,1356,3303,2522,1944, 502, 972, 373, 513,2827, # 1600
- 586,2377,2391,1003,1976,1631,6122,2464,1084, 648,1776,4626,2141, 324, 962,2012, # 1616
-2177,2076,1384, 742,2178,1448,1173,1810, 222, 102, 301, 445, 125,2420, 662,2498, # 1632
- 277, 200,1476,1165,1068, 224,2562,1378,1446, 450,1880, 659, 791, 582,4627,2939, # 1648
-3936,1516,1274, 555,2099,3697,1020,1389,1526,3380,1762,1723,1787,2229, 412,2114, # 1664
-1900,2392,3518, 512,2597, 427,1925,2341,3122,1653,1686,2465,2499, 697, 330, 273, # 1680
- 380,2162, 951, 832, 780, 991,1301,3073, 965,2270,3519, 668,2523,2636,1286, 535, # 1696
-1407, 518, 671, 957,2658,2378, 267, 611,2197,3030,6123, 248,2299, 967,1799,2356, # 1712
- 850,1418,3437,1876,1256,1480,2828,1718,6124,6125,1755,1664,2405,6126,4628,2879, # 1728
-2829, 499,2179, 676,4629, 557,2329,2214,2090, 325,3234, 464, 811,3001, 992,2342, # 1744
-2481,1232,1469, 303,2242, 466,1070,2163, 603,1777,2091,4630,2752,4631,2714, 322, # 1760
-2659,1964,1768, 481,2188,1463,2330,2857,3600,2092,3031,2421,4632,2318,2070,1849, # 1776
-2598,4633,1302,2254,1668,1701,2422,3811,2905,3032,3123,2046,4106,1763,1694,4634, # 1792
-1604, 943,1724,1454, 917, 868,2215,1169,2940, 552,1145,1800,1228,1823,1955, 316, # 1808
-1080,2510, 361,1807,2830,4107,2660,3381,1346,1423,1134,4108,6127, 541,1263,1229, # 1824
-1148,2540, 545, 465,1833,2880,3438,1901,3074,2482, 816,3937, 713,1788,2500, 122, # 1840
-1575, 195,1451,2501,1111,6128, 859, 374,1225,2243,2483,4317, 390,1033,3439,3075, # 1856
-2524,1687, 266, 793,1440,2599, 946, 779, 802, 507, 897,1081, 528,2189,1292, 711, # 1872
-1866,1725,1167,1640, 753, 398,2661,1053, 246, 348,4318, 137,1024,3440,1600,2077, # 1888
-2129, 825,4319, 698, 238, 521, 187,2300,1157,2423,1641,1605,1464,1610,1097,2541, # 1904
-1260,1436, 759,2255,1814,2150, 705,3235, 409,2563,3304, 561,3033,2005,2564, 726, # 1920
-1956,2343,3698,4109, 949,3812,3813,3520,1669, 653,1379,2525, 881,2198, 632,2256, # 1936
-1027, 778,1074, 733,1957, 514,1481,2466, 554,2180, 702,3938,1606,1017,1398,6129, # 1952
-1380,3521, 921, 993,1313, 594, 449,1489,1617,1166, 768,1426,1360, 495,1794,3601, # 1968
-1177,3602,1170,4320,2344, 476, 425,3167,4635,3168,1424, 401,2662,1171,3382,1998, # 1984
-1089,4110, 477,3169, 474,6130,1909, 596,2831,1842, 494, 693,1051,1028,1207,3076, # 2000
- 606,2115, 727,2790,1473,1115, 743,3522, 630, 805,1532,4321,2021, 366,1057, 838, # 2016
- 684,1114,2142,4322,2050,1492,1892,1808,2271,3814,2424,1971,1447,1373,3305,1090, # 2032
-1536,3939,3523,3306,1455,2199, 336, 369,2331,1035, 584,2393, 902, 718,2600,6131, # 2048
-2753, 463,2151,1149,1611,2467, 715,1308,3124,1268, 343,1413,3236,1517,1347,2663, # 2064
-2093,3940,2022,1131,1553,2100,2941,1427,3441,2942,1323,2484,6132,1980, 872,2368, # 2080
-2441,2943, 320,2369,2116,1082, 679,1933,3941,2791,3815, 625,1143,2023, 422,2200, # 2096
-3816,6133, 730,1695, 356,2257,1626,2301,2858,2637,1627,1778, 937, 883,2906,2693, # 2112
-3002,1769,1086, 400,1063,1325,3307,2792,4111,3077, 456,2345,1046, 747,6134,1524, # 2128
- 884,1094,3383,1474,2164,1059, 974,1688,2181,2258,1047, 345,1665,1187, 358, 875, # 2144
-3170, 305, 660,3524,2190,1334,1135,3171,1540,1649,2542,1527, 927, 968,2793, 885, # 2160
-1972,1850, 482, 500,2638,1218,1109,1085,2543,1654,2034, 876, 78,2287,1482,1277, # 2176
- 861,1675,1083,1779, 724,2754, 454, 397,1132,1612,2332, 893, 672,1237, 257,2259, # 2192
-2370, 135,3384, 337,2244, 547, 352, 340, 709,2485,1400, 788,1138,2511, 540, 772, # 2208
-1682,2260,2272,2544,2013,1843,1902,4636,1999,1562,2288,4637,2201,1403,1533, 407, # 2224
- 576,3308,1254,2071, 978,3385, 170, 136,1201,3125,2664,3172,2394, 213, 912, 873, # 2240
-3603,1713,2202, 699,3604,3699, 813,3442, 493, 531,1054, 468,2907,1483, 304, 281, # 2256
-4112,1726,1252,2094, 339,2319,2130,2639, 756,1563,2944, 748, 571,2976,1588,2425, # 2272
-2715,1851,1460,2426,1528,1392,1973,3237, 288,3309, 685,3386, 296, 892,2716,2216, # 2288
-1570,2245, 722,1747,2217, 905,3238,1103,6135,1893,1441,1965, 251,1805,2371,3700, # 2304
-2601,1919,1078, 75,2182,1509,1592,1270,2640,4638,2152,6136,3310,3817, 524, 706, # 2320
-1075, 292,3818,1756,2602, 317, 98,3173,3605,3525,1844,2218,3819,2502, 814, 567, # 2336
- 385,2908,1534,6137, 534,1642,3239, 797,6138,1670,1529, 953,4323, 188,1071, 538, # 2352
- 178, 729,3240,2109,1226,1374,2000,2357,2977, 731,2468,1116,2014,2051,6139,1261, # 2368
-1593, 803,2859,2736,3443, 556, 682, 823,1541,6140,1369,2289,1706,2794, 845, 462, # 2384
-2603,2665,1361, 387, 162,2358,1740, 739,1770,1720,1304,1401,3241,1049, 627,1571, # 2400
-2427,3526,1877,3942,1852,1500, 431,1910,1503, 677, 297,2795, 286,1433,1038,1198, # 2416
-2290,1133,1596,4113,4639,2469,1510,1484,3943,6141,2442, 108, 712,4640,2372, 866, # 2432
-3701,2755,3242,1348, 834,1945,1408,3527,2395,3243,1811, 824, 994,1179,2110,1548, # 2448
-1453, 790,3003, 690,4324,4325,2832,2909,3820,1860,3821, 225,1748, 310, 346,1780, # 2464
-2470, 821,1993,2717,2796, 828, 877,3528,2860,2471,1702,2165,2910,2486,1789, 453, # 2480
- 359,2291,1676, 73,1164,1461,1127,3311, 421, 604, 314,1037, 589, 116,2487, 737, # 2496
- 837,1180, 111, 244, 735,6142,2261,1861,1362, 986, 523, 418, 581,2666,3822, 103, # 2512
- 855, 503,1414,1867,2488,1091, 657,1597, 979, 605,1316,4641,1021,2443,2078,2001, # 2528
-1209, 96, 587,2166,1032, 260,1072,2153, 173, 94, 226,3244, 819,2006,4642,4114, # 2544
-2203, 231,1744, 782, 97,2667, 786,3387, 887, 391, 442,2219,4326,1425,6143,2694, # 2560
- 633,1544,1202, 483,2015, 592,2052,1958,2472,1655, 419, 129,4327,3444,3312,1714, # 2576
-1257,3078,4328,1518,1098, 865,1310,1019,1885,1512,1734, 469,2444, 148, 773, 436, # 2592
-1815,1868,1128,1055,4329,1245,2756,3445,2154,1934,1039,4643, 579,1238, 932,2320, # 2608
- 353, 205, 801, 115,2428, 944,2321,1881, 399,2565,1211, 678, 766,3944, 335,2101, # 2624
-1459,1781,1402,3945,2737,2131,1010, 844, 981,1326,1013, 550,1816,1545,2620,1335, # 2640
-1008, 371,2881, 936,1419,1613,3529,1456,1395,2273,1834,2604,1317,2738,2503, 416, # 2656
-1643,4330, 806,1126, 229, 591,3946,1314,1981,1576,1837,1666, 347,1790, 977,3313, # 2672
- 764,2861,1853, 688,2429,1920,1462, 77, 595, 415,2002,3034, 798,1192,4115,6144, # 2688
-2978,4331,3035,2695,2582,2072,2566, 430,2430,1727, 842,1396,3947,3702, 613, 377, # 2704
- 278, 236,1417,3388,3314,3174, 757,1869, 107,3530,6145,1194, 623,2262, 207,1253, # 2720
-2167,3446,3948, 492,1117,1935, 536,1838,2757,1246,4332, 696,2095,2406,1393,1572, # 2736
-3175,1782, 583, 190, 253,1390,2230, 830,3126,3389, 934,3245,1703,1749,2979,1870, # 2752
-2545,1656,2204, 869,2346,4116,3176,1817, 496,1764,4644, 942,1504, 404,1903,1122, # 2768
-1580,3606,2945,1022, 515, 372,1735, 955,2431,3036,6146,2797,1110,2302,2798, 617, # 2784
-6147, 441, 762,1771,3447,3607,3608,1904, 840,3037, 86, 939,1385, 572,1370,2445, # 2800
-1336, 114,3703, 898, 294, 203,3315, 703,1583,2274, 429, 961,4333,1854,1951,3390, # 2816
-2373,3704,4334,1318,1381, 966,1911,2322,1006,1155, 309, 989, 458,2718,1795,1372, # 2832
-1203, 252,1689,1363,3177, 517,1936, 168,1490, 562, 193,3823,1042,4117,1835, 551, # 2848
- 470,4645, 395, 489,3448,1871,1465,2583,2641, 417,1493, 279,1295, 511,1236,1119, # 2864
- 72,1231,1982,1812,3004, 871,1564, 984,3449,1667,2696,2096,4646,2347,2833,1673, # 2880
-3609, 695,3246,2668, 807,1183,4647, 890, 388,2333,1801,1457,2911,1765,1477,1031, # 2896
-3316,3317,1278,3391,2799,2292,2526, 163,3450,4335,2669,1404,1802,6148,2323,2407, # 2912
-1584,1728,1494,1824,1269, 298, 909,3318,1034,1632, 375, 776,1683,2061, 291, 210, # 2928
-1123, 809,1249,1002,2642,3038, 206,1011,2132, 144, 975, 882,1565, 342, 667, 754, # 2944
-1442,2143,1299,2303,2062, 447, 626,2205,1221,2739,2912,1144,1214,2206,2584, 760, # 2960
-1715, 614, 950,1281,2670,2621, 810, 577,1287,2546,4648, 242,2168, 250,2643, 691, # 2976
- 123,2644, 647, 313,1029, 689,1357,2946,1650, 216, 771,1339,1306, 808,2063, 549, # 2992
- 913,1371,2913,2914,6149,1466,1092,1174,1196,1311,2605,2396,1783,1796,3079, 406, # 3008
-2671,2117,3949,4649, 487,1825,2220,6150,2915, 448,2348,1073,6151,2397,1707, 130, # 3024
- 900,1598, 329, 176,1959,2527,1620,6152,2275,4336,3319,1983,2191,3705,3610,2155, # 3040
-3706,1912,1513,1614,6153,1988, 646, 392,2304,1589,3320,3039,1826,1239,1352,1340, # 3056
-2916, 505,2567,1709,1437,2408,2547, 906,6154,2672, 384,1458,1594,1100,1329, 710, # 3072
- 423,3531,2064,2231,2622,1989,2673,1087,1882, 333, 841,3005,1296,2882,2379, 580, # 3088
-1937,1827,1293,2585, 601, 574, 249,1772,4118,2079,1120, 645, 901,1176,1690, 795, # 3104
-2207, 478,1434, 516,1190,1530, 761,2080, 930,1264, 355, 435,1552, 644,1791, 987, # 3120
- 220,1364,1163,1121,1538, 306,2169,1327,1222, 546,2645, 218, 241, 610,1704,3321, # 3136
-1984,1839,1966,2528, 451,6155,2586,3707,2568, 907,3178, 254,2947, 186,1845,4650, # 3152
- 745, 432,1757, 428,1633, 888,2246,2221,2489,3611,2118,1258,1265, 956,3127,1784, # 3168
-4337,2490, 319, 510, 119, 457,3612, 274,2035,2007,4651,1409,3128, 970,2758, 590, # 3184
-2800, 661,2247,4652,2008,3950,1420,1549,3080,3322,3951,1651,1375,2111, 485,2491, # 3200
-1429,1156,6156,2548,2183,1495, 831,1840,2529,2446, 501,1657, 307,1894,3247,1341, # 3216
- 666, 899,2156,1539,2549,1559, 886, 349,2208,3081,2305,1736,3824,2170,2759,1014, # 3232
-1913,1386, 542,1397,2948, 490, 368, 716, 362, 159, 282,2569,1129,1658,1288,1750, # 3248
-2674, 276, 649,2016, 751,1496, 658,1818,1284,1862,2209,2087,2512,3451, 622,2834, # 3264
- 376, 117,1060,2053,1208,1721,1101,1443, 247,1250,3179,1792,3952,2760,2398,3953, # 3280
-6157,2144,3708, 446,2432,1151,2570,3452,2447,2761,2835,1210,2448,3082, 424,2222, # 3296
-1251,2449,2119,2836, 504,1581,4338, 602, 817, 857,3825,2349,2306, 357,3826,1470, # 3312
-1883,2883, 255, 958, 929,2917,3248, 302,4653,1050,1271,1751,2307,1952,1430,2697, # 3328
-2719,2359, 354,3180, 777, 158,2036,4339,1659,4340,4654,2308,2949,2248,1146,2232, # 3344
-3532,2720,1696,2623,3827,6158,3129,1550,2698,1485,1297,1428, 637, 931,2721,2145, # 3360
- 914,2550,2587, 81,2450, 612, 827,2646,1242,4655,1118,2884, 472,1855,3181,3533, # 3376
-3534, 569,1353,2699,1244,1758,2588,4119,2009,2762,2171,3709,1312,1531,6159,1152, # 3392
-1938, 134,1830, 471,3710,2276,1112,1535,3323,3453,3535, 982,1337,2950, 488, 826, # 3408
- 674,1058,1628,4120,2017, 522,2399, 211, 568,1367,3454, 350, 293,1872,1139,3249, # 3424
-1399,1946,3006,1300,2360,3324, 588, 736,6160,2606, 744, 669,3536,3828,6161,1358, # 3440
- 199, 723, 848, 933, 851,1939,1505,1514,1338,1618,1831,4656,1634,3613, 443,2740, # 3456
-3829, 717,1947, 491,1914,6162,2551,1542,4121,1025,6163,1099,1223, 198,3040,2722, # 3472
- 370, 410,1905,2589, 998,1248,3182,2380, 519,1449,4122,1710, 947, 928,1153,4341, # 3488
-2277, 344,2624,1511, 615, 105, 161,1212,1076,1960,3130,2054,1926,1175,1906,2473, # 3504
- 414,1873,2801,6164,2309, 315,1319,3325, 318,2018,2146,2157, 963, 631, 223,4342, # 3520
-4343,2675, 479,3711,1197,2625,3712,2676,2361,6165,4344,4123,6166,2451,3183,1886, # 3536
-2184,1674,1330,1711,1635,1506, 799, 219,3250,3083,3954,1677,3713,3326,2081,3614, # 3552
-1652,2073,4657,1147,3041,1752, 643,1961, 147,1974,3955,6167,1716,2037, 918,3007, # 3568
-1994, 120,1537, 118, 609,3184,4345, 740,3455,1219, 332,1615,3830,6168,1621,2980, # 3584
-1582, 783, 212, 553,2350,3714,1349,2433,2082,4124, 889,6169,2310,1275,1410, 973, # 3600
- 166,1320,3456,1797,1215,3185,2885,1846,2590,2763,4658, 629, 822,3008, 763, 940, # 3616
-1990,2862, 439,2409,1566,1240,1622, 926,1282,1907,2764, 654,2210,1607, 327,1130, # 3632
-3956,1678,1623,6170,2434,2192, 686, 608,3831,3715, 903,3957,3042,6171,2741,1522, # 3648
-1915,1105,1555,2552,1359, 323,3251,4346,3457, 738,1354,2553,2311,2334,1828,2003, # 3664
-3832,1753,2351,1227,6172,1887,4125,1478,6173,2410,1874,1712,1847, 520,1204,2607, # 3680
- 264,4659, 836,2677,2102, 600,4660,3833,2278,3084,6174,4347,3615,1342, 640, 532, # 3696
- 543,2608,1888,2400,2591,1009,4348,1497, 341,1737,3616,2723,1394, 529,3252,1321, # 3712
- 983,4661,1515,2120, 971,2592, 924, 287,1662,3186,4349,2700,4350,1519, 908,1948, # 3728
-2452, 156, 796,1629,1486,2223,2055, 694,4126,1259,1036,3392,1213,2249,2742,1889, # 3744
-1230,3958,1015, 910, 408, 559,3617,4662, 746, 725, 935,4663,3959,3009,1289, 563, # 3760
- 867,4664,3960,1567,2981,2038,2626, 988,2263,2381,4351, 143,2374, 704,1895,6175, # 3776
-1188,3716,2088, 673,3085,2362,4352, 484,1608,1921,2765,2918, 215, 904,3618,3537, # 3792
- 894, 509, 976,3043,2701,3961,4353,2837,2982, 498,6176,6177,1102,3538,1332,3393, # 3808
-1487,1636,1637, 233, 245,3962, 383, 650, 995,3044, 460,1520,1206,2352, 749,3327, # 3824
- 530, 700, 389,1438,1560,1773,3963,2264, 719,2951,2724,3834, 870,1832,1644,1000, # 3840
- 839,2474,3717, 197,1630,3394, 365,2886,3964,1285,2133, 734, 922, 818,1106, 732, # 3856
- 480,2083,1774,3458, 923,2279,1350, 221,3086, 85,2233,2234,3835,1585,3010,2147, # 3872
-1387,1705,2382,1619,2475, 133, 239,2802,1991,1016,2084,2383, 411,2838,1113, 651, # 3888
-1985,1160,3328, 990,1863,3087,1048,1276,2647, 265,2627,1599,3253,2056, 150, 638, # 3904
-2019, 656, 853, 326,1479, 680,1439,4354,1001,1759, 413,3459,3395,2492,1431, 459, # 3920
-4355,1125,3329,2265,1953,1450,2065,2863, 849, 351,2678,3131,3254,3255,1104,1577, # 3936
- 227,1351,1645,2453,2193,1421,2887, 812,2121, 634, 95,2435, 201,2312,4665,1646, # 3952
-1671,2743,1601,2554,2702,2648,2280,1315,1366,2089,3132,1573,3718,3965,1729,1189, # 3968
- 328,2679,1077,1940,1136, 558,1283, 964,1195, 621,2074,1199,1743,3460,3619,1896, # 3984
-1916,1890,3836,2952,1154,2112,1064, 862, 378,3011,2066,2113,2803,1568,2839,6178, # 4000
-3088,2919,1941,1660,2004,1992,2194, 142, 707,1590,1708,1624,1922,1023,1836,1233, # 4016
-1004,2313, 789, 741,3620,6179,1609,2411,1200,4127,3719,3720,4666,2057,3721, 593, # 4032
-2840, 367,2920,1878,6180,3461,1521, 628,1168, 692,2211,2649, 300, 720,2067,2571, # 4048
-2953,3396, 959,2504,3966,3539,3462,1977, 701,6181, 954,1043, 800, 681, 183,3722, # 4064
-1803,1730,3540,4128,2103, 815,2314, 174, 467, 230,2454,1093,2134, 755,3541,3397, # 4080
-1141,1162,6182,1738,2039, 270,3256,2513,1005,1647,2185,3837, 858,1679,1897,1719, # 4096
-2954,2324,1806, 402, 670, 167,4129,1498,2158,2104, 750,6183, 915, 189,1680,1551, # 4112
- 455,4356,1501,2455, 405,1095,2955, 338,1586,1266,1819, 570, 641,1324, 237,1556, # 4128
-2650,1388,3723,6184,1368,2384,1343,1978,3089,2436, 879,3724, 792,1191, 758,3012, # 4144
-1411,2135,1322,4357, 240,4667,1848,3725,1574,6185, 420,3045,1546,1391, 714,4358, # 4160
-1967, 941,1864, 863, 664, 426, 560,1731,2680,1785,2864,1949,2363, 403,3330,1415, # 4176
-1279,2136,1697,2335, 204, 721,2097,3838, 90,6186,2085,2505, 191,3967, 124,2148, # 4192
-1376,1798,1178,1107,1898,1405, 860,4359,1243,1272,2375,2983,1558,2456,1638, 113, # 4208
-3621, 578,1923,2609, 880, 386,4130, 784,2186,2266,1422,2956,2172,1722, 497, 263, # 4224
-2514,1267,2412,2610, 177,2703,3542, 774,1927,1344, 616,1432,1595,1018, 172,4360, # 4240
-2325, 911,4361, 438,1468,3622, 794,3968,2024,2173,1681,1829,2957, 945, 895,3090, # 4256
- 575,2212,2476, 475,2401,2681, 785,2744,1745,2293,2555,1975,3133,2865, 394,4668, # 4272
-3839, 635,4131, 639, 202,1507,2195,2766,1345,1435,2572,3726,1908,1184,1181,2457, # 4288
-3727,3134,4362, 843,2611, 437, 916,4669, 234, 769,1884,3046,3047,3623, 833,6187, # 4304
-1639,2250,2402,1355,1185,2010,2047, 999, 525,1732,1290,1488,2612, 948,1578,3728, # 4320
-2413,2477,1216,2725,2159, 334,3840,1328,3624,2921,1525,4132, 564,1056, 891,4363, # 4336
-1444,1698,2385,2251,3729,1365,2281,2235,1717,6188, 864,3841,2515, 444, 527,2767, # 4352
-2922,3625, 544, 461,6189, 566, 209,2437,3398,2098,1065,2068,3331,3626,3257,2137, # 4368 #last 512
-#Everything below is of no interest for detection purpose
-2138,2122,3730,2888,1995,1820,1044,6190,6191,6192,6193,6194,6195,6196,6197,6198, # 4384
-6199,6200,6201,6202,6203,6204,6205,4670,6206,6207,6208,6209,6210,6211,6212,6213, # 4400
-6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229, # 4416
-6230,6231,6232,6233,6234,6235,6236,6237,3187,6238,6239,3969,6240,6241,6242,6243, # 4432
-6244,4671,6245,6246,4672,6247,6248,4133,6249,6250,4364,6251,2923,2556,2613,4673, # 4448
-4365,3970,6252,6253,6254,6255,4674,6256,6257,6258,2768,2353,4366,4675,4676,3188, # 4464
-4367,3463,6259,4134,4677,4678,6260,2267,6261,3842,3332,4368,3543,6262,6263,6264, # 4480
-3013,1954,1928,4135,4679,6265,6266,2478,3091,6267,4680,4369,6268,6269,1699,6270, # 4496
-3544,4136,4681,6271,4137,6272,4370,2804,6273,6274,2593,3971,3972,4682,6275,2236, # 4512
-4683,6276,6277,4684,6278,6279,4138,3973,4685,6280,6281,3258,6282,6283,6284,6285, # 4528
-3974,4686,2841,3975,6286,6287,3545,6288,6289,4139,4687,4140,6290,4141,6291,4142, # 4544
-6292,6293,3333,6294,6295,6296,4371,6297,3399,6298,6299,4372,3976,6300,6301,6302, # 4560
-4373,6303,6304,3843,3731,6305,4688,4374,6306,6307,3259,2294,6308,3732,2530,4143, # 4576
-6309,4689,6310,6311,6312,3048,6313,6314,4690,3733,2237,6315,6316,2282,3334,6317, # 4592
-6318,3844,6319,6320,4691,6321,3400,4692,6322,4693,6323,3049,6324,4375,6325,3977, # 4608
-6326,6327,6328,3546,6329,4694,3335,6330,4695,4696,6331,6332,6333,6334,4376,3978, # 4624
-6335,4697,3979,4144,6336,3980,4698,6337,6338,6339,6340,6341,4699,4700,4701,6342, # 4640
-6343,4702,6344,6345,4703,6346,6347,4704,6348,4705,4706,3135,6349,4707,6350,4708, # 4656
-6351,4377,6352,4709,3734,4145,6353,2506,4710,3189,6354,3050,4711,3981,6355,3547, # 4672
-3014,4146,4378,3735,2651,3845,3260,3136,2224,1986,6356,3401,6357,4712,2594,3627, # 4688
-3137,2573,3736,3982,4713,3628,4714,4715,2682,3629,4716,6358,3630,4379,3631,6359, # 4704
-6360,6361,3983,6362,6363,6364,6365,4147,3846,4717,6366,6367,3737,2842,6368,4718, # 4720
-2628,6369,3261,6370,2386,6371,6372,3738,3984,4719,3464,4720,3402,6373,2924,3336, # 4736
-4148,2866,6374,2805,3262,4380,2704,2069,2531,3138,2806,2984,6375,2769,6376,4721, # 4752
-4722,3403,6377,6378,3548,6379,6380,2705,3092,1979,4149,2629,3337,2889,6381,3338, # 4768
-4150,2557,3339,4381,6382,3190,3263,3739,6383,4151,4723,4152,2558,2574,3404,3191, # 4784
-6384,6385,4153,6386,4724,4382,6387,6388,4383,6389,6390,4154,6391,4725,3985,6392, # 4800
-3847,4155,6393,6394,6395,6396,6397,3465,6398,4384,6399,6400,6401,6402,6403,6404, # 4816
-4156,6405,6406,6407,6408,2123,6409,6410,2326,3192,4726,6411,6412,6413,6414,4385, # 4832
-4157,6415,6416,4158,6417,3093,3848,6418,3986,6419,6420,3849,6421,6422,6423,4159, # 4848
-6424,6425,4160,6426,3740,6427,6428,6429,6430,3987,6431,4727,6432,2238,6433,6434, # 4864
-4386,3988,6435,6436,3632,6437,6438,2843,6439,6440,6441,6442,3633,6443,2958,6444, # 4880
-6445,3466,6446,2364,4387,3850,6447,4388,2959,3340,6448,3851,6449,4728,6450,6451, # 4896
-3264,4729,6452,3193,6453,4389,4390,2706,3341,4730,6454,3139,6455,3194,6456,3051, # 4912
-2124,3852,1602,4391,4161,3853,1158,3854,4162,3989,4392,3990,4731,4732,4393,2040, # 4928
-4163,4394,3265,6457,2807,3467,3855,6458,6459,6460,3991,3468,4733,4734,6461,3140, # 4944
-2960,6462,4735,6463,6464,6465,6466,4736,4737,4738,4739,6467,6468,4164,2403,3856, # 4960
-6469,6470,2770,2844,6471,4740,6472,6473,6474,6475,6476,6477,6478,3195,6479,4741, # 4976
-4395,6480,2867,6481,4742,2808,6482,2493,4165,6483,6484,6485,6486,2295,4743,6487, # 4992
-6488,6489,3634,6490,6491,6492,6493,6494,6495,6496,2985,4744,6497,6498,4745,6499, # 5008
-6500,2925,3141,4166,6501,6502,4746,6503,6504,4747,6505,6506,6507,2890,6508,6509, # 5024
-6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,3469,4167,6520,6521,6522,4748, # 5040
-4396,3741,4397,4749,4398,3342,2125,4750,6523,4751,4752,4753,3052,6524,2961,4168, # 5056
-6525,4754,6526,4755,4399,2926,4169,6527,3857,6528,4400,4170,6529,4171,6530,6531, # 5072
-2595,6532,6533,6534,6535,3635,6536,6537,6538,6539,6540,6541,6542,4756,6543,6544, # 5088
-6545,6546,6547,6548,4401,6549,6550,6551,6552,4402,3405,4757,4403,6553,6554,6555, # 5104
-4172,3742,6556,6557,6558,3992,3636,6559,6560,3053,2726,6561,3549,4173,3054,4404, # 5120
-6562,6563,3993,4405,3266,3550,2809,4406,6564,6565,6566,4758,4759,6567,3743,6568, # 5136
-4760,3744,4761,3470,6569,6570,6571,4407,6572,3745,4174,6573,4175,2810,4176,3196, # 5152
-4762,6574,4177,6575,6576,2494,2891,3551,6577,6578,3471,6579,4408,6580,3015,3197, # 5168
-6581,3343,2532,3994,3858,6582,3094,3406,4409,6583,2892,4178,4763,4410,3016,4411, # 5184
-6584,3995,3142,3017,2683,6585,4179,6586,6587,4764,4412,6588,6589,4413,6590,2986, # 5200
-6591,2962,3552,6592,2963,3472,6593,6594,4180,4765,6595,6596,2225,3267,4414,6597, # 5216
-3407,3637,4766,6598,6599,3198,6600,4415,6601,3859,3199,6602,3473,4767,2811,4416, # 5232
-1856,3268,3200,2575,3996,3997,3201,4417,6603,3095,2927,6604,3143,6605,2268,6606, # 5248
-3998,3860,3096,2771,6607,6608,3638,2495,4768,6609,3861,6610,3269,2745,4769,4181, # 5264
-3553,6611,2845,3270,6612,6613,6614,3862,6615,6616,4770,4771,6617,3474,3999,4418, # 5280
-4419,6618,3639,3344,6619,4772,4182,6620,2126,6621,6622,6623,4420,4773,6624,3018, # 5296
-6625,4774,3554,6626,4183,2025,3746,6627,4184,2707,6628,4421,4422,3097,1775,4185, # 5312
-3555,6629,6630,2868,6631,6632,4423,6633,6634,4424,2414,2533,2928,6635,4186,2387, # 5328
-6636,4775,6637,4187,6638,1891,4425,3202,3203,6639,6640,4776,6641,3345,6642,6643, # 5344
-3640,6644,3475,3346,3641,4000,6645,3144,6646,3098,2812,4188,3642,3204,6647,3863, # 5360
-3476,6648,3864,6649,4426,4001,6650,6651,6652,2576,6653,4189,4777,6654,6655,6656, # 5376
-2846,6657,3477,3205,4002,6658,4003,6659,3347,2252,6660,6661,6662,4778,6663,6664, # 5392
-6665,6666,6667,6668,6669,4779,4780,2048,6670,3478,3099,6671,3556,3747,4004,6672, # 5408
-6673,6674,3145,4005,3748,6675,6676,6677,6678,6679,3408,6680,6681,6682,6683,3206, # 5424
-3207,6684,6685,4781,4427,6686,4782,4783,4784,6687,6688,6689,4190,6690,6691,3479, # 5440
-6692,2746,6693,4428,6694,6695,6696,6697,6698,6699,4785,6700,6701,3208,2727,6702, # 5456
-3146,6703,6704,3409,2196,6705,4429,6706,6707,6708,2534,1996,6709,6710,6711,2747, # 5472
-6712,6713,6714,4786,3643,6715,4430,4431,6716,3557,6717,4432,4433,6718,6719,6720, # 5488
-6721,3749,6722,4006,4787,6723,6724,3644,4788,4434,6725,6726,4789,2772,6727,6728, # 5504
-6729,6730,6731,2708,3865,2813,4435,6732,6733,4790,4791,3480,6734,6735,6736,6737, # 5520
-4436,3348,6738,3410,4007,6739,6740,4008,6741,6742,4792,3411,4191,6743,6744,6745, # 5536
-6746,6747,3866,6748,3750,6749,6750,6751,6752,6753,6754,6755,3867,6756,4009,6757, # 5552
-4793,4794,6758,2814,2987,6759,6760,6761,4437,6762,6763,6764,6765,3645,6766,6767, # 5568
-3481,4192,6768,3751,6769,6770,2174,6771,3868,3752,6772,6773,6774,4193,4795,4438, # 5584
-3558,4796,4439,6775,4797,6776,6777,4798,6778,4799,3559,4800,6779,6780,6781,3482, # 5600
-6782,2893,6783,6784,4194,4801,4010,6785,6786,4440,6787,4011,6788,6789,6790,6791, # 5616
-6792,6793,4802,6794,6795,6796,4012,6797,6798,6799,6800,3349,4803,3483,6801,4804, # 5632
-4195,6802,4013,6803,6804,4196,6805,4014,4015,6806,2847,3271,2848,6807,3484,6808, # 5648
-6809,6810,4441,6811,4442,4197,4443,3272,4805,6812,3412,4016,1579,6813,6814,4017, # 5664
-6815,3869,6816,2964,6817,4806,6818,6819,4018,3646,6820,6821,4807,4019,4020,6822, # 5680
-6823,3560,6824,6825,4021,4444,6826,4198,6827,6828,4445,6829,6830,4199,4808,6831, # 5696
-6832,6833,3870,3019,2458,6834,3753,3413,3350,6835,4809,3871,4810,3561,4446,6836, # 5712
-6837,4447,4811,4812,6838,2459,4448,6839,4449,6840,6841,4022,3872,6842,4813,4814, # 5728
-6843,6844,4815,4200,4201,4202,6845,4023,6846,6847,4450,3562,3873,6848,6849,4816, # 5744
-4817,6850,4451,4818,2139,6851,3563,6852,6853,3351,6854,6855,3352,4024,2709,3414, # 5760
-4203,4452,6856,4204,6857,6858,3874,3875,6859,6860,4819,6861,6862,6863,6864,4453, # 5776
-3647,6865,6866,4820,6867,6868,6869,6870,4454,6871,2869,6872,6873,4821,6874,3754, # 5792
-6875,4822,4205,6876,6877,6878,3648,4206,4455,6879,4823,6880,4824,3876,6881,3055, # 5808
-4207,6882,3415,6883,6884,6885,4208,4209,6886,4210,3353,6887,3354,3564,3209,3485, # 5824
-2652,6888,2728,6889,3210,3755,6890,4025,4456,6891,4825,6892,6893,6894,6895,4211, # 5840
-6896,6897,6898,4826,6899,6900,4212,6901,4827,6902,2773,3565,6903,4828,6904,6905, # 5856
-6906,6907,3649,3650,6908,2849,3566,6909,3567,3100,6910,6911,6912,6913,6914,6915, # 5872
-4026,6916,3355,4829,3056,4457,3756,6917,3651,6918,4213,3652,2870,6919,4458,6920, # 5888
-2438,6921,6922,3757,2774,4830,6923,3356,4831,4832,6924,4833,4459,3653,2507,6925, # 5904
-4834,2535,6926,6927,3273,4027,3147,6928,3568,6929,6930,6931,4460,6932,3877,4461, # 5920
-2729,3654,6933,6934,6935,6936,2175,4835,2630,4214,4028,4462,4836,4215,6937,3148, # 5936
-4216,4463,4837,4838,4217,6938,6939,2850,4839,6940,4464,6941,6942,6943,4840,6944, # 5952
-4218,3274,4465,6945,6946,2710,6947,4841,4466,6948,6949,2894,6950,6951,4842,6952, # 5968
-4219,3057,2871,6953,6954,6955,6956,4467,6957,2711,6958,6959,6960,3275,3101,4843, # 5984
-6961,3357,3569,6962,4844,6963,6964,4468,4845,3570,6965,3102,4846,3758,6966,4847, # 6000
-3878,4848,4849,4029,6967,2929,3879,4850,4851,6968,6969,1733,6970,4220,6971,6972, # 6016
-6973,6974,6975,6976,4852,6977,6978,6979,6980,6981,6982,3759,6983,6984,6985,3486, # 6032
-3487,6986,3488,3416,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,4853, # 6048
-6998,6999,4030,7000,7001,3211,7002,7003,4221,7004,7005,3571,4031,7006,3572,7007, # 6064
-2614,4854,2577,7008,7009,2965,3655,3656,4855,2775,3489,3880,4222,4856,3881,4032, # 6080
-3882,3657,2730,3490,4857,7010,3149,7011,4469,4858,2496,3491,4859,2283,7012,7013, # 6096
-7014,2365,4860,4470,7015,7016,3760,7017,7018,4223,1917,7019,7020,7021,4471,7022, # 6112
-2776,4472,7023,7024,7025,7026,4033,7027,3573,4224,4861,4034,4862,7028,7029,1929, # 6128
-3883,4035,7030,4473,3058,7031,2536,3761,3884,7032,4036,7033,2966,2895,1968,4474, # 6144
-3276,4225,3417,3492,4226,2105,7034,7035,1754,2596,3762,4227,4863,4475,3763,4864, # 6160
-3764,2615,2777,3103,3765,3658,3418,4865,2296,3766,2815,7036,7037,7038,3574,2872, # 6176
-3277,4476,7039,4037,4477,7040,7041,4038,7042,7043,7044,7045,7046,7047,2537,7048, # 6192
-7049,7050,7051,7052,7053,7054,4478,7055,7056,3767,3659,4228,3575,7057,7058,4229, # 6208
-7059,7060,7061,3660,7062,3212,7063,3885,4039,2460,7064,7065,7066,7067,7068,7069, # 6224
-7070,7071,7072,7073,7074,4866,3768,4867,7075,7076,7077,7078,4868,3358,3278,2653, # 6240
-7079,7080,4479,3886,7081,7082,4869,7083,7084,7085,7086,7087,7088,2538,7089,7090, # 6256
-7091,4040,3150,3769,4870,4041,2896,3359,4230,2930,7092,3279,7093,2967,4480,3213, # 6272
-4481,3661,7094,7095,7096,7097,7098,7099,7100,7101,7102,2461,3770,7103,7104,4231, # 6288
-3151,7105,7106,7107,4042,3662,7108,7109,4871,3663,4872,4043,3059,7110,7111,7112, # 6304
-3493,2988,7113,4873,7114,7115,7116,3771,4874,7117,7118,4232,4875,7119,3576,2336, # 6320
-4876,7120,4233,3419,4044,4877,4878,4482,4483,4879,4484,4234,7121,3772,4880,1045, # 6336
-3280,3664,4881,4882,7122,7123,7124,7125,4883,7126,2778,7127,4485,4486,7128,4884, # 6352
-3214,3887,7129,7130,3215,7131,4885,4045,7132,7133,4046,7134,7135,7136,7137,7138, # 6368
-7139,7140,7141,7142,7143,4235,7144,4886,7145,7146,7147,4887,7148,7149,7150,4487, # 6384
-4047,4488,7151,7152,4888,4048,2989,3888,7153,3665,7154,4049,7155,7156,7157,7158, # 6400
-7159,7160,2931,4889,4890,4489,7161,2631,3889,4236,2779,7162,7163,4891,7164,3060, # 6416
-7165,1672,4892,7166,4893,4237,3281,4894,7167,7168,3666,7169,3494,7170,7171,4050, # 6432
-7172,7173,3104,3360,3420,4490,4051,2684,4052,7174,4053,7175,7176,7177,2253,4054, # 6448
-7178,7179,4895,7180,3152,3890,3153,4491,3216,7181,7182,7183,2968,4238,4492,4055, # 6464
-7184,2990,7185,2479,7186,7187,4493,7188,7189,7190,7191,7192,4896,7193,4897,2969, # 6480
-4494,4898,7194,3495,7195,7196,4899,4495,7197,3105,2731,7198,4900,7199,7200,7201, # 6496
-4056,7202,3361,7203,7204,4496,4901,4902,7205,4497,7206,7207,2315,4903,7208,4904, # 6512
-7209,4905,2851,7210,7211,3577,7212,3578,4906,7213,4057,3667,4907,7214,4058,2354, # 6528
-3891,2376,3217,3773,7215,7216,7217,7218,7219,4498,7220,4908,3282,2685,7221,3496, # 6544
-4909,2632,3154,4910,7222,2337,7223,4911,7224,7225,7226,4912,4913,3283,4239,4499, # 6560
-7227,2816,7228,7229,7230,7231,7232,7233,7234,4914,4500,4501,7235,7236,7237,2686, # 6576
-7238,4915,7239,2897,4502,7240,4503,7241,2516,7242,4504,3362,3218,7243,7244,7245, # 6592
-4916,7246,7247,4505,3363,7248,7249,7250,7251,3774,4506,7252,7253,4917,7254,7255, # 6608
-3284,2991,4918,4919,3219,3892,4920,3106,3497,4921,7256,7257,7258,4922,7259,4923, # 6624
-3364,4507,4508,4059,7260,4240,3498,7261,7262,4924,7263,2992,3893,4060,3220,7264, # 6640
-7265,7266,7267,7268,7269,4509,3775,7270,2817,7271,4061,4925,4510,3776,7272,4241, # 6656
-4511,3285,7273,7274,3499,7275,7276,7277,4062,4512,4926,7278,3107,3894,7279,7280, # 6672
-4927,7281,4513,7282,7283,3668,7284,7285,4242,4514,4243,7286,2058,4515,4928,4929, # 6688
-4516,7287,3286,4244,7288,4517,7289,7290,7291,3669,7292,7293,4930,4931,4932,2355, # 6704
-4933,7294,2633,4518,7295,4245,7296,7297,4519,7298,7299,4520,4521,4934,7300,4246, # 6720
-4522,7301,7302,7303,3579,7304,4247,4935,7305,4936,7306,7307,7308,7309,3777,7310, # 6736
-4523,7311,7312,7313,4248,3580,7314,4524,3778,4249,7315,3581,7316,3287,7317,3221, # 6752
-7318,4937,7319,7320,7321,7322,7323,7324,4938,4939,7325,4525,7326,7327,7328,4063, # 6768
-7329,7330,4940,7331,7332,4941,7333,4526,7334,3500,2780,1741,4942,2026,1742,7335, # 6784
-7336,3582,4527,2388,7337,7338,7339,4528,7340,4250,4943,7341,7342,7343,4944,7344, # 6800
-7345,7346,3020,7347,4945,7348,7349,7350,7351,3895,7352,3896,4064,3897,7353,7354, # 6816
-7355,4251,7356,7357,3898,7358,3779,7359,3780,3288,7360,7361,4529,7362,4946,4530, # 6832
-2027,7363,3899,4531,4947,3222,3583,7364,4948,7365,7366,7367,7368,4949,3501,4950, # 6848
-3781,4951,4532,7369,2517,4952,4252,4953,3155,7370,4954,4955,4253,2518,4533,7371, # 6864
-7372,2712,4254,7373,7374,7375,3670,4956,3671,7376,2389,3502,4065,7377,2338,7378, # 6880
-7379,7380,7381,3061,7382,4957,7383,7384,7385,7386,4958,4534,7387,7388,2993,7389, # 6896
-3062,7390,4959,7391,7392,7393,4960,3108,4961,7394,4535,7395,4962,3421,4536,7396, # 6912
-4963,7397,4964,1857,7398,4965,7399,7400,2176,3584,4966,7401,7402,3422,4537,3900, # 6928
-3585,7403,3782,7404,2852,7405,7406,7407,4538,3783,2654,3423,4967,4539,7408,3784, # 6944
-3586,2853,4540,4541,7409,3901,7410,3902,7411,7412,3785,3109,2327,3903,7413,7414, # 6960
-2970,4066,2932,7415,7416,7417,3904,3672,3424,7418,4542,4543,4544,7419,4968,7420, # 6976
-7421,4255,7422,7423,7424,7425,7426,4067,7427,3673,3365,4545,7428,3110,2559,3674, # 6992
-7429,7430,3156,7431,7432,3503,7433,3425,4546,7434,3063,2873,7435,3223,4969,4547, # 7008
-4548,2898,4256,4068,7436,4069,3587,3786,2933,3787,4257,4970,4971,3788,7437,4972, # 7024
-3064,7438,4549,7439,7440,7441,7442,7443,4973,3905,7444,2874,7445,7446,7447,7448, # 7040
-3021,7449,4550,3906,3588,4974,7450,7451,3789,3675,7452,2578,7453,4070,7454,7455, # 7056
-7456,4258,3676,7457,4975,7458,4976,4259,3790,3504,2634,4977,3677,4551,4260,7459, # 7072
-7460,7461,7462,3907,4261,4978,7463,7464,7465,7466,4979,4980,7467,7468,2213,4262, # 7088
-7469,7470,7471,3678,4981,7472,2439,7473,4263,3224,3289,7474,3908,2415,4982,7475, # 7104
-4264,7476,4983,2655,7477,7478,2732,4552,2854,2875,7479,7480,4265,7481,4553,4984, # 7120
-7482,7483,4266,7484,3679,3366,3680,2818,2781,2782,3367,3589,4554,3065,7485,4071, # 7136
-2899,7486,7487,3157,2462,4072,4555,4073,4985,4986,3111,4267,2687,3368,4556,4074, # 7152
-3791,4268,7488,3909,2783,7489,2656,1962,3158,4557,4987,1963,3159,3160,7490,3112, # 7168
-4988,4989,3022,4990,4991,3792,2855,7491,7492,2971,4558,7493,7494,4992,7495,7496, # 7184
-7497,7498,4993,7499,3426,4559,4994,7500,3681,4560,4269,4270,3910,7501,4075,4995, # 7200
-4271,7502,7503,4076,7504,4996,7505,3225,4997,4272,4077,2819,3023,7506,7507,2733, # 7216
-4561,7508,4562,7509,3369,3793,7510,3590,2508,7511,7512,4273,3113,2994,2616,7513, # 7232
-7514,7515,7516,7517,7518,2820,3911,4078,2748,7519,7520,4563,4998,7521,7522,7523, # 7248
-7524,4999,4274,7525,4564,3682,2239,4079,4565,7526,7527,7528,7529,5000,7530,7531, # 7264
-5001,4275,3794,7532,7533,7534,3066,5002,4566,3161,7535,7536,4080,7537,3162,7538, # 7280
-7539,4567,7540,7541,7542,7543,7544,7545,5003,7546,4568,7547,7548,7549,7550,7551, # 7296
-7552,7553,7554,7555,7556,5004,7557,7558,7559,5005,7560,3795,7561,4569,7562,7563, # 7312
-7564,2821,3796,4276,4277,4081,7565,2876,7566,5006,7567,7568,2900,7569,3797,3912, # 7328
-7570,7571,7572,4278,7573,7574,7575,5007,7576,7577,5008,7578,7579,4279,2934,7580, # 7344
-7581,5009,7582,4570,7583,4280,7584,7585,7586,4571,4572,3913,7587,4573,3505,7588, # 7360
-5010,7589,7590,7591,7592,3798,4574,7593,7594,5011,7595,4281,7596,7597,7598,4282, # 7376
-5012,7599,7600,5013,3163,7601,5014,7602,3914,7603,7604,2734,4575,4576,4577,7605, # 7392
-7606,7607,7608,7609,3506,5015,4578,7610,4082,7611,2822,2901,2579,3683,3024,4579, # 7408
-3507,7612,4580,7613,3226,3799,5016,7614,7615,7616,7617,7618,7619,7620,2995,3290, # 7424
-7621,4083,7622,5017,7623,7624,7625,7626,7627,4581,3915,7628,3291,7629,5018,7630, # 7440
-7631,7632,7633,4084,7634,7635,3427,3800,7636,7637,4582,7638,5019,4583,5020,7639, # 7456
-3916,7640,3801,5021,4584,4283,7641,7642,3428,3591,2269,7643,2617,7644,4585,3592, # 7472
-7645,4586,2902,7646,7647,3227,5022,7648,4587,7649,4284,7650,7651,7652,4588,2284, # 7488
-7653,5023,7654,7655,7656,4589,5024,3802,7657,7658,5025,3508,4590,7659,7660,7661, # 7504
-1969,5026,7662,7663,3684,1821,2688,7664,2028,2509,4285,7665,2823,1841,7666,2689, # 7520
-3114,7667,3917,4085,2160,5027,5028,2972,7668,5029,7669,7670,7671,3593,4086,7672, # 7536
-4591,4087,5030,3803,7673,7674,7675,7676,7677,7678,7679,4286,2366,4592,4593,3067, # 7552
-2328,7680,7681,4594,3594,3918,2029,4287,7682,5031,3919,3370,4288,4595,2856,7683, # 7568
-3509,7684,7685,5032,5033,7686,7687,3804,2784,7688,7689,7690,7691,3371,7692,7693, # 7584
-2877,5034,7694,7695,3920,4289,4088,7696,7697,7698,5035,7699,5036,4290,5037,5038, # 7600
-5039,7700,7701,7702,5040,5041,3228,7703,1760,7704,5042,3229,4596,2106,4089,7705, # 7616
-4597,2824,5043,2107,3372,7706,4291,4090,5044,7707,4091,7708,5045,3025,3805,4598, # 7632
-4292,4293,4294,3373,7709,4599,7710,5046,7711,7712,5047,5048,3806,7713,7714,7715, # 7648
-5049,7716,7717,7718,7719,4600,5050,7720,7721,7722,5051,7723,4295,3429,7724,7725, # 7664
-7726,7727,3921,7728,3292,5052,4092,7729,7730,7731,7732,7733,7734,7735,5053,5054, # 7680
-7736,7737,7738,7739,3922,3685,7740,7741,7742,7743,2635,5055,7744,5056,4601,7745, # 7696
-7746,2560,7747,7748,7749,7750,3923,7751,7752,7753,7754,7755,4296,2903,7756,7757, # 7712
-7758,7759,7760,3924,7761,5057,4297,7762,7763,5058,4298,7764,4093,7765,7766,5059, # 7728
-3925,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,3595,7777,4299,5060,4094, # 7744
-7778,3293,5061,7779,7780,4300,7781,7782,4602,7783,3596,7784,7785,3430,2367,7786, # 7760
-3164,5062,5063,4301,7787,7788,4095,5064,5065,7789,3374,3115,7790,7791,7792,7793, # 7776
-7794,7795,7796,3597,4603,7797,7798,3686,3116,3807,5066,7799,7800,5067,7801,7802, # 7792
-4604,4302,5068,4303,4096,7803,7804,3294,7805,7806,5069,4605,2690,7807,3026,7808, # 7808
-7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824, # 7824
-7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840, # 7840
-7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,7856, # 7856
-7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872, # 7872
-7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,7888, # 7888
-7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,7904, # 7904
-7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,7920, # 7920
-7921,7922,7923,7924,3926,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935, # 7936
-7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951, # 7952
-7952,7953,7954,7955,7956,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967, # 7968
-7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983, # 7984
-7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999, # 8000
-8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015, # 8016
-8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031, # 8032
-8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047, # 8048
-8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063, # 8064
-8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079, # 8080
-8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095, # 8096
-8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111, # 8112
-8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127, # 8128
-8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143, # 8144
-8144,8145,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155,8156,8157,8158,8159, # 8160
-8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175, # 8176
-8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191, # 8192
-8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207, # 8208
-8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223, # 8224
-8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239, # 8240
-8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255, # 8256
-8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271) # 8272
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/jpcntx.py b/vendor/requests/packages/chardet/jpcntx.py
deleted file mode 100644
index 59aeb6a8..00000000
--- a/vendor/requests/packages/chardet/jpcntx.py
+++ /dev/null
@@ -1,227 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .compat import wrap_ord
-
-NUM_OF_CATEGORY = 6
-DONT_KNOW = -1
-ENOUGH_REL_THRESHOLD = 100
-MAX_REL_THRESHOLD = 1000
-MINIMUM_DATA_THRESHOLD = 4
-
-# This is hiragana 2-char sequence table, the number in each cell represents its frequency category
-jp2CharContext = (
-(0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1),
-(2,4,0,4,0,3,0,4,0,3,4,4,4,2,4,3,3,4,3,2,3,3,4,2,3,3,3,2,4,1,4,3,3,1,5,4,3,4,3,4,3,5,3,0,3,5,4,2,0,3,1,0,3,3,0,3,3,0,1,1,0,4,3,0,3,3,0,4,0,2,0,3,5,5,5,5,4,0,4,1,0,3,4),
-(0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2),
-(0,4,0,5,0,5,0,4,0,4,5,4,4,3,5,3,5,1,5,3,4,3,4,4,3,4,3,3,4,3,5,4,4,3,5,5,3,5,5,5,3,5,5,3,4,5,5,3,1,3,2,0,3,4,0,4,2,0,4,2,1,5,3,2,3,5,0,4,0,2,0,5,4,4,5,4,5,0,4,0,0,4,4),
-(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
-(0,3,0,4,0,3,0,3,0,4,5,4,3,3,3,3,4,3,5,4,4,3,5,4,4,3,4,3,4,4,4,4,5,3,4,4,3,4,5,5,4,5,5,1,4,5,4,3,0,3,3,1,3,3,0,4,4,0,3,3,1,5,3,3,3,5,0,4,0,3,0,4,4,3,4,3,3,0,4,1,1,3,4),
-(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
-(0,4,0,3,0,3,0,4,0,3,4,4,3,2,2,1,2,1,3,1,3,3,3,3,3,4,3,1,3,3,5,3,3,0,4,3,0,5,4,3,3,5,4,4,3,4,4,5,0,1,2,0,1,2,0,2,2,0,1,0,0,5,2,2,1,4,0,3,0,1,0,4,4,3,5,4,3,0,2,1,0,4,3),
-(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
-(0,3,0,5,0,4,0,2,1,4,4,2,4,1,4,2,4,2,4,3,3,3,4,3,3,3,3,1,4,2,3,3,3,1,4,4,1,1,1,4,3,3,2,0,2,4,3,2,0,3,3,0,3,1,1,0,0,0,3,3,0,4,2,2,3,4,0,4,0,3,0,4,4,5,3,4,4,0,3,0,0,1,4),
-(1,4,0,4,0,4,0,4,0,3,5,4,4,3,4,3,5,4,3,3,4,3,5,4,4,4,4,3,4,2,4,3,3,1,5,4,3,2,4,5,4,5,5,4,4,5,4,4,0,3,2,2,3,3,0,4,3,1,3,2,1,4,3,3,4,5,0,3,0,2,0,4,5,5,4,5,4,0,4,0,0,5,4),
-(0,5,0,5,0,4,0,3,0,4,4,3,4,3,3,3,4,0,4,4,4,3,4,3,4,3,3,1,4,2,4,3,4,0,5,4,1,4,5,4,4,5,3,2,4,3,4,3,2,4,1,3,3,3,2,3,2,0,4,3,3,4,3,3,3,4,0,4,0,3,0,4,5,4,4,4,3,0,4,1,0,1,3),
-(0,3,1,4,0,3,0,2,0,3,4,4,3,1,4,2,3,3,4,3,4,3,4,3,4,4,3,2,3,1,5,4,4,1,4,4,3,5,4,4,3,5,5,4,3,4,4,3,1,2,3,1,2,2,0,3,2,0,3,1,0,5,3,3,3,4,3,3,3,3,4,4,4,4,5,4,2,0,3,3,2,4,3),
-(0,2,0,3,0,1,0,1,0,0,3,2,0,0,2,0,1,0,2,1,3,3,3,1,2,3,1,0,1,0,4,2,1,1,3,3,0,4,3,3,1,4,3,3,0,3,3,2,0,0,0,0,1,0,0,2,0,0,0,0,0,4,1,0,2,3,2,2,2,1,3,3,3,4,4,3,2,0,3,1,0,3,3),
-(0,4,0,4,0,3,0,3,0,4,4,4,3,3,3,3,3,3,4,3,4,2,4,3,4,3,3,2,4,3,4,5,4,1,4,5,3,5,4,5,3,5,4,0,3,5,5,3,1,3,3,2,2,3,0,3,4,1,3,3,2,4,3,3,3,4,0,4,0,3,0,4,5,4,4,5,3,0,4,1,0,3,4),
-(0,2,0,3,0,3,0,0,0,2,2,2,1,0,1,0,0,0,3,0,3,0,3,0,1,3,1,0,3,1,3,3,3,1,3,3,3,0,1,3,1,3,4,0,0,3,1,1,0,3,2,0,0,0,0,1,3,0,1,0,0,3,3,2,0,3,0,0,0,0,0,3,4,3,4,3,3,0,3,0,0,2,3),
-(2,3,0,3,0,2,0,1,0,3,3,4,3,1,3,1,1,1,3,1,4,3,4,3,3,3,0,0,3,1,5,4,3,1,4,3,2,5,5,4,4,4,4,3,3,4,4,4,0,2,1,1,3,2,0,1,2,0,0,1,0,4,1,3,3,3,0,3,0,1,0,4,4,4,5,5,3,0,2,0,0,4,4),
-(0,2,0,1,0,3,1,3,0,2,3,3,3,0,3,1,0,0,3,0,3,2,3,1,3,2,1,1,0,0,4,2,1,0,2,3,1,4,3,2,0,4,4,3,1,3,1,3,0,1,0,0,1,0,0,0,1,0,0,0,0,4,1,1,1,2,0,3,0,0,0,3,4,2,4,3,2,0,1,0,0,3,3),
-(0,1,0,4,0,5,0,4,0,2,4,4,2,3,3,2,3,3,5,3,3,3,4,3,4,2,3,0,4,3,3,3,4,1,4,3,2,1,5,5,3,4,5,1,3,5,4,2,0,3,3,0,1,3,0,4,2,0,1,3,1,4,3,3,3,3,0,3,0,1,0,3,4,4,4,5,5,0,3,0,1,4,5),
-(0,2,0,3,0,3,0,0,0,2,3,1,3,0,4,0,1,1,3,0,3,4,3,2,3,1,0,3,3,2,3,1,3,0,2,3,0,2,1,4,1,2,2,0,0,3,3,0,0,2,0,0,0,1,0,0,0,0,2,2,0,3,2,1,3,3,0,2,0,2,0,0,3,3,1,2,4,0,3,0,2,2,3),
-(2,4,0,5,0,4,0,4,0,2,4,4,4,3,4,3,3,3,1,2,4,3,4,3,4,4,5,0,3,3,3,3,2,0,4,3,1,4,3,4,1,4,4,3,3,4,4,3,1,2,3,0,4,2,0,4,1,0,3,3,0,4,3,3,3,4,0,4,0,2,0,3,5,3,4,5,2,0,3,0,0,4,5),
-(0,3,0,4,0,1,0,1,0,1,3,2,2,1,3,0,3,0,2,0,2,0,3,0,2,0,0,0,1,0,1,1,0,0,3,1,0,0,0,4,0,3,1,0,2,1,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,2,2,3,1,0,3,0,0,0,1,4,4,4,3,0,0,4,0,0,1,4),
-(1,4,1,5,0,3,0,3,0,4,5,4,4,3,5,3,3,4,4,3,4,1,3,3,3,3,2,1,4,1,5,4,3,1,4,4,3,5,4,4,3,5,4,3,3,4,4,4,0,3,3,1,2,3,0,3,1,0,3,3,0,5,4,4,4,4,4,4,3,3,5,4,4,3,3,5,4,0,3,2,0,4,4),
-(0,2,0,3,0,1,0,0,0,1,3,3,3,2,4,1,3,0,3,1,3,0,2,2,1,1,0,0,2,0,4,3,1,0,4,3,0,4,4,4,1,4,3,1,1,3,3,1,0,2,0,0,1,3,0,0,0,0,2,0,0,4,3,2,4,3,5,4,3,3,3,4,3,3,4,3,3,0,2,1,0,3,3),
-(0,2,0,4,0,3,0,2,0,2,5,5,3,4,4,4,4,1,4,3,3,0,4,3,4,3,1,3,3,2,4,3,0,3,4,3,0,3,4,4,2,4,4,0,4,5,3,3,2,2,1,1,1,2,0,1,5,0,3,3,2,4,3,3,3,4,0,3,0,2,0,4,4,3,5,5,0,0,3,0,2,3,3),
-(0,3,0,4,0,3,0,1,0,3,4,3,3,1,3,3,3,0,3,1,3,0,4,3,3,1,1,0,3,0,3,3,0,0,4,4,0,1,5,4,3,3,5,0,3,3,4,3,0,2,0,1,1,1,0,1,3,0,1,2,1,3,3,2,3,3,0,3,0,1,0,1,3,3,4,4,1,0,1,2,2,1,3),
-(0,1,0,4,0,4,0,3,0,1,3,3,3,2,3,1,1,0,3,0,3,3,4,3,2,4,2,0,1,0,4,3,2,0,4,3,0,5,3,3,2,4,4,4,3,3,3,4,0,1,3,0,0,1,0,0,1,0,0,0,0,4,2,3,3,3,0,3,0,0,0,4,4,4,5,3,2,0,3,3,0,3,5),
-(0,2,0,3,0,0,0,3,0,1,3,0,2,0,0,0,1,0,3,1,1,3,3,0,0,3,0,0,3,0,2,3,1,0,3,1,0,3,3,2,0,4,2,2,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,1,0,1,0,0,0,1,3,1,2,0,0,0,1,0,0,1,4),
-(0,3,0,3,0,5,0,1,0,2,4,3,1,3,3,2,1,1,5,2,1,0,5,1,2,0,0,0,3,3,2,2,3,2,4,3,0,0,3,3,1,3,3,0,2,5,3,4,0,3,3,0,1,2,0,2,2,0,3,2,0,2,2,3,3,3,0,2,0,1,0,3,4,4,2,5,4,0,3,0,0,3,5),
-(0,3,0,3,0,3,0,1,0,3,3,3,3,0,3,0,2,0,2,1,1,0,2,0,1,0,0,0,2,1,0,0,1,0,3,2,0,0,3,3,1,2,3,1,0,3,3,0,0,1,0,0,0,0,0,2,0,0,0,0,0,2,3,1,2,3,0,3,0,1,0,3,2,1,0,4,3,0,1,1,0,3,3),
-(0,4,0,5,0,3,0,3,0,4,5,5,4,3,5,3,4,3,5,3,3,2,5,3,4,4,4,3,4,3,4,5,5,3,4,4,3,4,4,5,4,4,4,3,4,5,5,4,2,3,4,2,3,4,0,3,3,1,4,3,2,4,3,3,5,5,0,3,0,3,0,5,5,5,5,4,4,0,4,0,1,4,4),
-(0,4,0,4,0,3,0,3,0,3,5,4,4,2,3,2,5,1,3,2,5,1,4,2,3,2,3,3,4,3,3,3,3,2,5,4,1,3,3,5,3,4,4,0,4,4,3,1,1,3,1,0,2,3,0,2,3,0,3,0,0,4,3,1,3,4,0,3,0,2,0,4,4,4,3,4,5,0,4,0,0,3,4),
-(0,3,0,3,0,3,1,2,0,3,4,4,3,3,3,0,2,2,4,3,3,1,3,3,3,1,1,0,3,1,4,3,2,3,4,4,2,4,4,4,3,4,4,3,2,4,4,3,1,3,3,1,3,3,0,4,1,0,2,2,1,4,3,2,3,3,5,4,3,3,5,4,4,3,3,0,4,0,3,2,2,4,4),
-(0,2,0,1,0,0,0,0,0,1,2,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,0,0,0,0,3,0,0,1,0,1,1,3,1,0,0,0,1,1,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,2,2,0,3,4,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1),
-(0,1,0,0,0,1,0,0,0,0,4,0,4,1,4,0,3,0,4,0,3,0,4,0,3,0,3,0,4,1,5,1,4,0,0,3,0,5,0,5,2,0,1,0,0,0,2,1,4,0,1,3,0,0,3,0,0,3,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0),
-(1,4,0,5,0,3,0,2,0,3,5,4,4,3,4,3,5,3,4,3,3,0,4,3,3,3,3,3,3,2,4,4,3,1,3,4,4,5,4,4,3,4,4,1,3,5,4,3,3,3,1,2,2,3,3,1,3,1,3,3,3,5,3,3,4,5,0,3,0,3,0,3,4,3,4,4,3,0,3,0,2,4,3),
-(0,1,0,4,0,0,0,0,0,1,4,0,4,1,4,2,4,0,3,0,1,0,1,0,0,0,0,0,2,0,3,1,1,1,0,3,0,0,0,1,2,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,3,2,0,2,2,0,1,0,0,0,2,3,2,3,3,0,0,0,0,2,1,0),
-(0,5,1,5,0,3,0,3,0,5,4,4,5,1,5,3,3,0,4,3,4,3,5,3,4,3,3,2,4,3,4,3,3,0,3,3,1,4,4,3,4,4,4,3,4,5,5,3,2,3,1,1,3,3,1,3,1,1,3,3,2,4,5,3,3,5,0,4,0,3,0,4,4,3,5,3,3,0,3,4,0,4,3),
-(0,5,0,5,0,3,0,2,0,4,4,3,5,2,4,3,3,3,4,4,4,3,5,3,5,3,3,1,4,0,4,3,3,0,3,3,0,4,4,4,4,5,4,3,3,5,5,3,2,3,1,2,3,2,0,1,0,0,3,2,2,4,4,3,1,5,0,4,0,3,0,4,3,1,3,2,1,0,3,3,0,3,3),
-(0,4,0,5,0,5,0,4,0,4,5,5,5,3,4,3,3,2,5,4,4,3,5,3,5,3,4,0,4,3,4,4,3,2,4,4,3,4,5,4,4,5,5,0,3,5,5,4,1,3,3,2,3,3,1,3,1,0,4,3,1,4,4,3,4,5,0,4,0,2,0,4,3,4,4,3,3,0,4,0,0,5,5),
-(0,4,0,4,0,5,0,1,1,3,3,4,4,3,4,1,3,0,5,1,3,0,3,1,3,1,1,0,3,0,3,3,4,0,4,3,0,4,4,4,3,4,4,0,3,5,4,1,0,3,0,0,2,3,0,3,1,0,3,1,0,3,2,1,3,5,0,3,0,1,0,3,2,3,3,4,4,0,2,2,0,4,4),
-(2,4,0,5,0,4,0,3,0,4,5,5,4,3,5,3,5,3,5,3,5,2,5,3,4,3,3,4,3,4,5,3,2,1,5,4,3,2,3,4,5,3,4,1,2,5,4,3,0,3,3,0,3,2,0,2,3,0,4,1,0,3,4,3,3,5,0,3,0,1,0,4,5,5,5,4,3,0,4,2,0,3,5),
-(0,5,0,4,0,4,0,2,0,5,4,3,4,3,4,3,3,3,4,3,4,2,5,3,5,3,4,1,4,3,4,4,4,0,3,5,0,4,4,4,4,5,3,1,3,4,5,3,3,3,3,3,3,3,0,2,2,0,3,3,2,4,3,3,3,5,3,4,1,3,3,5,3,2,0,0,0,0,4,3,1,3,3),
-(0,1,0,3,0,3,0,1,0,1,3,3,3,2,3,3,3,0,3,0,0,0,3,1,3,0,0,0,2,2,2,3,0,0,3,2,0,1,2,4,1,3,3,0,0,3,3,3,0,1,0,0,2,1,0,0,3,0,3,1,0,3,0,0,1,3,0,2,0,1,0,3,3,1,3,3,0,0,1,1,0,3,3),
-(0,2,0,3,0,2,1,4,0,2,2,3,1,1,3,1,1,0,2,0,3,1,2,3,1,3,0,0,1,0,4,3,2,3,3,3,1,4,2,3,3,3,3,1,0,3,1,4,0,1,1,0,1,2,0,1,1,0,1,1,0,3,1,3,2,2,0,1,0,0,0,2,3,3,3,1,0,0,0,0,0,2,3),
-(0,5,0,4,0,5,0,2,0,4,5,5,3,3,4,3,3,1,5,4,4,2,4,4,4,3,4,2,4,3,5,5,4,3,3,4,3,3,5,5,4,5,5,1,3,4,5,3,1,4,3,1,3,3,0,3,3,1,4,3,1,4,5,3,3,5,0,4,0,3,0,5,3,3,1,4,3,0,4,0,1,5,3),
-(0,5,0,5,0,4,0,2,0,4,4,3,4,3,3,3,3,3,5,4,4,4,4,4,4,5,3,3,5,2,4,4,4,3,4,4,3,3,4,4,5,5,3,3,4,3,4,3,3,4,3,3,3,3,1,2,2,1,4,3,3,5,4,4,3,4,0,4,0,3,0,4,4,4,4,4,1,0,4,2,0,2,4),
-(0,4,0,4,0,3,0,1,0,3,5,2,3,0,3,0,2,1,4,2,3,3,4,1,4,3,3,2,4,1,3,3,3,0,3,3,0,0,3,3,3,5,3,3,3,3,3,2,0,2,0,0,2,0,0,2,0,0,1,0,0,3,1,2,2,3,0,3,0,2,0,4,4,3,3,4,1,0,3,0,0,2,4),
-(0,0,0,4,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,3,1,3,0,3,2,0,0,0,1,0,3,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,0,2,0,0,0,0,0,0,2),
-(0,2,1,3,0,2,0,2,0,3,3,3,3,1,3,1,3,3,3,3,3,3,4,2,2,1,2,1,4,0,4,3,1,3,3,3,2,4,3,5,4,3,3,3,3,3,3,3,0,1,3,0,2,0,0,1,0,0,1,0,0,4,2,0,2,3,0,3,3,0,3,3,4,2,3,1,4,0,1,2,0,2,3),
-(0,3,0,3,0,1,0,3,0,2,3,3,3,0,3,1,2,0,3,3,2,3,3,2,3,2,3,1,3,0,4,3,2,0,3,3,1,4,3,3,2,3,4,3,1,3,3,1,1,0,1,1,0,1,0,1,0,1,0,0,0,4,1,1,0,3,0,3,1,0,2,3,3,3,3,3,1,0,0,2,0,3,3),
-(0,0,0,0,0,0,0,0,0,0,3,0,2,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,3,0,3,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,2,3,0,0,0,0,0,0,0,0,3),
-(0,2,0,3,1,3,0,3,0,2,3,3,3,1,3,1,3,1,3,1,3,3,3,1,3,0,2,3,1,1,4,3,3,2,3,3,1,2,2,4,1,3,3,0,1,4,2,3,0,1,3,0,3,0,0,1,3,0,2,0,0,3,3,2,1,3,0,3,0,2,0,3,4,4,4,3,1,0,3,0,0,3,3),
-(0,2,0,1,0,2,0,0,0,1,3,2,2,1,3,0,1,1,3,0,3,2,3,1,2,0,2,0,1,1,3,3,3,0,3,3,1,1,2,3,2,3,3,1,2,3,2,0,0,1,0,0,0,0,0,0,3,0,1,0,0,2,1,2,1,3,0,3,0,0,0,3,4,4,4,3,2,0,2,0,0,2,4),
-(0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,3,1,0,0,0,0,0,0,0,3),
-(0,3,0,3,0,2,0,3,0,3,3,3,2,3,2,2,2,0,3,1,3,3,3,2,3,3,0,0,3,0,3,2,2,0,2,3,1,4,3,4,3,3,2,3,1,5,4,4,0,3,1,2,1,3,0,3,1,1,2,0,2,3,1,3,1,3,0,3,0,1,0,3,3,4,4,2,1,0,2,1,0,2,4),
-(0,1,0,3,0,1,0,2,0,1,4,2,5,1,4,0,2,0,2,1,3,1,4,0,2,1,0,0,2,1,4,1,1,0,3,3,0,5,1,3,2,3,3,1,0,3,2,3,0,1,0,0,0,0,0,0,1,0,0,0,0,4,0,1,0,3,0,2,0,1,0,3,3,3,4,3,3,0,0,0,0,2,3),
-(0,0,0,1,0,0,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,1,0,0,0,0,0,3),
-(0,1,0,3,0,4,0,3,0,2,4,3,1,0,3,2,2,1,3,1,2,2,3,1,1,1,2,1,3,0,1,2,0,1,3,2,1,3,0,5,5,1,0,0,1,3,2,1,0,3,0,0,1,0,0,0,0,0,3,4,0,1,1,1,3,2,0,2,0,1,0,2,3,3,1,2,3,0,1,0,1,0,4),
-(0,0,0,1,0,3,0,3,0,2,2,1,0,0,4,0,3,0,3,1,3,0,3,0,3,0,1,0,3,0,3,1,3,0,3,3,0,0,1,2,1,1,1,0,1,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,2,1,2,0,0,2,0,0,0,0,2,3,3,3,3,0,0,0,0,1,4),
-(0,0,0,3,0,3,0,0,0,0,3,1,1,0,3,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,2,3,0,0,2,2,3,1,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,2,3),
-(2,4,0,5,0,5,0,4,0,3,4,3,3,3,4,3,3,3,4,3,4,4,5,4,5,5,5,2,3,0,5,5,4,1,5,4,3,1,5,4,3,4,4,3,3,4,3,3,0,3,2,0,2,3,0,3,0,0,3,3,0,5,3,2,3,3,0,3,0,3,0,3,4,5,4,5,3,0,4,3,0,3,4),
-(0,3,0,3,0,3,0,3,0,3,3,4,3,2,3,2,3,0,4,3,3,3,3,3,3,3,3,0,3,2,4,3,3,1,3,4,3,4,4,4,3,4,4,3,2,4,4,1,0,2,0,0,1,1,0,2,0,0,3,1,0,5,3,2,1,3,0,3,0,1,2,4,3,2,4,3,3,0,3,2,0,4,4),
-(0,3,0,3,0,1,0,0,0,1,4,3,3,2,3,1,3,1,4,2,3,2,4,2,3,4,3,0,2,2,3,3,3,0,3,3,3,0,3,4,1,3,3,0,3,4,3,3,0,1,1,0,1,0,0,0,4,0,3,0,0,3,1,2,1,3,0,4,0,1,0,4,3,3,4,3,3,0,2,0,0,3,3),
-(0,3,0,4,0,1,0,3,0,3,4,3,3,0,3,3,3,1,3,1,3,3,4,3,3,3,0,0,3,1,5,3,3,1,3,3,2,5,4,3,3,4,5,3,2,5,3,4,0,1,0,0,0,0,0,2,0,0,1,1,0,4,2,2,1,3,0,3,0,2,0,4,4,3,5,3,2,0,1,1,0,3,4),
-(0,5,0,4,0,5,0,2,0,4,4,3,3,2,3,3,3,1,4,3,4,1,5,3,4,3,4,0,4,2,4,3,4,1,5,4,0,4,4,4,4,5,4,1,3,5,4,2,1,4,1,1,3,2,0,3,1,0,3,2,1,4,3,3,3,4,0,4,0,3,0,4,4,4,3,3,3,0,4,2,0,3,4),
-(1,4,0,4,0,3,0,1,0,3,3,3,1,1,3,3,2,2,3,3,1,0,3,2,2,1,2,0,3,1,2,1,2,0,3,2,0,2,2,3,3,4,3,0,3,3,1,2,0,1,1,3,1,2,0,0,3,0,1,1,0,3,2,2,3,3,0,3,0,0,0,2,3,3,4,3,3,0,1,0,0,1,4),
-(0,4,0,4,0,4,0,0,0,3,4,4,3,1,4,2,3,2,3,3,3,1,4,3,4,0,3,0,4,2,3,3,2,2,5,4,2,1,3,4,3,4,3,1,3,3,4,2,0,2,1,0,3,3,0,0,2,0,3,1,0,4,4,3,4,3,0,4,0,1,0,2,4,4,4,4,4,0,3,2,0,3,3),
-(0,0,0,1,0,4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,3,2,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2),
-(0,2,0,3,0,4,0,4,0,1,3,3,3,0,4,0,2,1,2,1,1,1,2,0,3,1,1,0,1,0,3,1,0,0,3,3,2,0,1,1,0,0,0,0,0,1,0,2,0,2,2,0,3,1,0,0,1,0,1,1,0,1,2,0,3,0,0,0,0,1,0,0,3,3,4,3,1,0,1,0,3,0,2),
-(0,0,0,3,0,5,0,0,0,0,1,0,2,0,3,1,0,1,3,0,0,0,2,0,0,0,1,0,0,0,1,1,0,0,4,0,0,0,2,3,0,1,4,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,3),
-(0,2,0,5,0,5,0,1,0,2,4,3,3,2,5,1,3,2,3,3,3,0,4,1,2,0,3,0,4,0,2,2,1,1,5,3,0,0,1,4,2,3,2,0,3,3,3,2,0,2,4,1,1,2,0,1,1,0,3,1,0,1,3,1,2,3,0,2,0,0,0,1,3,5,4,4,4,0,3,0,0,1,3),
-(0,4,0,5,0,4,0,4,0,4,5,4,3,3,4,3,3,3,4,3,4,4,5,3,4,5,4,2,4,2,3,4,3,1,4,4,1,3,5,4,4,5,5,4,4,5,5,5,2,3,3,1,4,3,1,3,3,0,3,3,1,4,3,4,4,4,0,3,0,4,0,3,3,4,4,5,0,0,4,3,0,4,5),
-(0,4,0,4,0,3,0,3,0,3,4,4,4,3,3,2,4,3,4,3,4,3,5,3,4,3,2,1,4,2,4,4,3,1,3,4,2,4,5,5,3,4,5,4,1,5,4,3,0,3,2,2,3,2,1,3,1,0,3,3,3,5,3,3,3,5,4,4,2,3,3,4,3,3,3,2,1,0,3,2,1,4,3),
-(0,4,0,5,0,4,0,3,0,3,5,5,3,2,4,3,4,0,5,4,4,1,4,4,4,3,3,3,4,3,5,5,2,3,3,4,1,2,5,5,3,5,5,2,3,5,5,4,0,3,2,0,3,3,1,1,5,1,4,1,0,4,3,2,3,5,0,4,0,3,0,5,4,3,4,3,0,0,4,1,0,4,4),
-(1,3,0,4,0,2,0,2,0,2,5,5,3,3,3,3,3,0,4,2,3,4,4,4,3,4,0,0,3,4,5,4,3,3,3,3,2,5,5,4,5,5,5,4,3,5,5,5,1,3,1,0,1,0,0,3,2,0,4,2,0,5,2,3,2,4,1,3,0,3,0,4,5,4,5,4,3,0,4,2,0,5,4),
-(0,3,0,4,0,5,0,3,0,3,4,4,3,2,3,2,3,3,3,3,3,2,4,3,3,2,2,0,3,3,3,3,3,1,3,3,3,0,4,4,3,4,4,1,1,4,4,2,0,3,1,0,1,1,0,4,1,0,2,3,1,3,3,1,3,4,0,3,0,1,0,3,1,3,0,0,1,0,2,0,0,4,4),
-(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
-(0,3,0,3,0,2,0,3,0,1,5,4,3,3,3,1,4,2,1,2,3,4,4,2,4,4,5,0,3,1,4,3,4,0,4,3,3,3,2,3,2,5,3,4,3,2,2,3,0,0,3,0,2,1,0,1,2,0,0,0,0,2,1,1,3,1,0,2,0,4,0,3,4,4,4,5,2,0,2,0,0,1,3),
-(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,4,2,1,1,0,1,0,3,2,0,0,3,1,1,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,2,0,0,0,1,4,0,4,2,1,0,0,0,0,0,1),
-(0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,3,1,0,0,0,2,0,2,1,0,0,1,2,1,0,1,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,0,0,2),
-(0,4,0,4,0,4,0,3,0,4,4,3,4,2,4,3,2,0,4,4,4,3,5,3,5,3,3,2,4,2,4,3,4,3,1,4,0,2,3,4,4,4,3,3,3,4,4,4,3,4,1,3,4,3,2,1,2,1,3,3,3,4,4,3,3,5,0,4,0,3,0,4,3,3,3,2,1,0,3,0,0,3,3),
-(0,4,0,3,0,3,0,3,0,3,5,5,3,3,3,3,4,3,4,3,3,3,4,4,4,3,3,3,3,4,3,5,3,3,1,3,2,4,5,5,5,5,4,3,4,5,5,3,2,2,3,3,3,3,2,3,3,1,2,3,2,4,3,3,3,4,0,4,0,2,0,4,3,2,2,1,2,0,3,0,0,4,1),
-)
-
-class JapaneseContextAnalysis:
- def __init__(self):
- self.reset()
-
- def reset(self):
- self._mTotalRel = 0 # total sequence received
- # category counters, each interger counts sequence in its category
- self._mRelSample = [0] * NUM_OF_CATEGORY
- # if last byte in current buffer is not the last byte of a character,
- # we need to know how many bytes to skip in next buffer
- self._mNeedToSkipCharNum = 0
- self._mLastCharOrder = -1 # The order of previous char
- # If this flag is set to True, detection is done and conclusion has
- # been made
- self._mDone = False
-
- def feed(self, aBuf, aLen):
- if self._mDone:
- return
-
- # The buffer we got is byte oriented, and a character may span in more than one
- # buffers. In case the last one or two byte in last buffer is not
- # complete, we record how many byte needed to complete that character
- # and skip these bytes here. We can choose to record those bytes as
- # well and analyse the character once it is complete, but since a
- # character will not make much difference, by simply skipping
- # this character will simply our logic and improve performance.
- i = self._mNeedToSkipCharNum
- while i < aLen:
- order, charLen = self.get_order(aBuf[i:i + 2])
- i += charLen
- if i > aLen:
- self._mNeedToSkipCharNum = i - aLen
- self._mLastCharOrder = -1
- else:
- if (order != -1) and (self._mLastCharOrder != -1):
- self._mTotalRel += 1
- if self._mTotalRel > MAX_REL_THRESHOLD:
- self._mDone = True
- break
- self._mRelSample[jp2CharContext[self._mLastCharOrder][order]] += 1
- self._mLastCharOrder = order
-
- def got_enough_data(self):
- return self._mTotalRel > ENOUGH_REL_THRESHOLD
-
- def get_confidence(self):
- # This is just one way to calculate confidence. It works well for me.
- if self._mTotalRel > MINIMUM_DATA_THRESHOLD:
- return (self._mTotalRel - self._mRelSample[0]) / self._mTotalRel
- else:
- return DONT_KNOW
-
- def get_order(self, aBuf):
- return -1, 1
-
-class SJISContextAnalysis(JapaneseContextAnalysis):
- def __init__(self):
- self.charset_name = "SHIFT_JIS"
-
- def get_charset_name(self):
- return self.charset_name
-
- def get_order(self, aBuf):
- if not aBuf:
- return -1, 1
- # find out current char's byte length
- first_char = wrap_ord(aBuf[0])
- if ((0x81 <= first_char <= 0x9F) or (0xE0 <= first_char <= 0xFC)):
- charLen = 2
- if (first_char == 0x87) or (0xFA <= first_char <= 0xFC):
- self.charset_name = "CP932"
- else:
- charLen = 1
-
- # return its order if it is hiragana
- if len(aBuf) > 1:
- second_char = wrap_ord(aBuf[1])
- if (first_char == 202) and (0x9F <= second_char <= 0xF1):
- return second_char - 0x9F, charLen
-
- return -1, charLen
-
-class EUCJPContextAnalysis(JapaneseContextAnalysis):
- def get_order(self, aBuf):
- if not aBuf:
- return -1, 1
- # find out current char's byte length
- first_char = wrap_ord(aBuf[0])
- if (first_char == 0x8E) or (0xA1 <= first_char <= 0xFE):
- charLen = 2
- elif first_char == 0x8F:
- charLen = 3
- else:
- charLen = 1
-
- # return its order if it is hiragana
- if len(aBuf) > 1:
- second_char = wrap_ord(aBuf[1])
- if (first_char == 0xA4) and (0xA1 <= second_char <= 0xF3):
- return second_char - 0xA1, charLen
-
- return -1, charLen
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langbulgarianmodel.py b/vendor/requests/packages/chardet/langbulgarianmodel.py
deleted file mode 100644
index e5788fc6..00000000
--- a/vendor/requests/packages/chardet/langbulgarianmodel.py
+++ /dev/null
@@ -1,229 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# 255: Control characters that usually does not exist in any text
-# 254: Carriage/Return
-# 253: symbol (punctuation) that does not belong to word
-# 252: 0 - 9
-
-# Character Mapping Table:
-# this table is modified base on win1251BulgarianCharToOrderMap, so
-# only number <64 is sure valid
-
-Latin5_BulgarianCharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40
-110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50
-253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60
-116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70
-194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209, # 80
-210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225, # 90
- 81,226,227,228,229,230,105,231,232,233,234,235,236, 45,237,238, # a0
- 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # b0
- 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,239, 67,240, 60, 56, # c0
- 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # d0
- 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,241, 42, 16, # e0
- 62,242,243,244, 58,245, 98,246,247,248,249,250,251, 91,252,253, # f0
-)
-
-win1251BulgarianCharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40
-110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50
-253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60
-116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70
-206,207,208,209,210,211,212,213,120,214,215,216,217,218,219,220, # 80
-221, 78, 64, 83,121, 98,117,105,222,223,224,225,226,227,228,229, # 90
- 88,230,231,232,233,122, 89,106,234,235,236,237,238, 45,239,240, # a0
- 73, 80,118,114,241,242,243,244,245, 62, 58,246,247,248,249,250, # b0
- 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # c0
- 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,251, 67,252, 60, 56, # d0
- 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # e0
- 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,253, 42, 16, # f0
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 96.9392%
-# first 1024 sequences:3.0618%
-# rest sequences: 0.2992%
-# negative sequences: 0.0020%
-BulgarianLangModel = (
-0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,3,3,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,2,2,1,2,2,
-3,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,0,1,
-0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,3,3,0,3,1,0,
-0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,3,3,3,3,2,2,2,1,1,2,0,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,2,3,2,2,3,3,1,1,2,3,3,2,3,3,3,3,2,1,2,0,2,0,3,0,0,
-0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,2,3,3,3,3,3,2,3,3,1,3,0,3,0,2,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,1,3,3,2,3,2,2,2,0,0,2,0,2,0,2,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,3,3,1,2,2,3,2,1,1,2,0,2,0,0,0,0,
-1,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,2,3,3,1,2,3,2,2,2,3,3,3,3,3,2,2,3,1,2,0,2,1,2,0,0,
-0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,1,3,3,3,3,3,2,3,3,3,2,3,3,2,3,2,2,2,3,1,2,0,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,3,3,3,3,1,1,1,2,2,1,3,1,3,2,2,3,0,0,1,0,1,0,1,0,0,
-0,0,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,2,2,3,2,2,3,1,2,1,1,1,2,3,1,3,1,2,2,0,1,1,1,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,1,3,2,2,3,3,1,2,3,1,1,3,3,3,3,1,2,2,1,1,1,0,2,0,2,0,1,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,3,2,2,1,1,2,0,2,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,0,1,2,1,3,3,2,3,3,3,3,3,2,3,2,1,0,3,1,2,1,2,1,2,3,2,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,2,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,1,3,3,2,3,3,2,2,2,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,3,0,3,3,3,3,3,2,1,1,2,1,3,3,0,3,1,1,1,1,3,2,0,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,3,3,2,3,2,2,2,3,0,2,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,2,3,3,2,2,3,2,1,1,1,1,1,3,1,3,1,1,0,0,0,1,0,0,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,2,3,2,0,3,2,0,3,0,2,0,0,2,1,3,1,0,0,1,0,0,0,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,2,1,1,1,1,2,1,1,2,1,1,1,2,2,1,2,1,1,1,0,1,1,0,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,2,1,3,1,1,2,1,3,2,1,1,0,1,2,3,2,1,1,1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,3,2,2,1,0,1,0,0,1,0,0,0,2,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,2,3,2,3,3,1,3,2,1,1,1,2,1,1,2,1,3,0,1,0,0,0,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,1,2,2,3,3,2,3,2,2,2,3,1,2,2,1,1,2,1,1,2,2,0,1,1,0,1,0,2,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,2,1,3,1,0,2,2,1,3,2,1,0,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,3,1,2,0,2,3,1,2,3,2,0,1,3,1,2,1,1,1,0,0,1,0,0,2,2,2,3,
-2,2,2,2,1,2,1,1,2,2,1,1,2,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1,
-3,3,3,3,3,2,1,2,2,1,2,0,2,0,1,0,1,2,1,2,1,1,0,0,0,1,0,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,
-3,3,2,3,3,1,1,3,1,0,3,2,1,0,0,0,1,2,0,2,0,1,0,0,0,1,0,1,2,1,2,2,
-1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,0,1,2,1,1,1,0,0,0,0,0,1,1,0,0,
-3,1,0,1,0,2,3,2,2,2,3,2,2,2,2,2,1,0,2,1,2,1,1,1,0,1,2,1,2,2,2,1,
-1,1,2,2,2,2,1,2,1,1,0,1,2,1,2,2,2,1,1,1,0,1,1,1,1,2,0,1,0,0,0,0,
-2,3,2,3,3,0,0,2,1,0,2,1,0,0,0,0,2,3,0,2,0,0,0,0,0,1,0,0,2,0,1,2,
-2,1,2,1,2,2,1,1,1,2,1,1,1,0,1,2,2,1,1,1,1,1,0,1,1,1,0,0,1,2,0,0,
-3,3,2,2,3,0,2,3,1,1,2,0,0,0,1,0,0,2,0,2,0,0,0,1,0,1,0,1,2,0,2,2,
-1,1,1,1,2,1,0,1,2,2,2,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,
-2,3,2,3,3,0,0,3,0,1,1,0,1,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,2,0,1,2,
-2,2,1,1,1,1,1,2,2,2,1,0,2,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,
-3,3,3,3,2,2,2,2,2,0,2,1,1,1,1,2,1,2,1,1,0,2,0,1,0,1,0,0,2,0,1,2,
-1,1,1,1,1,1,1,2,2,1,1,0,2,0,1,0,2,0,0,1,1,1,0,0,2,0,0,0,1,1,0,0,
-2,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0,0,0,0,1,2,0,1,2,
-2,2,2,1,1,2,1,1,2,2,2,1,2,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0,
-2,3,3,3,3,0,2,2,0,2,1,0,0,0,1,1,1,2,0,2,0,0,0,3,0,0,0,0,2,0,2,2,
-1,1,1,2,1,2,1,1,2,2,2,1,2,0,1,1,1,0,1,1,1,1,0,2,1,0,0,0,1,1,0,0,
-2,3,3,3,3,0,2,1,0,0,2,0,0,0,0,0,1,2,0,2,0,0,0,0,0,0,0,0,2,0,1,2,
-1,1,1,2,1,1,1,1,2,2,2,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0,
-3,3,2,2,3,0,1,0,1,0,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,1,0,2,2,
-1,1,1,1,1,2,1,1,2,2,1,2,2,1,0,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,
-3,1,0,1,0,2,2,2,2,3,2,1,1,1,2,3,0,0,1,0,2,1,1,0,1,1,1,1,2,1,1,1,
-1,2,2,1,2,1,2,2,1,1,0,1,2,1,2,2,1,1,1,0,0,1,1,1,2,1,0,1,0,0,0,0,
-2,1,0,1,0,3,1,2,2,2,2,1,2,2,1,1,1,0,2,1,2,2,1,1,2,1,1,0,2,1,1,1,
-1,2,2,2,2,2,2,2,1,2,0,1,1,0,2,1,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0,
-2,1,1,1,1,2,2,2,2,1,2,2,2,1,2,2,1,1,2,1,2,3,2,2,1,1,1,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,3,2,0,1,2,0,1,2,1,1,0,1,0,1,2,1,2,0,0,0,1,1,0,0,0,1,0,0,2,
-1,1,0,0,1,1,0,1,1,1,1,0,2,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,
-2,0,0,0,0,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,
-1,2,2,2,2,1,1,2,1,2,1,1,1,0,2,1,2,1,1,1,0,2,1,1,1,1,0,1,0,0,0,0,
-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,
-1,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,3,2,0,0,0,0,1,0,0,0,0,0,0,1,1,0,2,0,0,0,0,0,0,0,0,1,0,1,2,
-1,1,1,1,1,1,0,0,2,2,2,2,2,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,
-2,3,1,2,1,0,1,1,0,2,2,2,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,2,
-1,1,1,1,2,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,
-2,2,2,2,2,0,0,2,0,0,2,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,0,2,2,
-1,1,1,1,1,0,0,1,2,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,2,2,0,0,2,0,1,1,0,0,0,1,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1,
-0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,3,2,0,0,1,0,0,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,0,0,0,0,0,0,2,
-1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,
-2,1,2,2,2,1,2,1,2,2,1,1,2,1,1,1,0,1,1,1,1,2,0,1,0,1,1,1,1,0,1,1,
-1,1,2,1,1,1,1,1,1,0,0,1,2,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,
-1,0,0,1,3,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,2,1,0,0,1,0,2,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,1,
-0,2,0,1,0,0,1,1,2,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,2,2,0,1,1,0,2,1,0,1,1,1,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,1,
-0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,2,2,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,
-0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,
-2,0,1,0,0,1,2,1,1,1,1,1,1,2,2,1,0,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0,
-1,1,2,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,1,2,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,
-0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
-0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,
-1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,2,0,0,2,0,1,0,0,1,0,0,1,
-1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,
-1,1,1,1,1,1,1,2,0,0,0,0,0,0,2,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-)
-
-Latin5BulgarianModel = {
- 'charToOrderMap': Latin5_BulgarianCharToOrderMap,
- 'precedenceMatrix': BulgarianLangModel,
- 'mTypicalPositiveRatio': 0.969392,
- 'keepEnglishLetter': False,
- 'charsetName': "ISO-8859-5"
-}
-
-Win1251BulgarianModel = {
- 'charToOrderMap': win1251BulgarianCharToOrderMap,
- 'precedenceMatrix': BulgarianLangModel,
- 'mTypicalPositiveRatio': 0.969392,
- 'keepEnglishLetter': False,
- 'charsetName': "windows-1251"
-}
-
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langcyrillicmodel.py b/vendor/requests/packages/chardet/langcyrillicmodel.py
deleted file mode 100644
index a86f54bd..00000000
--- a/vendor/requests/packages/chardet/langcyrillicmodel.py
+++ /dev/null
@@ -1,329 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# KOI8-R language model
-# Character Mapping Table:
-KOI8R_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
-191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, # 80
-207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, # 90
-223,224,225, 68,226,227,228,229,230,231,232,233,234,235,236,237, # a0
-238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253, # b0
- 27, 3, 21, 28, 13, 2, 39, 19, 26, 4, 23, 11, 8, 12, 5, 1, # c0
- 15, 16, 9, 7, 6, 14, 24, 10, 17, 18, 20, 25, 30, 29, 22, 54, # d0
- 59, 37, 44, 58, 41, 48, 53, 46, 55, 42, 60, 36, 49, 38, 31, 34, # e0
- 35, 43, 45, 32, 40, 52, 56, 33, 61, 62, 51, 57, 47, 63, 50, 70, # f0
-)
-
-win1251_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
-191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,
-207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,
-223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,
-239,240,241,242,243,244,245,246, 68,247,248,249,250,251,252,253,
- 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35,
- 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43,
- 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15,
- 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16,
-)
-
-latin5_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
-191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,
-207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,
-223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,
- 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35,
- 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43,
- 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15,
- 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16,
-239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255,
-)
-
-macCyrillic_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
- 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35,
- 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43,
-191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,
-207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,
-223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,
-239,240,241,242,243,244,245,246,247,248,249,250,251,252, 68, 16,
- 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15,
- 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27,255,
-)
-
-IBM855_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
-191,192,193,194, 68,195,196,197,198,199,200,201,202,203,204,205,
-206,207,208,209,210,211,212,213,214,215,216,217, 27, 59, 54, 70,
- 3, 37, 21, 44, 28, 58, 13, 41, 2, 48, 39, 53, 19, 46,218,219,
-220,221,222,223,224, 26, 55, 4, 42,225,226,227,228, 23, 60,229,
-230,231,232,233,234,235, 11, 36,236,237,238,239,240,241,242,243,
- 8, 49, 12, 38, 5, 31, 1, 34, 15,244,245,246,247, 35, 16,248,
- 43, 9, 45, 7, 32, 6, 40, 14, 52, 24, 56, 10, 33, 17, 61,249,
-250, 18, 62, 20, 51, 25, 57, 30, 47, 29, 63, 22, 50,251,252,255,
-)
-
-IBM866_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40
-155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50
-253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60
- 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70
- 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35,
- 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43,
- 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15,
-191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,
-207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,
-223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,
- 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16,
-239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255,
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 97.6601%
-# first 1024 sequences: 2.3389%
-# rest sequences: 0.1237%
-# negative sequences: 0.0009%
-RussianLangModel = (
-0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,1,3,3,3,2,3,2,3,3,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,2,2,2,0,0,2,
-3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,2,3,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,2,2,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,2,3,3,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1,
-0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1,
-0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,2,2,2,3,1,3,3,1,3,3,3,3,2,2,3,0,2,2,2,3,3,2,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,3,3,3,3,3,2,2,3,2,3,3,3,2,1,2,2,0,1,2,2,2,2,2,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,0,2,2,3,3,2,1,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,3,3,1,2,3,2,2,3,2,3,3,3,3,2,2,3,0,3,2,2,3,1,1,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,3,3,3,3,2,2,2,0,3,3,3,2,2,2,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,2,3,2,2,0,1,3,2,1,2,2,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,2,1,1,3,0,1,1,1,1,2,1,1,0,2,2,2,1,2,0,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,3,3,2,2,2,2,1,3,2,3,2,3,2,1,2,2,0,1,1,2,1,2,1,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,2,2,2,2,0,2,2,2,2,3,1,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-3,2,3,2,2,3,3,3,3,3,3,3,3,3,1,3,2,0,0,3,3,3,3,2,3,3,3,3,2,3,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,3,3,2,2,3,3,0,2,1,0,3,2,3,2,3,0,0,1,2,0,0,1,0,1,2,1,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,3,0,2,3,3,3,3,2,3,3,3,3,1,2,2,0,0,2,3,2,2,2,3,2,3,2,2,3,0,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,3,0,2,3,2,3,0,1,2,3,3,2,0,2,3,0,0,2,3,2,2,0,1,3,1,3,2,2,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,3,0,2,3,3,3,3,3,3,3,3,2,1,3,2,0,0,2,2,3,3,3,2,3,3,0,2,2,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,2,3,3,2,2,2,3,3,0,0,1,1,1,1,1,2,0,0,1,1,1,1,0,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,0,3,2,3,3,2,3,2,0,2,1,0,1,1,0,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,3,3,3,2,2,2,2,3,1,3,2,3,1,1,2,1,0,2,2,2,2,1,3,1,0,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-2,2,3,3,3,3,3,1,2,2,1,3,1,0,3,0,0,3,0,0,0,1,1,0,1,2,1,0,0,0,0,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,2,1,1,3,3,3,2,2,1,2,2,3,1,1,2,0,0,2,2,1,3,0,0,2,1,1,2,1,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,3,3,3,3,1,2,2,2,1,2,1,3,3,1,1,2,1,2,1,2,2,0,2,0,0,1,1,0,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,3,3,2,1,3,2,2,3,2,0,3,2,0,3,0,1,0,1,1,0,0,1,1,1,1,0,1,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,2,3,3,3,2,2,2,3,3,1,2,1,2,1,0,1,0,1,1,0,1,0,0,2,1,1,1,0,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
-3,1,1,2,1,2,3,3,2,2,1,2,2,3,0,2,1,0,0,2,2,3,2,1,2,2,2,2,2,3,1,0,
-0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,1,1,0,1,1,2,2,1,1,3,0,0,1,3,1,1,1,0,0,0,1,0,1,1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,1,3,3,3,2,0,0,0,2,1,0,1,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,1,0,0,2,3,2,2,2,1,2,2,2,1,2,1,0,0,1,1,1,0,2,0,1,1,1,0,0,1,1,
-1,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,3,0,0,0,0,1,0,0,0,0,3,0,1,2,1,0,0,0,0,0,0,0,1,1,0,0,1,1,
-1,0,1,0,1,2,0,0,1,1,2,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,
-2,2,3,2,2,2,3,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,1,0,1,1,1,0,2,1,
-1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,1,0,
-3,3,3,2,2,2,2,3,2,2,1,1,2,2,2,2,1,1,3,1,2,1,2,0,0,1,1,0,1,0,2,1,
-1,1,1,1,1,2,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,1,0,
-2,0,0,1,0,3,2,2,2,2,1,2,1,2,1,2,0,0,0,2,1,2,2,1,1,2,2,0,1,1,0,2,
-1,1,1,1,1,0,1,1,1,2,1,1,1,2,1,0,1,2,1,1,1,1,0,1,1,1,0,0,1,0,0,1,
-1,3,2,2,2,1,1,1,2,3,0,0,0,0,2,0,2,2,1,0,0,0,0,0,0,1,0,0,0,0,1,1,
-1,0,1,1,0,1,0,1,1,0,1,1,0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,
-2,3,2,3,2,1,2,2,2,2,1,0,0,0,2,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,2,1,
-1,1,2,1,0,2,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,
-3,0,0,1,0,2,2,2,3,2,2,2,2,2,2,2,0,0,0,2,1,2,1,1,1,2,2,0,0,0,1,2,
-1,1,1,1,1,0,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,
-2,3,2,3,3,2,0,1,1,1,0,0,1,0,2,0,1,1,3,1,0,0,0,0,0,0,0,1,0,0,2,1,
-1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,
-2,3,3,3,3,1,2,2,2,2,0,1,1,0,2,1,1,1,2,1,0,1,1,0,0,1,0,1,0,0,2,0,
-0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,3,3,2,0,0,1,1,2,2,1,0,0,2,0,1,1,3,0,0,1,0,0,0,0,0,1,0,1,2,1,
-1,1,2,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,
-1,3,2,3,2,1,0,0,2,2,2,0,1,0,2,0,1,1,1,0,1,0,0,0,3,0,1,1,0,0,2,1,
-1,1,1,0,1,1,0,0,0,0,1,1,0,1,0,0,2,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,
-3,1,2,1,1,2,2,2,2,2,2,1,2,2,1,1,0,0,0,2,2,2,0,0,0,1,2,1,0,1,0,1,
-2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,
-3,0,0,0,0,2,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1,
-1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,
-1,3,3,2,2,0,0,0,2,2,0,0,0,1,2,0,1,1,2,0,0,0,0,0,0,0,0,1,0,0,2,1,
-0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
-2,3,2,3,2,0,0,0,0,1,1,0,0,0,2,0,2,0,2,0,0,0,0,0,1,0,0,1,0,0,1,1,
-1,1,2,0,1,2,1,0,1,1,2,1,1,1,1,1,2,1,1,0,1,0,0,1,1,1,1,1,0,1,1,0,
-1,3,2,2,2,1,0,0,2,2,1,0,1,2,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,
-0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,1,0,2,3,1,2,2,2,2,2,2,1,1,0,0,0,1,0,1,0,2,1,1,1,0,0,0,0,1,
-1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
-2,0,2,0,0,1,0,3,2,1,2,1,2,2,0,1,0,0,0,2,1,0,0,2,1,1,1,1,0,2,0,2,
-2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,
-1,2,2,2,2,1,0,0,1,0,0,0,0,0,2,0,1,1,1,1,0,0,0,0,1,0,1,2,0,0,2,0,
-1,0,1,1,1,2,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,1,0,
-2,1,2,2,2,0,3,0,1,1,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,
-1,2,2,3,2,2,0,0,1,1,2,0,1,2,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,
-0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,
-2,2,1,1,2,1,2,2,2,2,2,1,2,2,0,1,0,0,0,1,2,2,2,1,2,1,1,1,1,1,2,1,
-1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,0,1,
-1,2,2,2,2,0,1,0,2,2,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
-0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,2,2,0,0,0,2,2,2,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
-0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,2,2,0,0,0,0,1,0,0,1,1,2,0,0,0,0,1,0,1,0,0,1,0,0,2,0,0,0,1,
-0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,
-1,2,2,2,1,1,2,0,2,1,1,1,1,0,2,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,
-0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-1,0,2,1,2,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,
-0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
-1,0,0,0,0,2,0,1,2,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,
-0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,
-2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-1,1,1,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,
-0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-)
-
-Koi8rModel = {
- 'charToOrderMap': KOI8R_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "KOI8-R"
-}
-
-Win1251CyrillicModel = {
- 'charToOrderMap': win1251_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "windows-1251"
-}
-
-Latin5CyrillicModel = {
- 'charToOrderMap': latin5_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "ISO-8859-5"
-}
-
-MacCyrillicModel = {
- 'charToOrderMap': macCyrillic_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "MacCyrillic"
-};
-
-Ibm866Model = {
- 'charToOrderMap': IBM866_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "IBM866"
-}
-
-Ibm855Model = {
- 'charToOrderMap': IBM855_CharToOrderMap,
- 'precedenceMatrix': RussianLangModel,
- 'mTypicalPositiveRatio': 0.976601,
- 'keepEnglishLetter': False,
- 'charsetName': "IBM855"
-}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langgreekmodel.py b/vendor/requests/packages/chardet/langgreekmodel.py
deleted file mode 100644
index ddb58376..00000000
--- a/vendor/requests/packages/chardet/langgreekmodel.py
+++ /dev/null
@@ -1,225 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# 255: Control characters that usually does not exist in any text
-# 254: Carriage/Return
-# 253: symbol (punctuation) that does not belong to word
-# 252: 0 - 9
-
-# Character Mapping Table:
-Latin7_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40
- 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50
-253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60
- 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90
-253,233, 90,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0
-253,253,253,253,247,248, 61, 36, 46, 71, 73,253, 54,253,108,123, # b0
-110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0
- 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0
-124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0
- 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0
-)
-
-win1253_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40
- 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50
-253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60
- 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90
-253,233, 61,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0
-253,253,253,253,247,253,253, 36, 46, 71, 73,253, 54,253,108,123, # b0
-110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0
- 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0
-124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0
- 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 98.2851%
-# first 1024 sequences:1.7001%
-# rest sequences: 0.0359%
-# negative sequences: 0.0148%
-GreekLangModel = (
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,2,2,3,3,3,3,3,3,3,3,1,3,3,3,0,2,2,3,3,0,3,0,3,2,0,3,3,3,0,
-3,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,0,3,3,0,3,2,3,3,0,3,2,3,3,3,0,0,3,0,3,0,3,3,2,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,
-0,2,3,2,2,3,3,3,3,3,3,3,3,0,3,3,3,3,0,2,3,3,0,3,3,3,3,2,3,3,3,0,
-2,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,2,1,3,3,3,3,2,3,3,2,3,3,2,0,
-0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,0,
-2,0,1,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,2,3,0,0,0,0,3,3,0,3,1,3,3,3,0,3,3,0,3,3,3,3,0,0,0,0,
-2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,0,3,0,3,3,3,3,3,0,3,2,2,2,3,0,2,3,3,3,3,3,2,3,3,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,3,2,2,2,3,3,3,3,0,3,1,3,3,3,3,2,3,3,3,3,3,3,3,2,2,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,2,0,3,0,0,0,3,3,2,3,3,3,3,3,0,0,3,2,3,0,2,3,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,3,3,3,3,0,0,3,3,0,2,3,0,3,0,3,3,3,0,0,3,0,3,0,2,2,3,3,0,0,
-0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,2,0,3,2,3,3,3,3,0,3,3,3,3,3,0,3,3,2,3,2,3,3,2,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,2,3,2,3,3,3,3,3,3,0,2,3,2,3,2,2,2,3,2,3,3,2,3,0,2,2,2,3,0,
-2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,0,0,0,3,3,3,2,3,3,0,0,3,0,3,0,0,0,3,2,0,3,0,3,0,0,2,0,2,0,
-0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,0,0,0,3,3,0,3,3,3,0,0,1,2,3,0,
-3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,2,0,0,3,2,2,3,3,0,3,3,3,3,3,2,1,3,0,3,2,3,3,2,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,3,0,2,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,3,0,3,2,3,0,0,3,3,3,0,
-3,0,0,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,0,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,2,0,3,2,3,0,0,3,2,3,0,
-2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,1,2,2,3,3,3,3,3,3,0,2,3,0,3,0,0,0,3,3,0,3,0,2,0,0,2,3,1,0,
-2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,3,3,3,3,0,3,0,3,3,2,3,0,3,3,3,3,3,3,0,3,3,3,0,2,3,0,0,3,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,3,3,3,0,0,3,0,0,0,3,3,0,3,0,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,0,0,0,3,3,3,3,3,3,0,0,3,0,2,0,0,0,3,3,0,3,0,3,0,0,2,0,2,0,
-0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,3,0,3,0,2,0,3,2,0,3,2,3,2,3,0,0,3,2,3,2,3,3,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,0,0,2,3,3,3,3,3,0,0,0,3,0,2,1,0,0,3,2,2,2,0,3,0,0,2,2,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,3,3,3,2,0,3,0,3,0,3,3,0,2,1,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,3,3,3,0,3,3,3,3,3,3,0,2,3,0,3,0,0,0,2,1,0,2,2,3,0,0,2,2,2,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,3,0,0,2,3,3,3,2,3,0,0,1,3,0,2,0,0,0,0,3,0,1,0,2,0,0,1,1,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,3,1,0,3,0,0,0,3,2,0,3,2,3,3,3,0,0,3,0,3,2,2,2,1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,3,3,3,0,0,3,0,0,0,0,2,0,2,3,3,2,2,2,2,3,0,2,0,2,2,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,3,3,3,2,0,0,0,0,0,0,2,3,0,2,0,2,3,2,0,0,3,0,3,0,3,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,3,2,3,3,2,2,3,0,2,0,3,0,0,0,2,0,0,0,0,1,2,0,2,0,2,0,
-0,2,0,2,0,2,2,0,0,1,0,2,2,2,0,2,2,2,0,2,2,2,0,0,2,0,0,1,0,0,0,0,
-0,2,0,3,3,2,0,0,0,0,0,0,1,3,0,2,0,2,2,2,0,0,2,0,3,0,0,2,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,0,2,3,2,0,2,2,0,2,0,2,2,0,2,0,2,2,2,0,0,0,0,0,0,2,3,0,0,0,2,
-0,1,2,0,0,0,0,2,2,0,0,0,2,1,0,2,2,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,
-0,0,2,1,0,2,3,2,2,3,2,3,2,0,0,3,3,3,0,0,3,2,0,0,0,1,1,0,2,0,2,2,
-0,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2,2,2,0,0,2,0,0,0,2,0,1,0,0,0,0,
-0,3,0,3,3,2,2,0,3,0,0,0,2,2,0,2,2,2,1,2,0,0,1,2,2,0,0,3,0,0,0,2,
-0,1,2,0,0,0,1,2,0,0,0,0,0,0,0,2,2,0,1,0,0,2,0,0,0,2,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,3,3,2,2,0,0,0,2,0,2,3,3,0,2,0,0,0,0,0,0,2,2,2,0,2,2,0,2,0,2,
-0,2,2,0,0,2,2,2,2,1,0,0,2,2,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,
-0,2,0,3,2,3,0,0,0,3,0,0,2,2,0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,0,2,
-0,0,2,2,0,0,2,2,2,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,2,0,0,3,2,0,2,2,2,2,2,0,0,0,2,0,0,0,0,2,0,1,0,0,2,0,1,0,0,0,
-0,2,2,2,0,2,2,0,1,2,0,2,2,2,0,2,2,2,2,1,2,2,0,0,2,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-0,2,0,2,0,2,2,0,0,0,0,1,2,1,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,3,2,3,0,0,2,0,0,0,2,2,0,2,0,0,0,1,0,0,2,0,2,0,2,2,0,0,0,0,
-0,0,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,
-0,2,2,3,2,2,0,0,0,0,0,0,1,3,0,2,0,2,2,0,0,0,1,0,2,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,0,2,0,3,2,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-0,0,2,0,0,0,0,1,1,0,0,2,1,2,0,2,2,0,1,0,0,1,0,0,0,2,0,0,0,0,0,0,
-0,3,0,2,2,2,0,0,2,0,0,0,2,0,0,0,2,3,0,2,0,0,0,0,0,0,2,2,0,0,0,2,
-0,1,2,0,0,0,1,2,2,1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,1,2,0,2,2,0,2,0,0,2,0,0,0,0,1,2,1,0,2,1,0,0,0,0,0,0,0,0,0,0,
-0,0,2,0,0,0,3,1,2,2,0,2,0,0,0,0,2,0,0,0,2,0,0,3,0,0,0,0,2,2,2,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,1,0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,2,
-0,2,2,0,0,2,2,2,2,2,0,1,2,0,0,0,2,2,0,1,0,2,0,0,2,2,0,0,0,0,0,0,
-0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,2,
-0,1,2,0,0,0,0,2,2,1,0,1,0,1,0,2,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0,
-0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,1,0,0,0,0,0,0,2,
-0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,
-0,2,2,2,2,0,0,0,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,1,
-0,0,2,0,0,0,0,1,2,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,
-0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,2,2,2,0,0,0,2,0,0,0,0,0,0,0,0,2,
-0,0,1,0,0,0,0,2,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
-0,3,0,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,2,
-0,0,2,0,0,0,0,2,2,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,2,0,2,2,1,0,0,0,0,0,0,2,0,0,2,0,2,2,2,0,0,0,0,0,0,2,0,0,0,0,2,
-0,0,2,0,0,2,0,2,2,0,0,0,0,2,0,2,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,
-0,0,3,0,0,0,2,2,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,
-0,2,2,2,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,
-0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-0,2,0,0,0,2,0,0,0,0,0,1,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,2,0,0,0,
-0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,2,0,2,0,0,0,
-0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-)
-
-Latin7GreekModel = {
- 'charToOrderMap': Latin7_CharToOrderMap,
- 'precedenceMatrix': GreekLangModel,
- 'mTypicalPositiveRatio': 0.982851,
- 'keepEnglishLetter': False,
- 'charsetName': "ISO-8859-7"
-}
-
-Win1253GreekModel = {
- 'charToOrderMap': win1253_CharToOrderMap,
- 'precedenceMatrix': GreekLangModel,
- 'mTypicalPositiveRatio': 0.982851,
- 'keepEnglishLetter': False,
- 'charsetName': "windows-1253"
-}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langhebrewmodel.py b/vendor/requests/packages/chardet/langhebrewmodel.py
deleted file mode 100644
index 75f2bc7f..00000000
--- a/vendor/requests/packages/chardet/langhebrewmodel.py
+++ /dev/null
@@ -1,201 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Simon Montagu
-# Portions created by the Initial Developer are Copyright (C) 2005
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-# Shoshannah Forbes - original C code (?)
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# 255: Control characters that usually does not exist in any text
-# 254: Carriage/Return
-# 253: symbol (punctuation) that does not belong to word
-# 252: 0 - 9
-
-# Windows-1255 language model
-# Character Mapping Table:
-win1255_CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 69, 91, 79, 80, 92, 89, 97, 90, 68,111,112, 82, 73, 95, 85, # 40
- 78,121, 86, 71, 67,102,107, 84,114,103,115,253,253,253,253,253, # 50
-253, 50, 74, 60, 61, 42, 76, 70, 64, 53,105, 93, 56, 65, 54, 49, # 60
- 66,110, 51, 43, 44, 63, 81, 77, 98, 75,108,253,253,253,253,253, # 70
-124,202,203,204,205, 40, 58,206,207,208,209,210,211,212,213,214,
-215, 83, 52, 47, 46, 72, 32, 94,216,113,217,109,218,219,220,221,
- 34,116,222,118,100,223,224,117,119,104,125,225,226, 87, 99,227,
-106,122,123,228, 55,229,230,101,231,232,120,233, 48, 39, 57,234,
- 30, 59, 41, 88, 33, 37, 36, 31, 29, 35,235, 62, 28,236,126,237,
-238, 38, 45,239,240,241,242,243,127,244,245,246,247,248,249,250,
- 9, 8, 20, 16, 3, 2, 24, 14, 22, 1, 25, 15, 4, 11, 6, 23,
- 12, 19, 13, 26, 18, 27, 21, 17, 7, 10, 5,251,252,128, 96,253,
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 98.4004%
-# first 1024 sequences: 1.5981%
-# rest sequences: 0.087%
-# negative sequences: 0.0015%
-HebrewLangModel = (
-0,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,0,1,0,0,
-3,0,3,1,0,0,1,3,2,0,1,1,2,0,2,2,2,1,1,1,1,2,1,1,1,2,0,0,2,2,0,1,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,
-1,2,1,2,1,2,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,
-1,2,1,3,1,1,0,0,2,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,2,2,1,3,
-1,2,1,1,2,2,0,0,2,2,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,3,2,
-1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,2,3,2,2,2,1,2,2,2,2,
-1,2,1,1,2,2,0,1,2,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,2,2,2,2,2,
-0,2,0,2,2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,2,2,2,
-0,2,1,2,2,2,0,0,2,1,0,0,0,0,1,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,2,2,2,
-1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,
-3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,2,0,2,
-0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,2,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,2,3,2,1,2,1,1,1,
-0,1,1,1,1,1,3,0,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,0,0,0,0,
-0,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,
-0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,2,3,3,2,3,3,3,3,2,3,2,1,2,0,2,1,2,
-0,2,0,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,
-3,3,3,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,2,3,2,3,2,2,3,1,2,2,0,2,2,2,
-0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,2,2,3,3,3,3,1,3,2,2,2,
-0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,2,2,2,1,2,2,0,2,2,2,2,
-0,2,0,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,3,2,3,3,2,3,3,2,2,1,2,2,2,2,2,2,
-0,2,1,2,1,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,2,3,2,3,3,2,3,3,3,3,2,3,2,3,3,3,3,3,2,2,2,2,2,2,2,1,
-0,2,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,2,1,2,3,3,3,3,3,3,3,2,3,2,3,2,1,2,3,0,2,1,2,2,
-0,2,1,1,2,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,
-3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,3,1,2,2,2,1,2,3,3,1,2,1,2,2,2,2,
-0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,0,2,3,3,3,1,3,3,3,1,2,2,2,2,1,1,2,2,2,2,2,2,
-0,2,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,2,3,3,3,2,2,3,3,3,2,1,2,3,2,3,2,2,2,2,1,2,1,1,1,2,2,
-0,2,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,
-1,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,2,3,3,2,3,1,2,2,2,2,3,2,3,1,1,2,2,1,2,2,1,1,0,2,2,2,2,
-0,1,0,1,2,2,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,
-3,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,0,
-0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-3,2,2,1,2,2,2,2,2,2,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,2,1,1,0,3,3,3,
-0,3,0,2,2,2,2,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,1,1,1,2,0,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,0,2,2,0,0,0,0,0,0,
-0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,0,2,1,0,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
-0,3,1,1,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,2,1,2,2,1,0,1,1,1,1,0,
-0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,2,1,1,1,1,2,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,
-0,0,2,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,
-2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,1,1,1,0,0,0,0,
-0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2,1,1,1,2,1,2,1,2,0,1,0,1,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,3,1,2,2,2,1,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,2,1,2,1,1,0,1,0,1,
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,1,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
-0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,2,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,
-0,1,1,1,2,1,2,2,2,0,2,0,2,0,1,1,2,1,1,1,1,2,1,0,1,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,1,0,0,0,0,0,1,0,1,2,2,0,1,0,0,1,1,2,2,1,2,0,2,0,0,0,1,2,0,1,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,2,0,2,1,2,0,2,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,1,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,1,2,2,0,0,1,0,0,0,1,0,0,1,
-1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,2,1,
-0,2,0,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1,
-2,0,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,1,2,1,1,2,0,1,0,0,0,1,1,0,1,
-1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,0,0,2,1,1,2,0,2,0,0,0,1,1,0,1,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,2,2,1,2,1,1,0,1,0,0,0,1,1,0,1,
-2,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,2,1,1,1,0,2,1,1,0,0,0,2,1,0,1,
-1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,0,2,1,1,0,1,0,0,0,1,1,0,1,
-2,2,1,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,0,1,2,1,0,2,0,0,0,1,1,0,1,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,
-0,1,0,0,2,0,2,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1,
-1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,2,1,1,1,1,1,0,1,0,0,0,0,1,0,1,
-0,1,1,1,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,0,0,
-)
-
-Win1255HebrewModel = {
- 'charToOrderMap': win1255_CharToOrderMap,
- 'precedenceMatrix': HebrewLangModel,
- 'mTypicalPositiveRatio': 0.984004,
- 'keepEnglishLetter': False,
- 'charsetName': "windows-1255"
-}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langhungarianmodel.py b/vendor/requests/packages/chardet/langhungarianmodel.py
deleted file mode 100644
index 49d2f0fe..00000000
--- a/vendor/requests/packages/chardet/langhungarianmodel.py
+++ /dev/null
@@ -1,225 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# 255: Control characters that usually does not exist in any text
-# 254: Carriage/Return
-# 253: symbol (punctuation) that does not belong to word
-# 252: 0 - 9
-
-# Character Mapping Table:
-Latin2_HungarianCharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47,
- 46, 71, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253,
-253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8,
- 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253,
-159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,
-175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,
-191,192,193,194,195,196,197, 75,198,199,200,201,202,203,204,205,
- 79,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,
-221, 51, 81,222, 78,223,224,225,226, 44,227,228,229, 61,230,231,
-232,233,234, 58,235, 66, 59,236,237,238, 60, 69, 63,239,240,241,
- 82, 14, 74,242, 70, 80,243, 72,244, 15, 83, 77, 84, 30, 76, 85,
-245,246,247, 25, 73, 42, 24,248,249,250, 31, 56, 29,251,252,253,
-)
-
-win1250HungarianCharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47,
- 46, 72, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253,
-253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8,
- 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253,
-161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,
-177,178,179,180, 78,181, 69,182,183,184,185,186,187,188,189,190,
-191,192,193,194,195,196,197, 76,198,199,200,201,202,203,204,205,
- 81,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,
-221, 51, 83,222, 80,223,224,225,226, 44,227,228,229, 61,230,231,
-232,233,234, 58,235, 66, 59,236,237,238, 60, 70, 63,239,240,241,
- 84, 14, 75,242, 71, 82,243, 73,244, 15, 85, 79, 86, 30, 77, 87,
-245,246,247, 25, 74, 42, 24,248,249,250, 31, 56, 29,251,252,253,
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 94.7368%
-# first 1024 sequences:5.2623%
-# rest sequences: 0.8894%
-# negative sequences: 0.0009%
-HungarianLangModel = (
-0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,3,3,1,1,2,2,2,2,2,1,2,
-3,2,2,3,3,3,3,3,2,3,3,3,3,3,3,1,2,3,3,3,3,2,3,3,1,1,3,3,0,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
-3,2,1,3,3,3,3,3,2,3,3,3,3,3,1,1,2,3,3,3,3,3,3,3,1,1,3,2,0,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,1,1,2,3,3,3,1,3,3,3,3,3,1,3,3,2,2,0,3,2,3,
-0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,3,3,2,3,3,2,2,3,2,3,2,0,3,2,2,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,
-3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,1,2,3,2,2,3,1,2,3,3,2,2,0,3,3,3,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,0,2,3,2,
-0,0,0,1,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,2,1,3,2,2,3,2,1,3,2,2,1,0,3,3,1,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,2,2,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,3,2,2,3,1,1,3,2,0,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,1,3,3,3,3,3,2,2,1,3,3,3,0,1,1,2,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,0,3,2,3,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,
-3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,1,3,2,2,2,3,1,1,3,3,1,1,0,3,3,2,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,2,3,3,3,3,3,1,2,3,2,2,0,2,2,2,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,2,2,2,3,1,3,3,2,2,1,3,3,3,1,1,3,1,2,3,2,3,2,2,2,1,0,2,2,2,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,
-3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,2,2,3,2,1,0,3,2,0,1,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,1,0,3,3,3,3,0,2,3,0,0,2,1,0,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,2,2,3,3,2,2,2,2,3,3,0,1,2,3,2,3,2,2,3,2,1,2,0,2,2,2,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,
-3,3,3,3,3,3,1,2,3,3,3,2,1,2,3,3,2,2,2,3,2,3,3,1,3,3,1,1,0,2,3,2,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,1,2,2,2,2,3,3,3,1,1,1,3,3,1,1,3,1,1,3,2,1,2,3,1,1,0,2,2,2,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,2,1,2,1,1,3,3,1,1,1,1,3,3,1,1,2,2,1,2,1,1,2,2,1,1,0,2,2,1,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,1,1,2,1,1,3,3,1,0,1,1,3,3,2,0,1,1,2,3,1,0,2,2,1,0,0,1,3,2,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,2,1,3,3,3,3,3,1,2,3,2,3,3,2,1,1,3,2,3,2,1,2,2,0,1,2,1,0,0,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,3,3,2,2,2,2,3,1,2,2,1,1,3,3,0,3,2,1,2,3,2,1,3,3,1,1,0,2,1,3,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,3,3,2,2,2,3,2,3,3,3,2,1,1,3,3,1,1,1,2,2,3,2,3,2,2,2,1,0,2,2,1,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-1,0,0,3,3,3,3,3,0,0,3,3,2,3,0,0,0,2,3,3,1,0,1,2,0,0,1,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,2,3,3,3,3,3,1,2,3,3,2,2,1,1,0,3,3,2,2,1,2,2,1,0,2,2,0,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,2,2,1,3,1,2,3,3,2,2,1,1,2,2,1,1,1,1,3,2,1,1,1,1,2,1,0,1,2,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
-2,3,3,1,1,1,1,1,3,3,3,0,1,1,3,3,1,1,1,1,1,2,2,0,3,1,1,2,0,2,1,1,
-0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
-3,1,0,1,2,1,2,2,0,1,2,3,1,2,0,0,0,2,1,1,1,1,1,2,0,0,1,1,0,0,0,0,
-1,2,1,2,2,2,1,2,1,2,0,2,0,2,2,1,1,2,1,1,2,1,1,1,0,1,0,0,0,1,1,0,
-1,1,1,2,3,2,3,3,0,1,2,2,3,1,0,1,0,2,1,2,2,0,1,1,0,0,1,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,3,3,2,2,1,0,0,3,2,3,2,0,0,0,1,1,3,0,0,1,1,0,0,2,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,1,2,2,3,3,1,0,1,3,2,3,1,1,1,0,1,1,1,1,1,3,1,0,0,2,2,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,1,1,2,2,2,1,0,1,2,3,3,2,0,0,0,2,1,1,1,2,1,1,1,0,1,1,1,0,0,0,
-1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,0,0,1,1,
-3,2,2,1,0,0,1,1,2,2,0,3,0,1,2,1,1,0,0,1,1,1,0,1,1,1,1,0,2,1,1,1,
-2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,0,1,
-2,3,3,0,1,0,0,0,3,3,1,0,0,1,2,2,1,0,0,0,0,2,0,0,1,1,1,0,2,1,1,1,
-2,1,1,1,1,1,1,2,1,1,0,1,1,0,1,1,1,0,1,2,1,1,0,1,1,1,1,1,1,1,0,1,
-2,3,3,0,1,0,0,0,2,2,0,0,0,0,1,2,2,0,0,0,0,1,0,0,1,1,0,0,2,0,1,0,
-2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1,
-3,2,2,0,1,0,1,0,2,3,2,0,0,1,2,2,1,0,0,1,1,1,0,0,2,1,0,1,2,2,1,1,
-2,1,1,1,1,1,1,2,1,1,1,1,1,1,0,2,1,0,1,1,0,1,1,1,0,1,1,2,1,1,0,1,
-2,2,2,0,0,1,0,0,2,2,1,1,0,0,2,1,1,0,0,0,1,2,0,0,2,1,0,0,2,1,1,1,
-2,1,1,1,1,2,1,2,1,1,1,2,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1,
-1,2,3,0,0,0,1,0,3,2,1,0,0,1,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,2,1,
-1,1,0,0,0,1,0,1,1,1,1,1,2,0,0,1,0,0,0,2,0,0,1,1,1,1,1,1,1,1,0,1,
-3,0,0,2,1,2,2,1,0,0,2,1,2,2,0,0,0,2,1,1,1,0,1,1,0,0,1,1,2,0,0,0,
-1,2,1,2,2,1,1,2,1,2,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,0,0,1,
-1,3,2,0,0,0,1,0,2,2,2,0,0,0,2,2,1,0,0,0,0,3,1,1,1,1,0,0,2,1,1,1,
-2,1,0,1,1,1,0,1,1,1,1,1,1,1,0,2,1,0,0,1,0,1,1,0,1,1,1,1,1,1,0,1,
-2,3,2,0,0,0,1,0,2,2,0,0,0,0,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,1,0,
-2,1,1,1,1,2,1,2,1,2,0,1,1,1,0,2,1,1,1,2,1,1,1,1,0,1,1,1,1,1,0,1,
-3,1,1,2,2,2,3,2,1,1,2,2,1,1,0,1,0,2,2,1,1,1,1,1,0,0,1,1,0,1,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,0,0,0,0,0,2,2,0,0,0,0,2,2,1,0,0,0,1,1,0,0,1,2,0,0,2,1,1,1,
-2,2,1,1,1,2,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,1,1,0,1,2,1,1,1,0,1,
-1,0,0,1,2,3,2,1,0,0,2,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,0,
-1,2,1,2,1,2,1,1,1,2,0,2,1,1,1,0,1,2,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
-2,3,2,0,0,0,0,0,1,1,2,1,0,0,1,1,1,0,0,0,0,2,0,0,1,1,0,0,2,1,1,1,
-2,1,1,1,1,1,1,2,1,0,1,1,1,1,0,2,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,
-1,2,2,0,1,1,1,0,2,2,2,0,0,0,3,2,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0,
-1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,0,0,1,1,1,0,1,0,1,
-2,1,0,2,1,1,2,2,1,1,2,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,0,0,
-1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,0,
-1,2,3,0,0,0,1,0,2,2,0,0,0,0,2,2,0,0,0,0,0,1,0,0,1,0,0,0,2,0,1,0,
-2,1,1,1,1,1,0,2,0,0,0,1,2,1,1,1,1,0,1,2,0,1,0,1,0,1,1,1,0,1,0,1,
-2,2,2,0,0,0,1,0,2,1,2,0,0,0,1,1,2,0,0,0,0,1,0,0,1,1,0,0,2,1,0,1,
-2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1,
-1,2,2,0,0,0,1,0,2,2,2,0,0,0,1,1,0,0,0,0,0,1,1,0,2,0,0,1,1,1,0,1,
-1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1,
-1,0,0,1,0,1,2,1,0,0,1,1,1,2,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0,
-0,2,1,2,1,1,1,1,1,2,0,2,0,1,1,0,1,2,1,0,1,1,1,0,0,0,0,0,0,1,0,0,
-2,1,1,0,1,2,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,2,1,0,1,
-2,2,1,1,1,1,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,0,1,0,1,1,1,1,1,0,1,
-1,2,2,0,0,0,0,0,1,1,0,0,0,0,2,1,0,0,0,0,0,2,0,0,2,2,0,0,2,0,0,1,
-2,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,
-1,1,2,0,0,3,1,0,2,1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,
-1,2,1,0,1,1,1,2,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0,
-2,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,2,0,0,0,
-2,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,1,0,1,
-2,1,1,1,2,1,1,1,0,1,1,2,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,0,1,1,1,1,1,0,0,1,1,2,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,0,
-1,2,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,
-2,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,2,0,0,1,0,0,1,0,1,0,0,0,
-0,1,1,1,1,1,1,1,1,2,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,
-1,0,0,1,1,1,1,1,0,0,2,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,
-0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
-1,0,0,1,1,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,
-0,0,0,1,0,0,0,0,0,0,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,
-2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,
-)
-
-Latin2HungarianModel = {
- 'charToOrderMap': Latin2_HungarianCharToOrderMap,
- 'precedenceMatrix': HungarianLangModel,
- 'mTypicalPositiveRatio': 0.947368,
- 'keepEnglishLetter': True,
- 'charsetName': "ISO-8859-2"
-}
-
-Win1250HungarianModel = {
- 'charToOrderMap': win1250HungarianCharToOrderMap,
- 'precedenceMatrix': HungarianLangModel,
- 'mTypicalPositiveRatio': 0.947368,
- 'keepEnglishLetter': True,
- 'charsetName': "windows-1250"
-}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/langthaimodel.py b/vendor/requests/packages/chardet/langthaimodel.py
deleted file mode 100644
index 0508b1b1..00000000
--- a/vendor/requests/packages/chardet/langthaimodel.py
+++ /dev/null
@@ -1,200 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Communicator client code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-# 255: Control characters that usually does not exist in any text
-# 254: Carriage/Return
-# 253: symbol (punctuation) that does not belong to word
-# 252: 0 - 9
-
-# The following result for thai was collected from a limited sample (1M).
-
-# Character Mapping Table:
-TIS620CharToOrderMap = (
-255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10
-253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20
-252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30
-253,182,106,107,100,183,184,185,101, 94,186,187,108,109,110,111, # 40
-188,189,190, 89, 95,112,113,191,192,193,194,253,253,253,253,253, # 50
-253, 64, 72, 73,114, 74,115,116,102, 81,201,117, 90,103, 78, 82, # 60
- 96,202, 91, 79, 84,104,105, 97, 98, 92,203,253,253,253,253,253, # 70
-209,210,211,212,213, 88,214,215,216,217,218,219,220,118,221,222,
-223,224, 99, 85, 83,225,226,227,228,229,230,231,232,233,234,235,
-236, 5, 30,237, 24,238, 75, 8, 26, 52, 34, 51,119, 47, 58, 57,
- 49, 53, 55, 43, 20, 19, 44, 14, 48, 3, 17, 25, 39, 62, 31, 54,
- 45, 9, 16, 2, 61, 15,239, 12, 42, 46, 18, 21, 76, 4, 66, 63,
- 22, 10, 1, 36, 23, 13, 40, 27, 32, 35, 86,240,241,242,243,244,
- 11, 28, 41, 29, 33,245, 50, 37, 6, 7, 67, 77, 38, 93,246,247,
- 68, 56, 59, 65, 69, 60, 70, 80, 71, 87,248,249,250,251,252,253,
-)
-
-# Model Table:
-# total sequences: 100%
-# first 512 sequences: 92.6386%
-# first 1024 sequences:7.3177%
-# rest sequences: 1.0230%
-# negative sequences: 0.0436%
-ThaiLangModel = (
-0,1,3,3,3,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,0,0,3,3,3,0,3,3,3,3,
-0,3,3,0,0,0,1,3,0,3,3,2,3,3,0,1,2,3,3,3,3,0,2,0,2,0,0,3,2,1,2,2,
-3,0,3,3,2,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,0,3,2,3,0,2,2,2,3,
-0,2,3,0,0,0,0,1,0,1,2,3,1,1,3,2,2,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,
-3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,3,3,2,3,2,3,3,2,2,2,
-3,1,2,3,0,3,3,2,2,1,2,3,3,1,2,0,1,3,0,1,0,0,1,0,0,0,0,0,0,0,1,1,
-3,3,2,2,3,3,3,3,1,2,3,3,3,3,3,2,2,2,2,3,3,2,2,3,3,2,2,3,2,3,2,2,
-3,3,1,2,3,1,2,2,3,3,1,0,2,1,0,0,3,1,2,1,0,0,1,0,0,0,0,0,0,1,0,1,
-3,3,3,3,3,3,2,2,3,3,3,3,2,3,2,2,3,3,2,2,3,2,2,2,2,1,1,3,1,2,1,1,
-3,2,1,0,2,1,0,1,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,
-3,3,3,2,3,2,3,3,2,2,3,2,3,3,2,3,1,1,2,3,2,2,2,3,2,2,2,2,2,1,2,1,
-2,2,1,1,3,3,2,1,0,1,2,2,0,1,3,0,0,0,1,1,0,0,0,0,0,2,3,0,0,2,1,1,
-3,3,2,3,3,2,0,0,3,3,0,3,3,0,2,2,3,1,2,2,1,1,1,0,2,2,2,0,2,2,1,1,
-0,2,1,0,2,0,0,2,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,
-3,3,2,3,3,2,0,0,3,3,0,2,3,0,2,1,2,2,2,2,1,2,0,0,2,2,2,0,2,2,1,1,
-0,2,1,0,2,0,0,2,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,
-3,3,2,3,2,3,2,0,2,2,1,3,2,1,3,2,1,2,3,2,2,3,0,2,3,2,2,1,2,2,2,2,
-1,2,2,0,0,0,0,2,0,1,2,0,1,1,1,0,1,0,3,1,1,0,0,0,0,0,0,0,0,0,1,0,
-3,3,2,3,3,2,3,2,2,2,3,2,2,3,2,2,1,2,3,2,2,3,1,3,2,2,2,3,2,2,2,3,
-3,2,1,3,0,1,1,1,0,2,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,2,0,0,
-1,0,0,3,0,3,3,3,3,3,0,0,3,0,2,2,3,3,3,3,3,0,0,0,1,1,3,0,0,0,0,2,
-0,0,1,0,0,0,0,0,0,0,2,3,0,0,0,3,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,
-2,0,3,3,3,3,0,0,2,3,0,0,3,0,3,3,2,3,3,3,3,3,0,0,3,3,3,0,0,0,3,3,
-0,0,3,0,0,0,0,2,0,0,2,1,1,3,0,0,1,0,0,2,3,0,1,0,0,0,0,0,0,0,1,0,
-3,3,3,3,2,3,3,3,3,3,3,3,1,2,1,3,3,2,2,1,2,2,2,3,1,1,2,0,2,1,2,1,
-2,2,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,
-3,0,2,1,2,3,3,3,0,2,0,2,2,0,2,1,3,2,2,1,2,1,0,0,2,2,1,0,2,1,2,2,
-0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,2,1,3,3,1,1,3,0,2,3,1,1,3,2,1,1,2,0,2,2,3,2,1,1,1,1,1,2,
-3,0,0,1,3,1,2,1,2,0,3,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-3,3,1,1,3,2,3,3,3,1,3,2,1,3,2,1,3,2,2,2,2,1,3,3,1,2,1,3,1,2,3,0,
-2,1,1,3,2,2,2,1,2,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
-3,3,2,3,2,3,3,2,3,2,3,2,3,3,2,1,0,3,2,2,2,1,2,2,2,1,2,2,1,2,1,1,
-2,2,2,3,0,1,3,1,1,1,1,0,1,1,0,2,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,2,3,2,2,1,1,3,2,3,2,3,2,0,3,2,2,1,2,0,2,2,2,1,2,2,2,2,1,
-3,2,1,2,2,1,0,2,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,
-3,3,3,3,3,2,3,1,2,3,3,2,2,3,0,1,1,2,0,3,3,2,2,3,0,1,1,3,0,0,0,0,
-3,1,0,3,3,0,2,0,2,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,2,3,2,3,3,0,1,3,1,1,2,1,2,1,1,3,1,1,0,2,3,1,1,1,1,1,1,1,1,
-3,1,1,2,2,2,2,1,1,1,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,2,2,1,1,2,1,3,3,2,3,2,2,3,2,2,3,1,2,2,1,2,0,3,2,1,2,2,2,2,2,1,
-3,2,1,2,2,2,1,1,1,1,0,0,1,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,3,3,3,3,1,3,3,0,2,1,0,3,2,0,0,3,1,0,1,1,0,1,0,0,0,0,0,1,
-1,0,0,1,0,3,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,2,2,2,3,0,0,1,3,0,3,2,0,3,2,2,3,3,3,3,3,1,0,2,2,2,0,2,2,1,2,
-0,2,3,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
-3,0,2,3,1,3,3,2,3,3,0,3,3,0,3,2,2,3,2,3,3,3,0,0,2,2,3,0,1,1,1,3,
-0,0,3,0,0,0,2,2,0,1,3,0,1,2,2,2,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,
-3,2,3,3,2,0,3,3,2,2,3,1,3,2,1,3,2,0,1,2,2,0,2,3,2,1,0,3,0,0,0,0,
-3,0,0,2,3,1,3,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,1,3,2,2,2,1,2,0,1,3,1,1,3,1,3,0,0,2,1,1,1,1,2,1,1,1,0,2,1,0,1,
-1,2,0,0,0,3,1,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,3,1,0,0,0,1,0,
-3,3,3,3,2,2,2,2,2,1,3,1,1,1,2,0,1,1,2,1,2,1,3,2,0,0,3,1,1,1,1,1,
-3,1,0,2,3,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,2,3,0,3,3,0,2,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,2,3,1,3,0,0,1,2,0,0,2,0,3,3,2,3,3,3,2,3,0,0,2,2,2,0,0,0,2,2,
-0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,1,2,3,1,3,3,0,0,1,0,3,0,0,0,0,0,
-0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,1,2,3,1,2,3,1,0,3,0,2,2,1,0,2,1,1,2,0,1,0,0,1,1,1,1,0,1,0,0,
-1,0,0,0,0,1,1,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,3,3,2,1,0,1,1,1,3,1,2,2,2,2,2,2,1,1,1,1,0,3,1,0,1,3,1,1,1,1,
-1,1,0,2,0,1,3,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,
-3,0,2,2,1,3,3,2,3,3,0,1,1,0,2,2,1,2,1,3,3,1,0,0,3,2,0,0,0,0,2,1,
-0,1,0,0,0,0,1,2,0,1,1,3,1,1,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
-0,0,3,0,0,1,0,0,0,3,0,0,3,0,3,1,0,1,1,1,3,2,0,0,0,3,0,0,0,0,2,0,
-0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,
-3,3,1,3,2,1,3,3,1,2,2,0,1,2,1,0,1,2,0,0,0,0,0,3,0,0,0,3,0,0,0,0,
-3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,1,2,0,3,3,3,2,2,0,1,1,0,1,3,0,0,0,2,2,0,0,0,0,3,1,0,1,0,0,0,
-0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,2,3,1,2,0,0,2,1,0,3,1,0,1,2,0,1,1,1,1,3,0,0,3,1,1,0,2,2,1,1,
-0,2,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,0,3,1,2,0,0,2,2,0,1,2,0,1,0,1,3,1,2,1,0,0,0,2,0,3,0,0,0,1,0,
-0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,1,1,2,2,0,0,0,2,0,2,1,0,1,1,0,1,1,1,2,1,0,0,1,1,1,0,2,1,1,1,
-0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,
-0,0,0,2,0,1,3,1,1,1,1,0,0,0,0,3,2,0,1,0,0,0,1,2,0,0,0,1,0,0,0,0,
-0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,0,2,3,2,2,0,0,0,1,0,0,0,0,2,3,2,1,2,2,3,0,0,0,2,3,1,0,0,0,1,1,
-0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,
-3,3,2,2,0,1,0,0,0,0,2,0,2,0,1,0,0,0,1,1,0,0,0,2,1,0,1,0,1,1,0,0,
-0,1,0,2,0,0,1,0,3,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,1,0,0,1,0,0,0,0,0,1,1,2,0,0,0,0,1,0,0,1,3,1,0,0,0,0,1,1,0,0,
-0,1,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,
-3,3,1,1,1,1,2,3,0,0,2,1,1,1,1,1,0,2,1,1,0,0,0,2,1,0,1,2,1,1,0,1,
-2,1,0,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,3,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,
-0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,3,2,0,0,0,0,0,0,1,2,1,0,1,1,0,2,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,2,0,0,0,1,3,0,1,0,0,0,2,0,0,0,0,0,0,0,1,2,0,0,0,0,0,
-3,3,0,0,1,1,2,0,0,1,2,1,0,1,1,1,0,1,1,0,0,2,1,1,0,1,0,0,1,1,1,0,
-0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,1,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,
-2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,3,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,0,1,2,0,1,2,0,0,1,1,0,2,0,1,0,0,1,0,0,0,0,1,0,0,0,2,0,0,0,0,
-1,0,0,1,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,2,1,3,0,0,0,0,1,1,0,0,0,0,0,0,0,3,
-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,1,0,1,0,0,2,0,0,2,0,0,1,1,2,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,
-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,
-1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,
-1,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,1,1,0,0,2,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-)
-
-TIS620ThaiModel = {
- 'charToOrderMap': TIS620CharToOrderMap,
- 'precedenceMatrix': ThaiLangModel,
- 'mTypicalPositiveRatio': 0.926386,
- 'keepEnglishLetter': False,
- 'charsetName': "TIS-620"
-}
-
-# flake8: noqa
diff --git a/vendor/requests/packages/chardet/latin1prober.py b/vendor/requests/packages/chardet/latin1prober.py
deleted file mode 100644
index eef35735..00000000
--- a/vendor/requests/packages/chardet/latin1prober.py
+++ /dev/null
@@ -1,139 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .charsetprober import CharSetProber
-from .constants import eNotMe
-from .compat import wrap_ord
-
-FREQ_CAT_NUM = 4
-
-UDF = 0 # undefined
-OTH = 1 # other
-ASC = 2 # ascii capital letter
-ASS = 3 # ascii small letter
-ACV = 4 # accent capital vowel
-ACO = 5 # accent capital other
-ASV = 6 # accent small vowel
-ASO = 7 # accent small other
-CLASS_NUM = 8 # total classes
-
-Latin1_CharToClass = (
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 00 - 07
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 08 - 0F
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 10 - 17
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 18 - 1F
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 20 - 27
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 28 - 2F
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 30 - 37
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 38 - 3F
- OTH, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 40 - 47
- ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 48 - 4F
- ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 50 - 57
- ASC, ASC, ASC, OTH, OTH, OTH, OTH, OTH, # 58 - 5F
- OTH, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 60 - 67
- ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 68 - 6F
- ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 70 - 77
- ASS, ASS, ASS, OTH, OTH, OTH, OTH, OTH, # 78 - 7F
- OTH, UDF, OTH, ASO, OTH, OTH, OTH, OTH, # 80 - 87
- OTH, OTH, ACO, OTH, ACO, UDF, ACO, UDF, # 88 - 8F
- UDF, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 90 - 97
- OTH, OTH, ASO, OTH, ASO, UDF, ASO, ACO, # 98 - 9F
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A0 - A7
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A8 - AF
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B0 - B7
- OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B8 - BF
- ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, # C0 - C7
- ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACV, # C8 - CF
- ACO, ACO, ACV, ACV, ACV, ACV, ACV, OTH, # D0 - D7
- ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO, # D8 - DF
- ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, # E0 - E7
- ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV, # E8 - EF
- ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH, # F0 - F7
- ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO, # F8 - FF
-)
-
-# 0 : illegal
-# 1 : very unlikely
-# 2 : normal
-# 3 : very likely
-Latin1ClassModel = (
- # UDF OTH ASC ASS ACV ACO ASV ASO
- 0, 0, 0, 0, 0, 0, 0, 0, # UDF
- 0, 3, 3, 3, 3, 3, 3, 3, # OTH
- 0, 3, 3, 3, 3, 3, 3, 3, # ASC
- 0, 3, 3, 3, 1, 1, 3, 3, # ASS
- 0, 3, 3, 3, 1, 2, 1, 2, # ACV
- 0, 3, 3, 3, 3, 3, 3, 3, # ACO
- 0, 3, 1, 3, 1, 1, 1, 3, # ASV
- 0, 3, 1, 3, 1, 1, 3, 3, # ASO
-)
-
-
-class Latin1Prober(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self.reset()
-
- def reset(self):
- self._mLastCharClass = OTH
- self._mFreqCounter = [0] * FREQ_CAT_NUM
- CharSetProber.reset(self)
-
- def get_charset_name(self):
- return "windows-1252"
-
- def feed(self, aBuf):
- aBuf = self.filter_with_english_letters(aBuf)
- for c in aBuf:
- charClass = Latin1_CharToClass[wrap_ord(c)]
- freq = Latin1ClassModel[(self._mLastCharClass * CLASS_NUM)
- + charClass]
- if freq == 0:
- self._mState = eNotMe
- break
- self._mFreqCounter[freq] += 1
- self._mLastCharClass = charClass
-
- return self.get_state()
-
- def get_confidence(self):
- if self.get_state() == eNotMe:
- return 0.01
-
- total = sum(self._mFreqCounter)
- if total < 0.01:
- confidence = 0.0
- else:
- confidence = ((self._mFreqCounter[3] - self._mFreqCounter[1] * 20.0)
- / total)
- if confidence < 0.0:
- confidence = 0.0
- # lower the confidence of latin1 so that other more accurate
- # detector can take priority.
- confidence = confidence * 0.73
- return confidence
diff --git a/vendor/requests/packages/chardet/mbcharsetprober.py b/vendor/requests/packages/chardet/mbcharsetprober.py
deleted file mode 100644
index bb42f2fb..00000000
--- a/vendor/requests/packages/chardet/mbcharsetprober.py
+++ /dev/null
@@ -1,86 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-# Proofpoint, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-import sys
-from . import constants
-from .charsetprober import CharSetProber
-
-
-class MultiByteCharSetProber(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self._mDistributionAnalyzer = None
- self._mCodingSM = None
- self._mLastChar = [0, 0]
-
- def reset(self):
- CharSetProber.reset(self)
- if self._mCodingSM:
- self._mCodingSM.reset()
- if self._mDistributionAnalyzer:
- self._mDistributionAnalyzer.reset()
- self._mLastChar = [0, 0]
-
- def get_charset_name(self):
- pass
-
- def feed(self, aBuf):
- aLen = len(aBuf)
- for i in range(0, aLen):
- codingState = self._mCodingSM.next_state(aBuf[i])
- if codingState == constants.eError:
- if constants._debug:
- sys.stderr.write(self.get_charset_name()
- + ' prober hit error at byte ' + str(i)
- + '\n')
- self._mState = constants.eNotMe
- break
- elif codingState == constants.eItsMe:
- self._mState = constants.eFoundIt
- break
- elif codingState == constants.eStart:
- charLen = self._mCodingSM.get_current_charlen()
- if i == 0:
- self._mLastChar[1] = aBuf[0]
- self._mDistributionAnalyzer.feed(self._mLastChar, charLen)
- else:
- self._mDistributionAnalyzer.feed(aBuf[i - 1:i + 1],
- charLen)
-
- self._mLastChar[0] = aBuf[aLen - 1]
-
- if self.get_state() == constants.eDetecting:
- if (self._mDistributionAnalyzer.got_enough_data() and
- (self.get_confidence() > constants.SHORTCUT_THRESHOLD)):
- self._mState = constants.eFoundIt
-
- return self.get_state()
-
- def get_confidence(self):
- return self._mDistributionAnalyzer.get_confidence()
diff --git a/vendor/requests/packages/chardet/mbcsgroupprober.py b/vendor/requests/packages/chardet/mbcsgroupprober.py
deleted file mode 100644
index 03c9dcf3..00000000
--- a/vendor/requests/packages/chardet/mbcsgroupprober.py
+++ /dev/null
@@ -1,54 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-# Proofpoint, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .charsetgroupprober import CharSetGroupProber
-from .utf8prober import UTF8Prober
-from .sjisprober import SJISProber
-from .eucjpprober import EUCJPProber
-from .gb2312prober import GB2312Prober
-from .euckrprober import EUCKRProber
-from .cp949prober import CP949Prober
-from .big5prober import Big5Prober
-from .euctwprober import EUCTWProber
-
-
-class MBCSGroupProber(CharSetGroupProber):
- def __init__(self):
- CharSetGroupProber.__init__(self)
- self._mProbers = [
- UTF8Prober(),
- SJISProber(),
- EUCJPProber(),
- GB2312Prober(),
- EUCKRProber(),
- CP949Prober(),
- Big5Prober(),
- EUCTWProber()
- ]
- self.reset()
diff --git a/vendor/requests/packages/chardet/mbcssm.py b/vendor/requests/packages/chardet/mbcssm.py
deleted file mode 100644
index efe678ca..00000000
--- a/vendor/requests/packages/chardet/mbcssm.py
+++ /dev/null
@@ -1,572 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .constants import eStart, eError, eItsMe
-
-# BIG5
-
-BIG5_cls = (
- 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as legal value
- 1,1,1,1,1,1,0,0, # 08 - 0f
- 1,1,1,1,1,1,1,1, # 10 - 17
- 1,1,1,0,1,1,1,1, # 18 - 1f
- 1,1,1,1,1,1,1,1, # 20 - 27
- 1,1,1,1,1,1,1,1, # 28 - 2f
- 1,1,1,1,1,1,1,1, # 30 - 37
- 1,1,1,1,1,1,1,1, # 38 - 3f
- 2,2,2,2,2,2,2,2, # 40 - 47
- 2,2,2,2,2,2,2,2, # 48 - 4f
- 2,2,2,2,2,2,2,2, # 50 - 57
- 2,2,2,2,2,2,2,2, # 58 - 5f
- 2,2,2,2,2,2,2,2, # 60 - 67
- 2,2,2,2,2,2,2,2, # 68 - 6f
- 2,2,2,2,2,2,2,2, # 70 - 77
- 2,2,2,2,2,2,2,1, # 78 - 7f
- 4,4,4,4,4,4,4,4, # 80 - 87
- 4,4,4,4,4,4,4,4, # 88 - 8f
- 4,4,4,4,4,4,4,4, # 90 - 97
- 4,4,4,4,4,4,4,4, # 98 - 9f
- 4,3,3,3,3,3,3,3, # a0 - a7
- 3,3,3,3,3,3,3,3, # a8 - af
- 3,3,3,3,3,3,3,3, # b0 - b7
- 3,3,3,3,3,3,3,3, # b8 - bf
- 3,3,3,3,3,3,3,3, # c0 - c7
- 3,3,3,3,3,3,3,3, # c8 - cf
- 3,3,3,3,3,3,3,3, # d0 - d7
- 3,3,3,3,3,3,3,3, # d8 - df
- 3,3,3,3,3,3,3,3, # e0 - e7
- 3,3,3,3,3,3,3,3, # e8 - ef
- 3,3,3,3,3,3,3,3, # f0 - f7
- 3,3,3,3,3,3,3,0 # f8 - ff
-)
-
-BIG5_st = (
- eError,eStart,eStart, 3,eError,eError,eError,eError,#00-07
- eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,#08-0f
- eError,eStart,eStart,eStart,eStart,eStart,eStart,eStart#10-17
-)
-
-Big5CharLenTable = (0, 1, 1, 2, 0)
-
-Big5SMModel = {'classTable': BIG5_cls,
- 'classFactor': 5,
- 'stateTable': BIG5_st,
- 'charLenTable': Big5CharLenTable,
- 'name': 'Big5'}
-
-# CP949
-
-CP949_cls = (
- 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0, # 00 - 0f
- 1,1,1,1,1,1,1,1, 1,1,1,0,1,1,1,1, # 10 - 1f
- 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 20 - 2f
- 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 30 - 3f
- 1,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4, # 40 - 4f
- 4,4,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 50 - 5f
- 1,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, # 60 - 6f
- 5,5,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 70 - 7f
- 0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 80 - 8f
- 6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 90 - 9f
- 6,7,7,7,7,7,7,7, 7,7,7,7,7,8,8,8, # a0 - af
- 7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7, # b0 - bf
- 7,7,7,7,7,7,9,2, 2,3,2,2,2,2,2,2, # c0 - cf
- 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # d0 - df
- 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # e0 - ef
- 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,0, # f0 - ff
-)
-
-CP949_st = (
-#cls= 0 1 2 3 4 5 6 7 8 9 # previous state =
- eError,eStart, 3,eError,eStart,eStart, 4, 5,eError, 6, # eStart
- eError,eError,eError,eError,eError,eError,eError,eError,eError,eError, # eError
- eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe, # eItsMe
- eError,eError,eStart,eStart,eError,eError,eError,eStart,eStart,eStart, # 3
- eError,eError,eStart,eStart,eStart,eStart,eStart,eStart,eStart,eStart, # 4
- eError,eStart,eStart,eStart,eStart,eStart,eStart,eStart,eStart,eStart, # 5
- eError,eStart,eStart,eStart,eStart,eError,eError,eStart,eStart,eStart, # 6
-)
-
-CP949CharLenTable = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2)
-
-CP949SMModel = {'classTable': CP949_cls,
- 'classFactor': 10,
- 'stateTable': CP949_st,
- 'charLenTable': CP949CharLenTable,
- 'name': 'CP949'}
-
-# EUC-JP
-
-EUCJP_cls = (
- 4,4,4,4,4,4,4,4, # 00 - 07
- 4,4,4,4,4,4,5,5, # 08 - 0f
- 4,4,4,4,4,4,4,4, # 10 - 17
- 4,4,4,5,4,4,4,4, # 18 - 1f
- 4,4,4,4,4,4,4,4, # 20 - 27
- 4,4,4,4,4,4,4,4, # 28 - 2f
- 4,4,4,4,4,4,4,4, # 30 - 37
- 4,4,4,4,4,4,4,4, # 38 - 3f
- 4,4,4,4,4,4,4,4, # 40 - 47
- 4,4,4,4,4,4,4,4, # 48 - 4f
- 4,4,4,4,4,4,4,4, # 50 - 57
- 4,4,4,4,4,4,4,4, # 58 - 5f
- 4,4,4,4,4,4,4,4, # 60 - 67
- 4,4,4,4,4,4,4,4, # 68 - 6f
- 4,4,4,4,4,4,4,4, # 70 - 77
- 4,4,4,4,4,4,4,4, # 78 - 7f
- 5,5,5,5,5,5,5,5, # 80 - 87
- 5,5,5,5,5,5,1,3, # 88 - 8f
- 5,5,5,5,5,5,5,5, # 90 - 97
- 5,5,5,5,5,5,5,5, # 98 - 9f
- 5,2,2,2,2,2,2,2, # a0 - a7
- 2,2,2,2,2,2,2,2, # a8 - af
- 2,2,2,2,2,2,2,2, # b0 - b7
- 2,2,2,2,2,2,2,2, # b8 - bf
- 2,2,2,2,2,2,2,2, # c0 - c7
- 2,2,2,2,2,2,2,2, # c8 - cf
- 2,2,2,2,2,2,2,2, # d0 - d7
- 2,2,2,2,2,2,2,2, # d8 - df
- 0,0,0,0,0,0,0,0, # e0 - e7
- 0,0,0,0,0,0,0,0, # e8 - ef
- 0,0,0,0,0,0,0,0, # f0 - f7
- 0,0,0,0,0,0,0,5 # f8 - ff
-)
-
-EUCJP_st = (
- 3, 4, 3, 5,eStart,eError,eError,eError,#00-07
- eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe,eStart,eError,eStart,eError,eError,eError,#10-17
- eError,eError,eStart,eError,eError,eError, 3,eError,#18-1f
- 3,eError,eError,eError,eStart,eStart,eStart,eStart#20-27
-)
-
-EUCJPCharLenTable = (2, 2, 2, 3, 1, 0)
-
-EUCJPSMModel = {'classTable': EUCJP_cls,
- 'classFactor': 6,
- 'stateTable': EUCJP_st,
- 'charLenTable': EUCJPCharLenTable,
- 'name': 'EUC-JP'}
-
-# EUC-KR
-
-EUCKR_cls = (
- 1,1,1,1,1,1,1,1, # 00 - 07
- 1,1,1,1,1,1,0,0, # 08 - 0f
- 1,1,1,1,1,1,1,1, # 10 - 17
- 1,1,1,0,1,1,1,1, # 18 - 1f
- 1,1,1,1,1,1,1,1, # 20 - 27
- 1,1,1,1,1,1,1,1, # 28 - 2f
- 1,1,1,1,1,1,1,1, # 30 - 37
- 1,1,1,1,1,1,1,1, # 38 - 3f
- 1,1,1,1,1,1,1,1, # 40 - 47
- 1,1,1,1,1,1,1,1, # 48 - 4f
- 1,1,1,1,1,1,1,1, # 50 - 57
- 1,1,1,1,1,1,1,1, # 58 - 5f
- 1,1,1,1,1,1,1,1, # 60 - 67
- 1,1,1,1,1,1,1,1, # 68 - 6f
- 1,1,1,1,1,1,1,1, # 70 - 77
- 1,1,1,1,1,1,1,1, # 78 - 7f
- 0,0,0,0,0,0,0,0, # 80 - 87
- 0,0,0,0,0,0,0,0, # 88 - 8f
- 0,0,0,0,0,0,0,0, # 90 - 97
- 0,0,0,0,0,0,0,0, # 98 - 9f
- 0,2,2,2,2,2,2,2, # a0 - a7
- 2,2,2,2,2,3,3,3, # a8 - af
- 2,2,2,2,2,2,2,2, # b0 - b7
- 2,2,2,2,2,2,2,2, # b8 - bf
- 2,2,2,2,2,2,2,2, # c0 - c7
- 2,3,2,2,2,2,2,2, # c8 - cf
- 2,2,2,2,2,2,2,2, # d0 - d7
- 2,2,2,2,2,2,2,2, # d8 - df
- 2,2,2,2,2,2,2,2, # e0 - e7
- 2,2,2,2,2,2,2,2, # e8 - ef
- 2,2,2,2,2,2,2,2, # f0 - f7
- 2,2,2,2,2,2,2,0 # f8 - ff
-)
-
-EUCKR_st = (
- eError,eStart, 3,eError,eError,eError,eError,eError,#00-07
- eItsMe,eItsMe,eItsMe,eItsMe,eError,eError,eStart,eStart #08-0f
-)
-
-EUCKRCharLenTable = (0, 1, 2, 0)
-
-EUCKRSMModel = {'classTable': EUCKR_cls,
- 'classFactor': 4,
- 'stateTable': EUCKR_st,
- 'charLenTable': EUCKRCharLenTable,
- 'name': 'EUC-KR'}
-
-# EUC-TW
-
-EUCTW_cls = (
- 2,2,2,2,2,2,2,2, # 00 - 07
- 2,2,2,2,2,2,0,0, # 08 - 0f
- 2,2,2,2,2,2,2,2, # 10 - 17
- 2,2,2,0,2,2,2,2, # 18 - 1f
- 2,2,2,2,2,2,2,2, # 20 - 27
- 2,2,2,2,2,2,2,2, # 28 - 2f
- 2,2,2,2,2,2,2,2, # 30 - 37
- 2,2,2,2,2,2,2,2, # 38 - 3f
- 2,2,2,2,2,2,2,2, # 40 - 47
- 2,2,2,2,2,2,2,2, # 48 - 4f
- 2,2,2,2,2,2,2,2, # 50 - 57
- 2,2,2,2,2,2,2,2, # 58 - 5f
- 2,2,2,2,2,2,2,2, # 60 - 67
- 2,2,2,2,2,2,2,2, # 68 - 6f
- 2,2,2,2,2,2,2,2, # 70 - 77
- 2,2,2,2,2,2,2,2, # 78 - 7f
- 0,0,0,0,0,0,0,0, # 80 - 87
- 0,0,0,0,0,0,6,0, # 88 - 8f
- 0,0,0,0,0,0,0,0, # 90 - 97
- 0,0,0,0,0,0,0,0, # 98 - 9f
- 0,3,4,4,4,4,4,4, # a0 - a7
- 5,5,1,1,1,1,1,1, # a8 - af
- 1,1,1,1,1,1,1,1, # b0 - b7
- 1,1,1,1,1,1,1,1, # b8 - bf
- 1,1,3,1,3,3,3,3, # c0 - c7
- 3,3,3,3,3,3,3,3, # c8 - cf
- 3,3,3,3,3,3,3,3, # d0 - d7
- 3,3,3,3,3,3,3,3, # d8 - df
- 3,3,3,3,3,3,3,3, # e0 - e7
- 3,3,3,3,3,3,3,3, # e8 - ef
- 3,3,3,3,3,3,3,3, # f0 - f7
- 3,3,3,3,3,3,3,0 # f8 - ff
-)
-
-EUCTW_st = (
- eError,eError,eStart, 3, 3, 3, 4,eError,#00-07
- eError,eError,eError,eError,eError,eError,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,eStart,eError,#10-17
- eStart,eStart,eStart,eError,eError,eError,eError,eError,#18-1f
- 5,eError,eError,eError,eStart,eError,eStart,eStart,#20-27
- eStart,eError,eStart,eStart,eStart,eStart,eStart,eStart #28-2f
-)
-
-EUCTWCharLenTable = (0, 0, 1, 2, 2, 2, 3)
-
-EUCTWSMModel = {'classTable': EUCTW_cls,
- 'classFactor': 7,
- 'stateTable': EUCTW_st,
- 'charLenTable': EUCTWCharLenTable,
- 'name': 'x-euc-tw'}
-
-# GB2312
-
-GB2312_cls = (
- 1,1,1,1,1,1,1,1, # 00 - 07
- 1,1,1,1,1,1,0,0, # 08 - 0f
- 1,1,1,1,1,1,1,1, # 10 - 17
- 1,1,1,0,1,1,1,1, # 18 - 1f
- 1,1,1,1,1,1,1,1, # 20 - 27
- 1,1,1,1,1,1,1,1, # 28 - 2f
- 3,3,3,3,3,3,3,3, # 30 - 37
- 3,3,1,1,1,1,1,1, # 38 - 3f
- 2,2,2,2,2,2,2,2, # 40 - 47
- 2,2,2,2,2,2,2,2, # 48 - 4f
- 2,2,2,2,2,2,2,2, # 50 - 57
- 2,2,2,2,2,2,2,2, # 58 - 5f
- 2,2,2,2,2,2,2,2, # 60 - 67
- 2,2,2,2,2,2,2,2, # 68 - 6f
- 2,2,2,2,2,2,2,2, # 70 - 77
- 2,2,2,2,2,2,2,4, # 78 - 7f
- 5,6,6,6,6,6,6,6, # 80 - 87
- 6,6,6,6,6,6,6,6, # 88 - 8f
- 6,6,6,6,6,6,6,6, # 90 - 97
- 6,6,6,6,6,6,6,6, # 98 - 9f
- 6,6,6,6,6,6,6,6, # a0 - a7
- 6,6,6,6,6,6,6,6, # a8 - af
- 6,6,6,6,6,6,6,6, # b0 - b7
- 6,6,6,6,6,6,6,6, # b8 - bf
- 6,6,6,6,6,6,6,6, # c0 - c7
- 6,6,6,6,6,6,6,6, # c8 - cf
- 6,6,6,6,6,6,6,6, # d0 - d7
- 6,6,6,6,6,6,6,6, # d8 - df
- 6,6,6,6,6,6,6,6, # e0 - e7
- 6,6,6,6,6,6,6,6, # e8 - ef
- 6,6,6,6,6,6,6,6, # f0 - f7
- 6,6,6,6,6,6,6,0 # f8 - ff
-)
-
-GB2312_st = (
- eError,eStart,eStart,eStart,eStart,eStart, 3,eError,#00-07
- eError,eError,eError,eError,eError,eError,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,eError,eStart,#10-17
- 4,eError,eStart,eStart,eError,eError,eError,eError,#18-1f
- eError,eError, 5,eError,eError,eError,eItsMe,eError,#20-27
- eError,eError,eStart,eStart,eStart,eStart,eStart,eStart #28-2f
-)
-
-# To be accurate, the length of class 6 can be either 2 or 4.
-# But it is not necessary to discriminate between the two since
-# it is used for frequency analysis only, and we are validing
-# each code range there as well. So it is safe to set it to be
-# 2 here.
-GB2312CharLenTable = (0, 1, 1, 1, 1, 1, 2)
-
-GB2312SMModel = {'classTable': GB2312_cls,
- 'classFactor': 7,
- 'stateTable': GB2312_st,
- 'charLenTable': GB2312CharLenTable,
- 'name': 'GB2312'}
-
-# Shift_JIS
-
-SJIS_cls = (
- 1,1,1,1,1,1,1,1, # 00 - 07
- 1,1,1,1,1,1,0,0, # 08 - 0f
- 1,1,1,1,1,1,1,1, # 10 - 17
- 1,1,1,0,1,1,1,1, # 18 - 1f
- 1,1,1,1,1,1,1,1, # 20 - 27
- 1,1,1,1,1,1,1,1, # 28 - 2f
- 1,1,1,1,1,1,1,1, # 30 - 37
- 1,1,1,1,1,1,1,1, # 38 - 3f
- 2,2,2,2,2,2,2,2, # 40 - 47
- 2,2,2,2,2,2,2,2, # 48 - 4f
- 2,2,2,2,2,2,2,2, # 50 - 57
- 2,2,2,2,2,2,2,2, # 58 - 5f
- 2,2,2,2,2,2,2,2, # 60 - 67
- 2,2,2,2,2,2,2,2, # 68 - 6f
- 2,2,2,2,2,2,2,2, # 70 - 77
- 2,2,2,2,2,2,2,1, # 78 - 7f
- 3,3,3,3,3,2,2,3, # 80 - 87
- 3,3,3,3,3,3,3,3, # 88 - 8f
- 3,3,3,3,3,3,3,3, # 90 - 97
- 3,3,3,3,3,3,3,3, # 98 - 9f
- #0xa0 is illegal in sjis encoding, but some pages does
- #contain such byte. We need to be more error forgiven.
- 2,2,2,2,2,2,2,2, # a0 - a7
- 2,2,2,2,2,2,2,2, # a8 - af
- 2,2,2,2,2,2,2,2, # b0 - b7
- 2,2,2,2,2,2,2,2, # b8 - bf
- 2,2,2,2,2,2,2,2, # c0 - c7
- 2,2,2,2,2,2,2,2, # c8 - cf
- 2,2,2,2,2,2,2,2, # d0 - d7
- 2,2,2,2,2,2,2,2, # d8 - df
- 3,3,3,3,3,3,3,3, # e0 - e7
- 3,3,3,3,3,4,4,4, # e8 - ef
- 3,3,3,3,3,3,3,3, # f0 - f7
- 3,3,3,3,3,0,0,0) # f8 - ff
-
-
-SJIS_st = (
- eError,eStart,eStart, 3,eError,eError,eError,eError,#00-07
- eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe,eError,eError,eStart,eStart,eStart,eStart #10-17
-)
-
-SJISCharLenTable = (0, 1, 1, 2, 0, 0)
-
-SJISSMModel = {'classTable': SJIS_cls,
- 'classFactor': 6,
- 'stateTable': SJIS_st,
- 'charLenTable': SJISCharLenTable,
- 'name': 'Shift_JIS'}
-
-# UCS2-BE
-
-UCS2BE_cls = (
- 0,0,0,0,0,0,0,0, # 00 - 07
- 0,0,1,0,0,2,0,0, # 08 - 0f
- 0,0,0,0,0,0,0,0, # 10 - 17
- 0,0,0,3,0,0,0,0, # 18 - 1f
- 0,0,0,0,0,0,0,0, # 20 - 27
- 0,3,3,3,3,3,0,0, # 28 - 2f
- 0,0,0,0,0,0,0,0, # 30 - 37
- 0,0,0,0,0,0,0,0, # 38 - 3f
- 0,0,0,0,0,0,0,0, # 40 - 47
- 0,0,0,0,0,0,0,0, # 48 - 4f
- 0,0,0,0,0,0,0,0, # 50 - 57
- 0,0,0,0,0,0,0,0, # 58 - 5f
- 0,0,0,0,0,0,0,0, # 60 - 67
- 0,0,0,0,0,0,0,0, # 68 - 6f
- 0,0,0,0,0,0,0,0, # 70 - 77
- 0,0,0,0,0,0,0,0, # 78 - 7f
- 0,0,0,0,0,0,0,0, # 80 - 87
- 0,0,0,0,0,0,0,0, # 88 - 8f
- 0,0,0,0,0,0,0,0, # 90 - 97
- 0,0,0,0,0,0,0,0, # 98 - 9f
- 0,0,0,0,0,0,0,0, # a0 - a7
- 0,0,0,0,0,0,0,0, # a8 - af
- 0,0,0,0,0,0,0,0, # b0 - b7
- 0,0,0,0,0,0,0,0, # b8 - bf
- 0,0,0,0,0,0,0,0, # c0 - c7
- 0,0,0,0,0,0,0,0, # c8 - cf
- 0,0,0,0,0,0,0,0, # d0 - d7
- 0,0,0,0,0,0,0,0, # d8 - df
- 0,0,0,0,0,0,0,0, # e0 - e7
- 0,0,0,0,0,0,0,0, # e8 - ef
- 0,0,0,0,0,0,0,0, # f0 - f7
- 0,0,0,0,0,0,4,5 # f8 - ff
-)
-
-UCS2BE_st = (
- 5, 7, 7,eError, 4, 3,eError,eError,#00-07
- eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe, 6, 6, 6, 6,eError,eError,#10-17
- 6, 6, 6, 6, 6,eItsMe, 6, 6,#18-1f
- 6, 6, 6, 6, 5, 7, 7,eError,#20-27
- 5, 8, 6, 6,eError, 6, 6, 6,#28-2f
- 6, 6, 6, 6,eError,eError,eStart,eStart #30-37
-)
-
-UCS2BECharLenTable = (2, 2, 2, 0, 2, 2)
-
-UCS2BESMModel = {'classTable': UCS2BE_cls,
- 'classFactor': 6,
- 'stateTable': UCS2BE_st,
- 'charLenTable': UCS2BECharLenTable,
- 'name': 'UTF-16BE'}
-
-# UCS2-LE
-
-UCS2LE_cls = (
- 0,0,0,0,0,0,0,0, # 00 - 07
- 0,0,1,0,0,2,0,0, # 08 - 0f
- 0,0,0,0,0,0,0,0, # 10 - 17
- 0,0,0,3,0,0,0,0, # 18 - 1f
- 0,0,0,0,0,0,0,0, # 20 - 27
- 0,3,3,3,3,3,0,0, # 28 - 2f
- 0,0,0,0,0,0,0,0, # 30 - 37
- 0,0,0,0,0,0,0,0, # 38 - 3f
- 0,0,0,0,0,0,0,0, # 40 - 47
- 0,0,0,0,0,0,0,0, # 48 - 4f
- 0,0,0,0,0,0,0,0, # 50 - 57
- 0,0,0,0,0,0,0,0, # 58 - 5f
- 0,0,0,0,0,0,0,0, # 60 - 67
- 0,0,0,0,0,0,0,0, # 68 - 6f
- 0,0,0,0,0,0,0,0, # 70 - 77
- 0,0,0,0,0,0,0,0, # 78 - 7f
- 0,0,0,0,0,0,0,0, # 80 - 87
- 0,0,0,0,0,0,0,0, # 88 - 8f
- 0,0,0,0,0,0,0,0, # 90 - 97
- 0,0,0,0,0,0,0,0, # 98 - 9f
- 0,0,0,0,0,0,0,0, # a0 - a7
- 0,0,0,0,0,0,0,0, # a8 - af
- 0,0,0,0,0,0,0,0, # b0 - b7
- 0,0,0,0,0,0,0,0, # b8 - bf
- 0,0,0,0,0,0,0,0, # c0 - c7
- 0,0,0,0,0,0,0,0, # c8 - cf
- 0,0,0,0,0,0,0,0, # d0 - d7
- 0,0,0,0,0,0,0,0, # d8 - df
- 0,0,0,0,0,0,0,0, # e0 - e7
- 0,0,0,0,0,0,0,0, # e8 - ef
- 0,0,0,0,0,0,0,0, # f0 - f7
- 0,0,0,0,0,0,4,5 # f8 - ff
-)
-
-UCS2LE_st = (
- 6, 6, 7, 6, 4, 3,eError,eError,#00-07
- eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe,#08-0f
- eItsMe,eItsMe, 5, 5, 5,eError,eItsMe,eError,#10-17
- 5, 5, 5,eError, 5,eError, 6, 6,#18-1f
- 7, 6, 8, 8, 5, 5, 5,eError,#20-27
- 5, 5, 5,eError,eError,eError, 5, 5,#28-2f
- 5, 5, 5,eError, 5,eError,eStart,eStart #30-37
-)
-
-UCS2LECharLenTable = (2, 2, 2, 2, 2, 2)
-
-UCS2LESMModel = {'classTable': UCS2LE_cls,
- 'classFactor': 6,
- 'stateTable': UCS2LE_st,
- 'charLenTable': UCS2LECharLenTable,
- 'name': 'UTF-16LE'}
-
-# UTF-8
-
-UTF8_cls = (
- 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as a legal value
- 1,1,1,1,1,1,0,0, # 08 - 0f
- 1,1,1,1,1,1,1,1, # 10 - 17
- 1,1,1,0,1,1,1,1, # 18 - 1f
- 1,1,1,1,1,1,1,1, # 20 - 27
- 1,1,1,1,1,1,1,1, # 28 - 2f
- 1,1,1,1,1,1,1,1, # 30 - 37
- 1,1,1,1,1,1,1,1, # 38 - 3f
- 1,1,1,1,1,1,1,1, # 40 - 47
- 1,1,1,1,1,1,1,1, # 48 - 4f
- 1,1,1,1,1,1,1,1, # 50 - 57
- 1,1,1,1,1,1,1,1, # 58 - 5f
- 1,1,1,1,1,1,1,1, # 60 - 67
- 1,1,1,1,1,1,1,1, # 68 - 6f
- 1,1,1,1,1,1,1,1, # 70 - 77
- 1,1,1,1,1,1,1,1, # 78 - 7f
- 2,2,2,2,3,3,3,3, # 80 - 87
- 4,4,4,4,4,4,4,4, # 88 - 8f
- 4,4,4,4,4,4,4,4, # 90 - 97
- 4,4,4,4,4,4,4,4, # 98 - 9f
- 5,5,5,5,5,5,5,5, # a0 - a7
- 5,5,5,5,5,5,5,5, # a8 - af
- 5,5,5,5,5,5,5,5, # b0 - b7
- 5,5,5,5,5,5,5,5, # b8 - bf
- 0,0,6,6,6,6,6,6, # c0 - c7
- 6,6,6,6,6,6,6,6, # c8 - cf
- 6,6,6,6,6,6,6,6, # d0 - d7
- 6,6,6,6,6,6,6,6, # d8 - df
- 7,8,8,8,8,8,8,8, # e0 - e7
- 8,8,8,8,8,9,8,8, # e8 - ef
- 10,11,11,11,11,11,11,11, # f0 - f7
- 12,13,13,13,14,15,0,0 # f8 - ff
-)
-
-UTF8_st = (
- eError,eStart,eError,eError,eError,eError, 12, 10,#00-07
- 9, 11, 8, 7, 6, 5, 4, 3,#08-0f
- eError,eError,eError,eError,eError,eError,eError,eError,#10-17
- eError,eError,eError,eError,eError,eError,eError,eError,#18-1f
- eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,#20-27
- eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,#28-2f
- eError,eError, 5, 5, 5, 5,eError,eError,#30-37
- eError,eError,eError,eError,eError,eError,eError,eError,#38-3f
- eError,eError,eError, 5, 5, 5,eError,eError,#40-47
- eError,eError,eError,eError,eError,eError,eError,eError,#48-4f
- eError,eError, 7, 7, 7, 7,eError,eError,#50-57
- eError,eError,eError,eError,eError,eError,eError,eError,#58-5f
- eError,eError,eError,eError, 7, 7,eError,eError,#60-67
- eError,eError,eError,eError,eError,eError,eError,eError,#68-6f
- eError,eError, 9, 9, 9, 9,eError,eError,#70-77
- eError,eError,eError,eError,eError,eError,eError,eError,#78-7f
- eError,eError,eError,eError,eError, 9,eError,eError,#80-87
- eError,eError,eError,eError,eError,eError,eError,eError,#88-8f
- eError,eError, 12, 12, 12, 12,eError,eError,#90-97
- eError,eError,eError,eError,eError,eError,eError,eError,#98-9f
- eError,eError,eError,eError,eError, 12,eError,eError,#a0-a7
- eError,eError,eError,eError,eError,eError,eError,eError,#a8-af
- eError,eError, 12, 12, 12,eError,eError,eError,#b0-b7
- eError,eError,eError,eError,eError,eError,eError,eError,#b8-bf
- eError,eError,eStart,eStart,eStart,eStart,eError,eError,#c0-c7
- eError,eError,eError,eError,eError,eError,eError,eError #c8-cf
-)
-
-UTF8CharLenTable = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6)
-
-UTF8SMModel = {'classTable': UTF8_cls,
- 'classFactor': 16,
- 'stateTable': UTF8_st,
- 'charLenTable': UTF8CharLenTable,
- 'name': 'UTF-8'}
diff --git a/vendor/requests/packages/chardet/sbcharsetprober.py b/vendor/requests/packages/chardet/sbcharsetprober.py
deleted file mode 100644
index 37291bd2..00000000
--- a/vendor/requests/packages/chardet/sbcharsetprober.py
+++ /dev/null
@@ -1,120 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-import sys
-from . import constants
-from .charsetprober import CharSetProber
-from .compat import wrap_ord
-
-SAMPLE_SIZE = 64
-SB_ENOUGH_REL_THRESHOLD = 1024
-POSITIVE_SHORTCUT_THRESHOLD = 0.95
-NEGATIVE_SHORTCUT_THRESHOLD = 0.05
-SYMBOL_CAT_ORDER = 250
-NUMBER_OF_SEQ_CAT = 4
-POSITIVE_CAT = NUMBER_OF_SEQ_CAT - 1
-#NEGATIVE_CAT = 0
-
-
-class SingleByteCharSetProber(CharSetProber):
- def __init__(self, model, reversed=False, nameProber=None):
- CharSetProber.__init__(self)
- self._mModel = model
- # TRUE if we need to reverse every pair in the model lookup
- self._mReversed = reversed
- # Optional auxiliary prober for name decision
- self._mNameProber = nameProber
- self.reset()
-
- def reset(self):
- CharSetProber.reset(self)
- # char order of last character
- self._mLastOrder = 255
- self._mSeqCounters = [0] * NUMBER_OF_SEQ_CAT
- self._mTotalSeqs = 0
- self._mTotalChar = 0
- # characters that fall in our sampling range
- self._mFreqChar = 0
-
- def get_charset_name(self):
- if self._mNameProber:
- return self._mNameProber.get_charset_name()
- else:
- return self._mModel['charsetName']
-
- def feed(self, aBuf):
- if not self._mModel['keepEnglishLetter']:
- aBuf = self.filter_without_english_letters(aBuf)
- aLen = len(aBuf)
- if not aLen:
- return self.get_state()
- for c in aBuf:
- order = self._mModel['charToOrderMap'][wrap_ord(c)]
- if order < SYMBOL_CAT_ORDER:
- self._mTotalChar += 1
- if order < SAMPLE_SIZE:
- self._mFreqChar += 1
- if self._mLastOrder < SAMPLE_SIZE:
- self._mTotalSeqs += 1
- if not self._mReversed:
- i = (self._mLastOrder * SAMPLE_SIZE) + order
- model = self._mModel['precedenceMatrix'][i]
- else: # reverse the order of the letters in the lookup
- i = (order * SAMPLE_SIZE) + self._mLastOrder
- model = self._mModel['precedenceMatrix'][i]
- self._mSeqCounters[model] += 1
- self._mLastOrder = order
-
- if self.get_state() == constants.eDetecting:
- if self._mTotalSeqs > SB_ENOUGH_REL_THRESHOLD:
- cf = self.get_confidence()
- if cf > POSITIVE_SHORTCUT_THRESHOLD:
- if constants._debug:
- sys.stderr.write('%s confidence = %s, we have a'
- 'winner\n' %
- (self._mModel['charsetName'], cf))
- self._mState = constants.eFoundIt
- elif cf < NEGATIVE_SHORTCUT_THRESHOLD:
- if constants._debug:
- sys.stderr.write('%s confidence = %s, below negative'
- 'shortcut threshhold %s\n' %
- (self._mModel['charsetName'], cf,
- NEGATIVE_SHORTCUT_THRESHOLD))
- self._mState = constants.eNotMe
-
- return self.get_state()
-
- def get_confidence(self):
- r = 0.01
- if self._mTotalSeqs > 0:
- r = ((1.0 * self._mSeqCounters[POSITIVE_CAT]) / self._mTotalSeqs
- / self._mModel['mTypicalPositiveRatio'])
- r = r * self._mFreqChar / self._mTotalChar
- if r >= 1.0:
- r = 0.99
- return r
diff --git a/vendor/requests/packages/chardet/sbcsgroupprober.py b/vendor/requests/packages/chardet/sbcsgroupprober.py
deleted file mode 100644
index 1b6196cd..00000000
--- a/vendor/requests/packages/chardet/sbcsgroupprober.py
+++ /dev/null
@@ -1,69 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from .charsetgroupprober import CharSetGroupProber
-from .sbcharsetprober import SingleByteCharSetProber
-from .langcyrillicmodel import (Win1251CyrillicModel, Koi8rModel,
- Latin5CyrillicModel, MacCyrillicModel,
- Ibm866Model, Ibm855Model)
-from .langgreekmodel import Latin7GreekModel, Win1253GreekModel
-from .langbulgarianmodel import Latin5BulgarianModel, Win1251BulgarianModel
-from .langhungarianmodel import Latin2HungarianModel, Win1250HungarianModel
-from .langthaimodel import TIS620ThaiModel
-from .langhebrewmodel import Win1255HebrewModel
-from .hebrewprober import HebrewProber
-
-
-class SBCSGroupProber(CharSetGroupProber):
- def __init__(self):
- CharSetGroupProber.__init__(self)
- self._mProbers = [
- SingleByteCharSetProber(Win1251CyrillicModel),
- SingleByteCharSetProber(Koi8rModel),
- SingleByteCharSetProber(Latin5CyrillicModel),
- SingleByteCharSetProber(MacCyrillicModel),
- SingleByteCharSetProber(Ibm866Model),
- SingleByteCharSetProber(Ibm855Model),
- SingleByteCharSetProber(Latin7GreekModel),
- SingleByteCharSetProber(Win1253GreekModel),
- SingleByteCharSetProber(Latin5BulgarianModel),
- SingleByteCharSetProber(Win1251BulgarianModel),
- SingleByteCharSetProber(Latin2HungarianModel),
- SingleByteCharSetProber(Win1250HungarianModel),
- SingleByteCharSetProber(TIS620ThaiModel),
- ]
- hebrewProber = HebrewProber()
- logicalHebrewProber = SingleByteCharSetProber(Win1255HebrewModel,
- False, hebrewProber)
- visualHebrewProber = SingleByteCharSetProber(Win1255HebrewModel, True,
- hebrewProber)
- hebrewProber.set_model_probers(logicalHebrewProber, visualHebrewProber)
- self._mProbers.extend([hebrewProber, logicalHebrewProber,
- visualHebrewProber])
-
- self.reset()
diff --git a/vendor/requests/packages/chardet/sjisprober.py b/vendor/requests/packages/chardet/sjisprober.py
deleted file mode 100644
index cd0e9e70..00000000
--- a/vendor/requests/packages/chardet/sjisprober.py
+++ /dev/null
@@ -1,91 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-import sys
-from .mbcharsetprober import MultiByteCharSetProber
-from .codingstatemachine import CodingStateMachine
-from .chardistribution import SJISDistributionAnalysis
-from .jpcntx import SJISContextAnalysis
-from .mbcssm import SJISSMModel
-from . import constants
-
-
-class SJISProber(MultiByteCharSetProber):
- def __init__(self):
- MultiByteCharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(SJISSMModel)
- self._mDistributionAnalyzer = SJISDistributionAnalysis()
- self._mContextAnalyzer = SJISContextAnalysis()
- self.reset()
-
- def reset(self):
- MultiByteCharSetProber.reset(self)
- self._mContextAnalyzer.reset()
-
- def get_charset_name(self):
- return self._mContextAnalyzer.get_charset_name()
-
- def feed(self, aBuf):
- aLen = len(aBuf)
- for i in range(0, aLen):
- codingState = self._mCodingSM.next_state(aBuf[i])
- if codingState == constants.eError:
- if constants._debug:
- sys.stderr.write(self.get_charset_name()
- + ' prober hit error at byte ' + str(i)
- + '\n')
- self._mState = constants.eNotMe
- break
- elif codingState == constants.eItsMe:
- self._mState = constants.eFoundIt
- break
- elif codingState == constants.eStart:
- charLen = self._mCodingSM.get_current_charlen()
- if i == 0:
- self._mLastChar[1] = aBuf[0]
- self._mContextAnalyzer.feed(self._mLastChar[2 - charLen:],
- charLen)
- self._mDistributionAnalyzer.feed(self._mLastChar, charLen)
- else:
- self._mContextAnalyzer.feed(aBuf[i + 1 - charLen:i + 3
- - charLen], charLen)
- self._mDistributionAnalyzer.feed(aBuf[i - 1:i + 1],
- charLen)
-
- self._mLastChar[0] = aBuf[aLen - 1]
-
- if self.get_state() == constants.eDetecting:
- if (self._mContextAnalyzer.got_enough_data() and
- (self.get_confidence() > constants.SHORTCUT_THRESHOLD)):
- self._mState = constants.eFoundIt
-
- return self.get_state()
-
- def get_confidence(self):
- contxtCf = self._mContextAnalyzer.get_confidence()
- distribCf = self._mDistributionAnalyzer.get_confidence()
- return max(contxtCf, distribCf)
diff --git a/vendor/requests/packages/chardet/universaldetector.py b/vendor/requests/packages/chardet/universaldetector.py
deleted file mode 100644
index 476522b9..00000000
--- a/vendor/requests/packages/chardet/universaldetector.py
+++ /dev/null
@@ -1,170 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is Mozilla Universal charset detector code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-# Shy Shalom - original C code
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from . import constants
-import sys
-import codecs
-from .latin1prober import Latin1Prober # windows-1252
-from .mbcsgroupprober import MBCSGroupProber # multi-byte character sets
-from .sbcsgroupprober import SBCSGroupProber # single-byte character sets
-from .escprober import EscCharSetProber # ISO-2122, etc.
-import re
-
-MINIMUM_THRESHOLD = 0.20
-ePureAscii = 0
-eEscAscii = 1
-eHighbyte = 2
-
-
-class UniversalDetector:
- def __init__(self):
- self._highBitDetector = re.compile(b'[\x80-\xFF]')
- self._escDetector = re.compile(b'(\033|~{)')
- self._mEscCharSetProber = None
- self._mCharSetProbers = []
- self.reset()
-
- def reset(self):
- self.result = {'encoding': None, 'confidence': 0.0}
- self.done = False
- self._mStart = True
- self._mGotData = False
- self._mInputState = ePureAscii
- self._mLastChar = b''
- if self._mEscCharSetProber:
- self._mEscCharSetProber.reset()
- for prober in self._mCharSetProbers:
- prober.reset()
-
- def feed(self, aBuf):
- if self.done:
- return
-
- aLen = len(aBuf)
- if not aLen:
- return
-
- if not self._mGotData:
- # If the data starts with BOM, we know it is UTF
- if aBuf[:3] == codecs.BOM_UTF8:
- # EF BB BF UTF-8 with BOM
- self.result = {'encoding': "UTF-8-SIG", 'confidence': 1.0}
- elif aBuf[:4] == codecs.BOM_UTF32_LE:
- # FF FE 00 00 UTF-32, little-endian BOM
- self.result = {'encoding': "UTF-32LE", 'confidence': 1.0}
- elif aBuf[:4] == codecs.BOM_UTF32_BE:
- # 00 00 FE FF UTF-32, big-endian BOM
- self.result = {'encoding': "UTF-32BE", 'confidence': 1.0}
- elif aBuf[:4] == b'\xFE\xFF\x00\x00':
- # FE FF 00 00 UCS-4, unusual octet order BOM (3412)
- self.result = {
- 'encoding': "X-ISO-10646-UCS-4-3412",
- 'confidence': 1.0
- }
- elif aBuf[:4] == b'\x00\x00\xFF\xFE':
- # 00 00 FF FE UCS-4, unusual octet order BOM (2143)
- self.result = {
- 'encoding': "X-ISO-10646-UCS-4-2143",
- 'confidence': 1.0
- }
- elif aBuf[:2] == codecs.BOM_LE:
- # FF FE UTF-16, little endian BOM
- self.result = {'encoding': "UTF-16LE", 'confidence': 1.0}
- elif aBuf[:2] == codecs.BOM_BE:
- # FE FF UTF-16, big endian BOM
- self.result = {'encoding': "UTF-16BE", 'confidence': 1.0}
-
- self._mGotData = True
- if self.result['encoding'] and (self.result['confidence'] > 0.0):
- self.done = True
- return
-
- if self._mInputState == ePureAscii:
- if self._highBitDetector.search(aBuf):
- self._mInputState = eHighbyte
- elif ((self._mInputState == ePureAscii) and
- self._escDetector.search(self._mLastChar + aBuf)):
- self._mInputState = eEscAscii
-
- self._mLastChar = aBuf[-1:]
-
- if self._mInputState == eEscAscii:
- if not self._mEscCharSetProber:
- self._mEscCharSetProber = EscCharSetProber()
- if self._mEscCharSetProber.feed(aBuf) == constants.eFoundIt:
- self.result = {'encoding': self._mEscCharSetProber.get_charset_name(),
- 'confidence': self._mEscCharSetProber.get_confidence()}
- self.done = True
- elif self._mInputState == eHighbyte:
- if not self._mCharSetProbers:
- self._mCharSetProbers = [MBCSGroupProber(), SBCSGroupProber(),
- Latin1Prober()]
- for prober in self._mCharSetProbers:
- if prober.feed(aBuf) == constants.eFoundIt:
- self.result = {'encoding': prober.get_charset_name(),
- 'confidence': prober.get_confidence()}
- self.done = True
- break
-
- def close(self):
- if self.done:
- return
- if not self._mGotData:
- if constants._debug:
- sys.stderr.write('no data received!\n')
- return
- self.done = True
-
- if self._mInputState == ePureAscii:
- self.result = {'encoding': 'ascii', 'confidence': 1.0}
- return self.result
-
- if self._mInputState == eHighbyte:
- proberConfidence = None
- maxProberConfidence = 0.0
- maxProber = None
- for prober in self._mCharSetProbers:
- if not prober:
- continue
- proberConfidence = prober.get_confidence()
- if proberConfidence > maxProberConfidence:
- maxProberConfidence = proberConfidence
- maxProber = prober
- if maxProber and (maxProberConfidence > MINIMUM_THRESHOLD):
- self.result = {'encoding': maxProber.get_charset_name(),
- 'confidence': maxProber.get_confidence()}
- return self.result
-
- if constants._debug:
- sys.stderr.write('no probers hit minimum threshhold\n')
- for prober in self._mCharSetProbers[0].mProbers:
- if not prober:
- continue
- sys.stderr.write('%s confidence = %s\n' %
- (prober.get_charset_name(),
- prober.get_confidence()))
diff --git a/vendor/requests/packages/chardet/utf8prober.py b/vendor/requests/packages/chardet/utf8prober.py
deleted file mode 100644
index 1c0bb5d8..00000000
--- a/vendor/requests/packages/chardet/utf8prober.py
+++ /dev/null
@@ -1,76 +0,0 @@
-######################## BEGIN LICENSE BLOCK ########################
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Pilgrim - port to Python
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-######################### END LICENSE BLOCK #########################
-
-from . import constants
-from .charsetprober import CharSetProber
-from .codingstatemachine import CodingStateMachine
-from .mbcssm import UTF8SMModel
-
-ONE_CHAR_PROB = 0.5
-
-
-class UTF8Prober(CharSetProber):
- def __init__(self):
- CharSetProber.__init__(self)
- self._mCodingSM = CodingStateMachine(UTF8SMModel)
- self.reset()
-
- def reset(self):
- CharSetProber.reset(self)
- self._mCodingSM.reset()
- self._mNumOfMBChar = 0
-
- def get_charset_name(self):
- return "utf-8"
-
- def feed(self, aBuf):
- for c in aBuf:
- codingState = self._mCodingSM.next_state(c)
- if codingState == constants.eError:
- self._mState = constants.eNotMe
- break
- elif codingState == constants.eItsMe:
- self._mState = constants.eFoundIt
- break
- elif codingState == constants.eStart:
- if self._mCodingSM.get_current_charlen() >= 2:
- self._mNumOfMBChar += 1
-
- if self.get_state() == constants.eDetecting:
- if self.get_confidence() > constants.SHORTCUT_THRESHOLD:
- self._mState = constants.eFoundIt
-
- return self.get_state()
-
- def get_confidence(self):
- unlike = 0.99
- if self._mNumOfMBChar < 6:
- for i in range(0, self._mNumOfMBChar):
- unlike = unlike * ONE_CHAR_PROB
- return 1.0 - unlike
- else:
- return unlike
diff --git a/vendor/requests/packages/urllib3/__init__.py b/vendor/requests/packages/urllib3/__init__.py
deleted file mode 100644
index c3536742..00000000
--- a/vendor/requests/packages/urllib3/__init__.py
+++ /dev/null
@@ -1,96 +0,0 @@
-"""
-urllib3 - Thread-safe connection pooling and re-using.
-"""
-
-from __future__ import absolute_import
-import warnings
-
-from .connectionpool import (
- HTTPConnectionPool,
- HTTPSConnectionPool,
- connection_from_url
-)
-
-from . import exceptions
-from .filepost import encode_multipart_formdata
-from .poolmanager import PoolManager, ProxyManager, proxy_from_url
-from .response import HTTPResponse
-from .util.request import make_headers
-from .util.url import get_host
-from .util.timeout import Timeout
-from .util.retry import Retry
-
-
-# Set default logging handler to avoid "No handler found" warnings.
-import logging
-try: # Python 2.7+
- from logging import NullHandler
-except ImportError:
- class NullHandler(logging.Handler):
- def emit(self, record):
- pass
-
-__author__ = 'Andrey Petrov (andrey.petrov@shazow.net)'
-__license__ = 'MIT'
-__version__ = '1.16'
-
-__all__ = (
- 'HTTPConnectionPool',
- 'HTTPSConnectionPool',
- 'PoolManager',
- 'ProxyManager',
- 'HTTPResponse',
- 'Retry',
- 'Timeout',
- 'add_stderr_logger',
- 'connection_from_url',
- 'disable_warnings',
- 'encode_multipart_formdata',
- 'get_host',
- 'make_headers',
- 'proxy_from_url',
-)
-
-logging.getLogger(__name__).addHandler(NullHandler())
-
-
-def add_stderr_logger(level=logging.DEBUG):
- """
- Helper for quickly adding a StreamHandler to the logger. Useful for
- debugging.
-
- Returns the handler after adding it.
- """
- # This method needs to be in this __init__.py to get the __name__ correct
- # even if urllib3 is vendored within another package.
- logger = logging.getLogger(__name__)
- handler = logging.StreamHandler()
- handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s'))
- logger.addHandler(handler)
- logger.setLevel(level)
- logger.debug('Added a stderr logging handler to logger: %s', __name__)
- return handler
-
-# ... Clean up.
-del NullHandler
-
-
-# All warning filters *must* be appended unless you're really certain that they
-# shouldn't be: otherwise, it's very hard for users to use most Python
-# mechanisms to silence them.
-# SecurityWarning's always go off by default.
-warnings.simplefilter('always', exceptions.SecurityWarning, append=True)
-# SubjectAltNameWarning's should go off once per host
-warnings.simplefilter('default', exceptions.SubjectAltNameWarning, append=True)
-# InsecurePlatformWarning's don't vary between requests, so we keep it default.
-warnings.simplefilter('default', exceptions.InsecurePlatformWarning,
- append=True)
-# SNIMissingWarnings should go off only once.
-warnings.simplefilter('default', exceptions.SNIMissingWarning, append=True)
-
-
-def disable_warnings(category=exceptions.HTTPWarning):
- """
- Helper for quickly disabling all urllib3 warnings.
- """
- warnings.simplefilter('ignore', category)
diff --git a/vendor/requests/packages/urllib3/_collections.py b/vendor/requests/packages/urllib3/_collections.py
deleted file mode 100644
index 77cee017..00000000
--- a/vendor/requests/packages/urllib3/_collections.py
+++ /dev/null
@@ -1,324 +0,0 @@
-from __future__ import absolute_import
-from collections import Mapping, MutableMapping
-try:
- from threading import RLock
-except ImportError: # Platform-specific: No threads available
- class RLock:
- def __enter__(self):
- pass
-
- def __exit__(self, exc_type, exc_value, traceback):
- pass
-
-
-try: # Python 2.7+
- from collections import OrderedDict
-except ImportError:
- from .packages.ordered_dict import OrderedDict
-from .packages.six import iterkeys, itervalues, PY3
-
-
-__all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict']
-
-
-_Null = object()
-
-
-class RecentlyUsedContainer(MutableMapping):
- """
- Provides a thread-safe dict-like container which maintains up to
- ``maxsize`` keys while throwing away the least-recently-used keys beyond
- ``maxsize``.
-
- :param maxsize:
- Maximum number of recent elements to retain.
-
- :param dispose_func:
- Every time an item is evicted from the container,
- ``dispose_func(value)`` is called. Callback which will get called
- """
-
- ContainerCls = OrderedDict
-
- def __init__(self, maxsize=10, dispose_func=None):
- self._maxsize = maxsize
- self.dispose_func = dispose_func
-
- self._container = self.ContainerCls()
- self.lock = RLock()
-
- def __getitem__(self, key):
- # Re-insert the item, moving it to the end of the eviction line.
- with self.lock:
- item = self._container.pop(key)
- self._container[key] = item
- return item
-
- def __setitem__(self, key, value):
- evicted_value = _Null
- with self.lock:
- # Possibly evict the existing value of 'key'
- evicted_value = self._container.get(key, _Null)
- self._container[key] = value
-
- # If we didn't evict an existing value, we might have to evict the
- # least recently used item from the beginning of the container.
- if len(self._container) > self._maxsize:
- _key, evicted_value = self._container.popitem(last=False)
-
- if self.dispose_func and evicted_value is not _Null:
- self.dispose_func(evicted_value)
-
- def __delitem__(self, key):
- with self.lock:
- value = self._container.pop(key)
-
- if self.dispose_func:
- self.dispose_func(value)
-
- def __len__(self):
- with self.lock:
- return len(self._container)
-
- def __iter__(self):
- raise NotImplementedError('Iteration over this class is unlikely to be threadsafe.')
-
- def clear(self):
- with self.lock:
- # Copy pointers to all values, then wipe the mapping
- values = list(itervalues(self._container))
- self._container.clear()
-
- if self.dispose_func:
- for value in values:
- self.dispose_func(value)
-
- def keys(self):
- with self.lock:
- return list(iterkeys(self._container))
-
-
-class HTTPHeaderDict(MutableMapping):
- """
- :param headers:
- An iterable of field-value pairs. Must not contain multiple field names
- when compared case-insensitively.
-
- :param kwargs:
- Additional field-value pairs to pass in to ``dict.update``.
-
- A ``dict`` like container for storing HTTP Headers.
-
- Field names are stored and compared case-insensitively in compliance with
- RFC 7230. Iteration provides the first case-sensitive key seen for each
- case-insensitive pair.
-
- Using ``__setitem__`` syntax overwrites fields that compare equal
- case-insensitively in order to maintain ``dict``'s api. For fields that
- compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
- in a loop.
-
- If multiple fields that are equal case-insensitively are passed to the
- constructor or ``.update``, the behavior is undefined and some will be
- lost.
-
- >>> headers = HTTPHeaderDict()
- >>> headers.add('Set-Cookie', 'foo=bar')
- >>> headers.add('set-cookie', 'baz=quxx')
- >>> headers['content-length'] = '7'
- >>> headers['SET-cookie']
- 'foo=bar, baz=quxx'
- >>> headers['Content-Length']
- '7'
- """
-
- def __init__(self, headers=None, **kwargs):
- super(HTTPHeaderDict, self).__init__()
- self._container = OrderedDict()
- if headers is not None:
- if isinstance(headers, HTTPHeaderDict):
- self._copy_from(headers)
- else:
- self.extend(headers)
- if kwargs:
- self.extend(kwargs)
-
- def __setitem__(self, key, val):
- self._container[key.lower()] = (key, val)
- return self._container[key.lower()]
-
- def __getitem__(self, key):
- val = self._container[key.lower()]
- return ', '.join(val[1:])
-
- def __delitem__(self, key):
- del self._container[key.lower()]
-
- def __contains__(self, key):
- return key.lower() in self._container
-
- def __eq__(self, other):
- if not isinstance(other, Mapping) and not hasattr(other, 'keys'):
- return False
- if not isinstance(other, type(self)):
- other = type(self)(other)
- return (dict((k.lower(), v) for k, v in self.itermerged()) ==
- dict((k.lower(), v) for k, v in other.itermerged()))
-
- def __ne__(self, other):
- return not self.__eq__(other)
-
- if not PY3: # Python 2
- iterkeys = MutableMapping.iterkeys
- itervalues = MutableMapping.itervalues
-
- __marker = object()
-
- def __len__(self):
- return len(self._container)
-
- def __iter__(self):
- # Only provide the originally cased names
- for vals in self._container.values():
- yield vals[0]
-
- def pop(self, key, default=__marker):
- '''D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
- If key is not found, d is returned if given, otherwise KeyError is raised.
- '''
- # Using the MutableMapping function directly fails due to the private marker.
- # Using ordinary dict.pop would expose the internal structures.
- # So let's reinvent the wheel.
- try:
- value = self[key]
- except KeyError:
- if default is self.__marker:
- raise
- return default
- else:
- del self[key]
- return value
-
- def discard(self, key):
- try:
- del self[key]
- except KeyError:
- pass
-
- def add(self, key, val):
- """Adds a (name, value) pair, doesn't overwrite the value if it already
- exists.
-
- >>> headers = HTTPHeaderDict(foo='bar')
- >>> headers.add('Foo', 'baz')
- >>> headers['foo']
- 'bar, baz'
- """
- key_lower = key.lower()
- new_vals = key, val
- # Keep the common case aka no item present as fast as possible
- vals = self._container.setdefault(key_lower, new_vals)
- if new_vals is not vals:
- # new_vals was not inserted, as there was a previous one
- if isinstance(vals, list):
- # If already several items got inserted, we have a list
- vals.append(val)
- else:
- # vals should be a tuple then, i.e. only one item so far
- # Need to convert the tuple to list for further extension
- self._container[key_lower] = [vals[0], vals[1], val]
-
- def extend(self, *args, **kwargs):
- """Generic import function for any type of header-like object.
- Adapted version of MutableMapping.update in order to insert items
- with self.add instead of self.__setitem__
- """
- if len(args) > 1:
- raise TypeError("extend() takes at most 1 positional "
- "arguments ({0} given)".format(len(args)))
- other = args[0] if len(args) >= 1 else ()
-
- if isinstance(other, HTTPHeaderDict):
- for key, val in other.iteritems():
- self.add(key, val)
- elif isinstance(other, Mapping):
- for key in other:
- self.add(key, other[key])
- elif hasattr(other, "keys"):
- for key in other.keys():
- self.add(key, other[key])
- else:
- for key, value in other:
- self.add(key, value)
-
- for key, value in kwargs.items():
- self.add(key, value)
-
- def getlist(self, key):
- """Returns a list of all the values for the named field. Returns an
- empty list if the key doesn't exist."""
- try:
- vals = self._container[key.lower()]
- except KeyError:
- return []
- else:
- if isinstance(vals, tuple):
- return [vals[1]]
- else:
- return vals[1:]
-
- # Backwards compatibility for httplib
- getheaders = getlist
- getallmatchingheaders = getlist
- iget = getlist
-
- def __repr__(self):
- return "%s(%s)" % (type(self).__name__, dict(self.itermerged()))
-
- def _copy_from(self, other):
- for key in other:
- val = other.getlist(key)
- if isinstance(val, list):
- # Don't need to convert tuples
- val = list(val)
- self._container[key.lower()] = [key] + val
-
- def copy(self):
- clone = type(self)()
- clone._copy_from(self)
- return clone
-
- def iteritems(self):
- """Iterate over all header lines, including duplicate ones."""
- for key in self:
- vals = self._container[key.lower()]
- for val in vals[1:]:
- yield vals[0], val
-
- def itermerged(self):
- """Iterate over all headers, merging duplicate ones together."""
- for key in self:
- val = self._container[key.lower()]
- yield val[0], ', '.join(val[1:])
-
- def items(self):
- return list(self.iteritems())
-
- @classmethod
- def from_httplib(cls, message): # Python 2
- """Read headers from a Python 2 httplib message object."""
- # python2.7 does not expose a proper API for exporting multiheaders
- # efficiently. This function re-reads raw lines from the message
- # object and extracts the multiheaders properly.
- headers = []
-
- for line in message.headers:
- if line.startswith((' ', '\t')):
- key, value = headers[-1]
- headers[-1] = (key, value + '\r\n' + line.rstrip())
- continue
-
- key, value = line.split(':', 1)
- headers.append((key, value.strip()))
-
- return cls(headers)
diff --git a/vendor/requests/packages/urllib3/connection.py b/vendor/requests/packages/urllib3/connection.py
deleted file mode 100644
index 5ce00804..00000000
--- a/vendor/requests/packages/urllib3/connection.py
+++ /dev/null
@@ -1,330 +0,0 @@
-from __future__ import absolute_import
-import datetime
-import logging
-import os
-import sys
-import socket
-from socket import error as SocketError, timeout as SocketTimeout
-import warnings
-from .packages import six
-
-try: # Python 3
- from http.client import HTTPConnection as _HTTPConnection
- from http.client import HTTPException # noqa: unused in this module
-except ImportError:
- from httplib import HTTPConnection as _HTTPConnection
- from httplib import HTTPException # noqa: unused in this module
-
-try: # Compiled with SSL?
- import ssl
- BaseSSLError = ssl.SSLError
-except (ImportError, AttributeError): # Platform-specific: No SSL.
- ssl = None
-
- class BaseSSLError(BaseException):
- pass
-
-
-try: # Python 3:
- # Not a no-op, we're adding this to the namespace so it can be imported.
- ConnectionError = ConnectionError
-except NameError: # Python 2:
- class ConnectionError(Exception):
- pass
-
-
-from .exceptions import (
- NewConnectionError,
- ConnectTimeoutError,
- SubjectAltNameWarning,
- SystemTimeWarning,
-)
-from .packages.ssl_match_hostname import match_hostname, CertificateError
-
-from .util.ssl_ import (
- resolve_cert_reqs,
- resolve_ssl_version,
- ssl_wrap_socket,
- assert_fingerprint,
-)
-
-
-from .util import connection
-
-from ._collections import HTTPHeaderDict
-
-log = logging.getLogger(__name__)
-
-port_by_scheme = {
- 'http': 80,
- 'https': 443,
-}
-
-RECENT_DATE = datetime.date(2014, 1, 1)
-
-
-class DummyConnection(object):
- """Used to detect a failed ConnectionCls import."""
- pass
-
-
-class HTTPConnection(_HTTPConnection, object):
- """
- Based on httplib.HTTPConnection but provides an extra constructor
- backwards-compatibility layer between older and newer Pythons.
-
- Additional keyword parameters are used to configure attributes of the connection.
- Accepted parameters include:
-
- - ``strict``: See the documentation on :class:`urllib3.connectionpool.HTTPConnectionPool`
- - ``source_address``: Set the source address for the current connection.
-
- .. note:: This is ignored for Python 2.6. It is only applied for 2.7 and 3.x
-
- - ``socket_options``: Set specific options on the underlying socket. If not specified, then
- defaults are loaded from ``HTTPConnection.default_socket_options`` which includes disabling
- Nagle's algorithm (sets TCP_NODELAY to 1) unless the connection is behind a proxy.
-
- For example, if you wish to enable TCP Keep Alive in addition to the defaults,
- you might pass::
-
- HTTPConnection.default_socket_options + [
- (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1),
- ]
-
- Or you may want to disable the defaults by passing an empty list (e.g., ``[]``).
- """
-
- default_port = port_by_scheme['http']
-
- #: Disable Nagle's algorithm by default.
- #: ``[(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]``
- default_socket_options = [(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]
-
- #: Whether this connection verifies the host's certificate.
- is_verified = False
-
- def __init__(self, *args, **kw):
- if six.PY3: # Python 3
- kw.pop('strict', None)
-
- # Pre-set source_address in case we have an older Python like 2.6.
- self.source_address = kw.get('source_address')
-
- if sys.version_info < (2, 7): # Python 2.6
- # _HTTPConnection on Python 2.6 will balk at this keyword arg, but
- # not newer versions. We can still use it when creating a
- # connection though, so we pop it *after* we have saved it as
- # self.source_address.
- kw.pop('source_address', None)
-
- #: The socket options provided by the user. If no options are
- #: provided, we use the default options.
- self.socket_options = kw.pop('socket_options', self.default_socket_options)
-
- # Superclass also sets self.source_address in Python 2.7+.
- _HTTPConnection.__init__(self, *args, **kw)
-
- def _new_conn(self):
- """ Establish a socket connection and set nodelay settings on it.
-
- :return: New socket connection.
- """
- extra_kw = {}
- if self.source_address:
- extra_kw['source_address'] = self.source_address
-
- if self.socket_options:
- extra_kw['socket_options'] = self.socket_options
-
- try:
- conn = connection.create_connection(
- (self.host, self.port), self.timeout, **extra_kw)
-
- except SocketTimeout as e:
- raise ConnectTimeoutError(
- self, "Connection to %s timed out. (connect timeout=%s)" %
- (self.host, self.timeout))
-
- except SocketError as e:
- raise NewConnectionError(
- self, "Failed to establish a new connection: %s" % e)
-
- return conn
-
- def _prepare_conn(self, conn):
- self.sock = conn
- # the _tunnel_host attribute was added in python 2.6.3 (via
- # http://hg.python.org/cpython/rev/0f57b30a152f) so pythons 2.6(0-2) do
- # not have them.
- if getattr(self, '_tunnel_host', None):
- # TODO: Fix tunnel so it doesn't depend on self.sock state.
- self._tunnel()
- # Mark this connection as not reusable
- self.auto_open = 0
-
- def connect(self):
- conn = self._new_conn()
- self._prepare_conn(conn)
-
- def request_chunked(self, method, url, body=None, headers=None):
- """
- Alternative to the common request method, which sends the
- body with chunked encoding and not as one block
- """
- headers = HTTPHeaderDict(headers if headers is not None else {})
- skip_accept_encoding = 'accept-encoding' in headers
- self.putrequest(method, url, skip_accept_encoding=skip_accept_encoding)
- for header, value in headers.items():
- self.putheader(header, value)
- if 'transfer-encoding' not in headers:
- self.putheader('Transfer-Encoding', 'chunked')
- self.endheaders()
-
- if body is not None:
- stringish_types = six.string_types + (six.binary_type,)
- if isinstance(body, stringish_types):
- body = (body,)
- for chunk in body:
- if not chunk:
- continue
- if not isinstance(chunk, six.binary_type):
- chunk = chunk.encode('utf8')
- len_str = hex(len(chunk))[2:]
- self.send(len_str.encode('utf-8'))
- self.send(b'\r\n')
- self.send(chunk)
- self.send(b'\r\n')
-
- # After the if clause, to always have a closed body
- self.send(b'0\r\n\r\n')
-
-
-class HTTPSConnection(HTTPConnection):
- default_port = port_by_scheme['https']
-
- def __init__(self, host, port=None, key_file=None, cert_file=None,
- strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, **kw):
-
- HTTPConnection.__init__(self, host, port, strict=strict,
- timeout=timeout, **kw)
-
- self.key_file = key_file
- self.cert_file = cert_file
-
- # Required property for Google AppEngine 1.9.0 which otherwise causes
- # HTTPS requests to go out as HTTP. (See Issue #356)
- self._protocol = 'https'
-
- def connect(self):
- conn = self._new_conn()
- self._prepare_conn(conn)
- self.sock = ssl.wrap_socket(conn, self.key_file, self.cert_file)
-
-
-class VerifiedHTTPSConnection(HTTPSConnection):
- """
- Based on httplib.HTTPSConnection but wraps the socket with
- SSL certification.
- """
- cert_reqs = None
- ca_certs = None
- ca_cert_dir = None
- ssl_version = None
- assert_fingerprint = None
-
- def set_cert(self, key_file=None, cert_file=None,
- cert_reqs=None, ca_certs=None,
- assert_hostname=None, assert_fingerprint=None,
- ca_cert_dir=None):
-
- if (ca_certs or ca_cert_dir) and cert_reqs is None:
- cert_reqs = 'CERT_REQUIRED'
-
- self.key_file = key_file
- self.cert_file = cert_file
- self.cert_reqs = cert_reqs
- self.assert_hostname = assert_hostname
- self.assert_fingerprint = assert_fingerprint
- self.ca_certs = ca_certs and os.path.expanduser(ca_certs)
- self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir)
-
- def connect(self):
- # Add certificate verification
- conn = self._new_conn()
-
- resolved_cert_reqs = resolve_cert_reqs(self.cert_reqs)
- resolved_ssl_version = resolve_ssl_version(self.ssl_version)
-
- hostname = self.host
- if getattr(self, '_tunnel_host', None):
- # _tunnel_host was added in Python 2.6.3
- # (See: http://hg.python.org/cpython/rev/0f57b30a152f)
-
- self.sock = conn
- # Calls self._set_hostport(), so self.host is
- # self._tunnel_host below.
- self._tunnel()
- # Mark this connection as not reusable
- self.auto_open = 0
-
- # Override the host with the one we're requesting data from.
- hostname = self._tunnel_host
-
- is_time_off = datetime.date.today() < RECENT_DATE
- if is_time_off:
- warnings.warn((
- 'System time is way off (before {0}). This will probably '
- 'lead to SSL verification errors').format(RECENT_DATE),
- SystemTimeWarning
- )
-
- # Wrap socket using verification with the root certs in
- # trusted_root_certs
- self.sock = ssl_wrap_socket(conn, self.key_file, self.cert_file,
- cert_reqs=resolved_cert_reqs,
- ca_certs=self.ca_certs,
- ca_cert_dir=self.ca_cert_dir,
- server_hostname=hostname,
- ssl_version=resolved_ssl_version)
-
- if self.assert_fingerprint:
- assert_fingerprint(self.sock.getpeercert(binary_form=True),
- self.assert_fingerprint)
- elif resolved_cert_reqs != ssl.CERT_NONE \
- and self.assert_hostname is not False:
- cert = self.sock.getpeercert()
- if not cert.get('subjectAltName', ()):
- warnings.warn((
- 'Certificate for {0} has no `subjectAltName`, falling back to check for a '
- '`commonName` for now. This feature is being removed by major browsers and '
- 'deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 '
- 'for details.)'.format(hostname)),
- SubjectAltNameWarning
- )
- _match_hostname(cert, self.assert_hostname or hostname)
-
- self.is_verified = (resolved_cert_reqs == ssl.CERT_REQUIRED or
- self.assert_fingerprint is not None)
-
-
-def _match_hostname(cert, asserted_hostname):
- try:
- match_hostname(cert, asserted_hostname)
- except CertificateError as e:
- log.error(
- 'Certificate did not match expected hostname: %s. '
- 'Certificate: %s', asserted_hostname, cert
- )
- # Add cert to exception and reraise so client code can inspect
- # the cert when catching the exception, if they want to
- e._peer_cert = cert
- raise
-
-
-if ssl:
- # Make a copy for testing.
- UnverifiedHTTPSConnection = HTTPSConnection
- HTTPSConnection = VerifiedHTTPSConnection
-else:
- HTTPSConnection = DummyConnection
diff --git a/vendor/requests/packages/urllib3/connectionpool.py b/vendor/requests/packages/urllib3/connectionpool.py
deleted file mode 100644
index ab634cb4..00000000
--- a/vendor/requests/packages/urllib3/connectionpool.py
+++ /dev/null
@@ -1,866 +0,0 @@
-from __future__ import absolute_import
-import errno
-import logging
-import sys
-import warnings
-
-from socket import error as SocketError, timeout as SocketTimeout
-import socket
-
-try: # Python 3
- from queue import LifoQueue, Empty, Full
-except ImportError:
- from Queue import LifoQueue, Empty, Full
- # Queue is imported for side effects on MS Windows
- import Queue as _unused_module_Queue # noqa: unused
-
-
-from .exceptions import (
- ClosedPoolError,
- ProtocolError,
- EmptyPoolError,
- HeaderParsingError,
- HostChangedError,
- LocationValueError,
- MaxRetryError,
- ProxyError,
- ReadTimeoutError,
- SSLError,
- TimeoutError,
- InsecureRequestWarning,
- NewConnectionError,
-)
-from .packages.ssl_match_hostname import CertificateError
-from .packages import six
-from .connection import (
- port_by_scheme,
- DummyConnection,
- HTTPConnection, HTTPSConnection, VerifiedHTTPSConnection,
- HTTPException, BaseSSLError,
-)
-from .request import RequestMethods
-from .response import HTTPResponse
-
-from .util.connection import is_connection_dropped
-from .util.response import assert_header_parsing
-from .util.retry import Retry
-from .util.timeout import Timeout
-from .util.url import get_host, Url
-
-
-xrange = six.moves.xrange
-
-log = logging.getLogger(__name__)
-
-_Default = object()
-
-
-# Pool objects
-class ConnectionPool(object):
- """
- Base class for all connection pools, such as
- :class:`.HTTPConnectionPool` and :class:`.HTTPSConnectionPool`.
- """
-
- scheme = None
- QueueCls = LifoQueue
-
- def __init__(self, host, port=None):
- if not host:
- raise LocationValueError("No host specified.")
-
- # httplib doesn't like it when we include brackets in ipv6 addresses
- # Specifically, if we include brackets but also pass the port then
- # httplib crazily doubles up the square brackets on the Host header.
- # Instead, we need to make sure we never pass ``None`` as the port.
- # However, for backward compatibility reasons we can't actually
- # *assert* that.
- self.host = host.strip('[]')
- self.port = port
-
- def __str__(self):
- return '%s(host=%r, port=%r)' % (type(self).__name__,
- self.host, self.port)
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.close()
- # Return False to re-raise any potential exceptions
- return False
-
- def close(self):
- """
- Close all pooled connections and disable the pool.
- """
- pass
-
-
-# This is taken from http://hg.python.org/cpython/file/7aaba721ebc0/Lib/socket.py#l252
-_blocking_errnos = set([errno.EAGAIN, errno.EWOULDBLOCK])
-
-
-class HTTPConnectionPool(ConnectionPool, RequestMethods):
- """
- Thread-safe connection pool for one host.
-
- :param host:
- Host used for this HTTP Connection (e.g. "localhost"), passed into
- :class:`httplib.HTTPConnection`.
-
- :param port:
- Port used for this HTTP Connection (None is equivalent to 80), passed
- into :class:`httplib.HTTPConnection`.
-
- :param strict:
- Causes BadStatusLine to be raised if the status line can't be parsed
- as a valid HTTP/1.0 or 1.1 status line, passed into
- :class:`httplib.HTTPConnection`.
-
- .. note::
- Only works in Python 2. This parameter is ignored in Python 3.
-
- :param timeout:
- Socket timeout in seconds for each individual connection. This can
- be a float or integer, which sets the timeout for the HTTP request,
- or an instance of :class:`urllib3.util.Timeout` which gives you more
- fine-grained control over request timeouts. After the constructor has
- been parsed, this is always a `urllib3.util.Timeout` object.
-
- :param maxsize:
- Number of connections to save that can be reused. More than 1 is useful
- in multithreaded situations. If ``block`` is set to False, more
- connections will be created but they will not be saved once they've
- been used.
-
- :param block:
- If set to True, no more than ``maxsize`` connections will be used at
- a time. When no free connections are available, the call will block
- until a connection has been released. This is a useful side effect for
- particular multithreaded situations where one does not want to use more
- than maxsize connections per host to prevent flooding.
-
- :param headers:
- Headers to include with all requests, unless other headers are given
- explicitly.
-
- :param retries:
- Retry configuration to use by default with requests in this pool.
-
- :param _proxy:
- Parsed proxy URL, should not be used directly, instead, see
- :class:`urllib3.connectionpool.ProxyManager`"
-
- :param _proxy_headers:
- A dictionary with proxy headers, should not be used directly,
- instead, see :class:`urllib3.connectionpool.ProxyManager`"
-
- :param \**conn_kw:
- Additional parameters are used to create fresh :class:`urllib3.connection.HTTPConnection`,
- :class:`urllib3.connection.HTTPSConnection` instances.
- """
-
- scheme = 'http'
- ConnectionCls = HTTPConnection
- ResponseCls = HTTPResponse
-
- def __init__(self, host, port=None, strict=False,
- timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, block=False,
- headers=None, retries=None,
- _proxy=None, _proxy_headers=None,
- **conn_kw):
- ConnectionPool.__init__(self, host, port)
- RequestMethods.__init__(self, headers)
-
- self.strict = strict
-
- if not isinstance(timeout, Timeout):
- timeout = Timeout.from_float(timeout)
-
- if retries is None:
- retries = Retry.DEFAULT
-
- self.timeout = timeout
- self.retries = retries
-
- self.pool = self.QueueCls(maxsize)
- self.block = block
-
- self.proxy = _proxy
- self.proxy_headers = _proxy_headers or {}
-
- # Fill the queue up so that doing get() on it will block properly
- for _ in xrange(maxsize):
- self.pool.put(None)
-
- # These are mostly for testing and debugging purposes.
- self.num_connections = 0
- self.num_requests = 0
- self.conn_kw = conn_kw
-
- if self.proxy:
- # Enable Nagle's algorithm for proxies, to avoid packet fragmentation.
- # We cannot know if the user has added default socket options, so we cannot replace the
- # list.
- self.conn_kw.setdefault('socket_options', [])
-
- def _new_conn(self):
- """
- Return a fresh :class:`HTTPConnection`.
- """
- self.num_connections += 1
- log.info("Starting new HTTP connection (%d): %s",
- self.num_connections, self.host)
-
- conn = self.ConnectionCls(host=self.host, port=self.port,
- timeout=self.timeout.connect_timeout,
- strict=self.strict, **self.conn_kw)
- return conn
-
- def _get_conn(self, timeout=None):
- """
- Get a connection. Will return a pooled connection if one is available.
-
- If no connections are available and :prop:`.block` is ``False``, then a
- fresh connection is returned.
-
- :param timeout:
- Seconds to wait before giving up and raising
- :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and
- :prop:`.block` is ``True``.
- """
- conn = None
- try:
- conn = self.pool.get(block=self.block, timeout=timeout)
-
- except AttributeError: # self.pool is None
- raise ClosedPoolError(self, "Pool is closed.")
-
- except Empty:
- if self.block:
- raise EmptyPoolError(self,
- "Pool reached maximum size and no more "
- "connections are allowed.")
- pass # Oh well, we'll create a new connection then
-
- # If this is a persistent connection, check if it got disconnected
- if conn and is_connection_dropped(conn):
- log.info("Resetting dropped connection: %s", self.host)
- conn.close()
- if getattr(conn, 'auto_open', 1) == 0:
- # This is a proxied connection that has been mutated by
- # httplib._tunnel() and cannot be reused (since it would
- # attempt to bypass the proxy)
- conn = None
-
- return conn or self._new_conn()
-
- def _put_conn(self, conn):
- """
- Put a connection back into the pool.
-
- :param conn:
- Connection object for the current host and port as returned by
- :meth:`._new_conn` or :meth:`._get_conn`.
-
- If the pool is already full, the connection is closed and discarded
- because we exceeded maxsize. If connections are discarded frequently,
- then maxsize should be increased.
-
- If the pool is closed, then the connection will be closed and discarded.
- """
- try:
- self.pool.put(conn, block=False)
- return # Everything is dandy, done.
- except AttributeError:
- # self.pool is None.
- pass
- except Full:
- # This should never happen if self.block == True
- log.warning(
- "Connection pool is full, discarding connection: %s",
- self.host)
-
- # Connection never got put back into the pool, close it.
- if conn:
- conn.close()
-
- def _validate_conn(self, conn):
- """
- Called right before a request is made, after the socket is created.
- """
- pass
-
- def _prepare_proxy(self, conn):
- # Nothing to do for HTTP connections.
- pass
-
- def _get_timeout(self, timeout):
- """ Helper that always returns a :class:`urllib3.util.Timeout` """
- if timeout is _Default:
- return self.timeout.clone()
-
- if isinstance(timeout, Timeout):
- return timeout.clone()
- else:
- # User passed us an int/float. This is for backwards compatibility,
- # can be removed later
- return Timeout.from_float(timeout)
-
- def _raise_timeout(self, err, url, timeout_value):
- """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
-
- if isinstance(err, SocketTimeout):
- raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
-
- # See the above comment about EAGAIN in Python 3. In Python 2 we have
- # to specifically catch it and throw the timeout error
- if hasattr(err, 'errno') and err.errno in _blocking_errnos:
- raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
-
- # Catch possible read timeouts thrown as SSL errors. If not the
- # case, rethrow the original. We need to do this because of:
- # http://bugs.python.org/issue10272
- if 'timed out' in str(err) or 'did not complete (read)' in str(err): # Python 2.6
- raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
-
- def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
- **httplib_request_kw):
- """
- Perform a request on a given urllib connection object taken from our
- pool.
-
- :param conn:
- a connection from one of our connection pools
-
- :param timeout:
- Socket timeout in seconds for the request. This can be a
- float or integer, which will set the same timeout value for
- the socket connect and the socket read, or an instance of
- :class:`urllib3.util.Timeout`, which gives you more fine-grained
- control over your timeouts.
- """
- self.num_requests += 1
-
- timeout_obj = self._get_timeout(timeout)
- timeout_obj.start_connect()
- conn.timeout = timeout_obj.connect_timeout
-
- # Trigger any extra validation we need to do.
- try:
- self._validate_conn(conn)
- except (SocketTimeout, BaseSSLError) as e:
- # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
- self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
- raise
-
- # conn.request() calls httplib.*.request, not the method in
- # urllib3.request. It also calls makefile (recv) on the socket.
- if chunked:
- conn.request_chunked(method, url, **httplib_request_kw)
- else:
- conn.request(method, url, **httplib_request_kw)
-
- # Reset the timeout for the recv() on the socket
- read_timeout = timeout_obj.read_timeout
-
- # App Engine doesn't have a sock attr
- if getattr(conn, 'sock', None):
- # In Python 3 socket.py will catch EAGAIN and return None when you
- # try and read into the file pointer created by http.client, which
- # instead raises a BadStatusLine exception. Instead of catching
- # the exception and assuming all BadStatusLine exceptions are read
- # timeouts, check for a zero timeout before making the request.
- if read_timeout == 0:
- raise ReadTimeoutError(
- self, url, "Read timed out. (read timeout=%s)" % read_timeout)
- if read_timeout is Timeout.DEFAULT_TIMEOUT:
- conn.sock.settimeout(socket.getdefaulttimeout())
- else: # None or a value
- conn.sock.settimeout(read_timeout)
-
- # Receive the response from the server
- try:
- try: # Python 2.7, use buffering of HTTP responses
- httplib_response = conn.getresponse(buffering=True)
- except TypeError: # Python 2.6 and older, Python 3
- try:
- httplib_response = conn.getresponse()
- except Exception as e:
- # Remove the TypeError from the exception chain in Python 3;
- # otherwise it looks like a programming error was the cause.
- six.raise_from(e, None)
- except (SocketTimeout, BaseSSLError, SocketError) as e:
- self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
- raise
-
- # AppEngine doesn't have a version attr.
- http_version = getattr(conn, '_http_vsn_str', 'HTTP/?')
- log.debug("\"%s %s %s\" %s %s", method, url, http_version,
- httplib_response.status, httplib_response.length)
-
- try:
- assert_header_parsing(httplib_response.msg)
- except HeaderParsingError as hpe: # Platform-specific: Python 3
- log.warning(
- 'Failed to parse headers (url=%s): %s',
- self._absolute_url(url), hpe, exc_info=True)
-
- return httplib_response
-
- def _absolute_url(self, path):
- return Url(scheme=self.scheme, host=self.host, port=self.port, path=path).url
-
- def close(self):
- """
- Close all pooled connections and disable the pool.
- """
- # Disable access to the pool
- old_pool, self.pool = self.pool, None
-
- try:
- while True:
- conn = old_pool.get(block=False)
- if conn:
- conn.close()
-
- except Empty:
- pass # Done.
-
- def is_same_host(self, url):
- """
- Check if the given ``url`` is a member of the same host as this
- connection pool.
- """
- if url.startswith('/'):
- return True
-
- # TODO: Add optional support for socket.gethostbyname checking.
- scheme, host, port = get_host(url)
-
- # Use explicit default port for comparison when none is given
- if self.port and not port:
- port = port_by_scheme.get(scheme)
- elif not self.port and port == port_by_scheme.get(scheme):
- port = None
-
- return (scheme, host, port) == (self.scheme, self.host, self.port)
-
- def urlopen(self, method, url, body=None, headers=None, retries=None,
- redirect=True, assert_same_host=True, timeout=_Default,
- pool_timeout=None, release_conn=None, chunked=False,
- **response_kw):
- """
- Get a connection from the pool and perform an HTTP request. This is the
- lowest level call for making a request, so you'll need to specify all
- the raw details.
-
- .. note::
-
- More commonly, it's appropriate to use a convenience method provided
- by :class:`.RequestMethods`, such as :meth:`request`.
-
- .. note::
-
- `release_conn` will only behave as expected if
- `preload_content=False` because we want to make
- `preload_content=False` the default behaviour someday soon without
- breaking backwards compatibility.
-
- :param method:
- HTTP request method (such as GET, POST, PUT, etc.)
-
- :param body:
- Data to send in the request body (useful for creating
- POST requests, see HTTPConnectionPool.post_url for
- more convenience).
-
- :param headers:
- Dictionary of custom headers to send, such as User-Agent,
- If-None-Match, etc. If None, pool headers are used. If provided,
- these headers completely replace any pool-specific headers.
-
- :param retries:
- Configure the number of retries to allow before raising a
- :class:`~urllib3.exceptions.MaxRetryError` exception.
-
- Pass ``None`` to retry until you receive a response. Pass a
- :class:`~urllib3.util.retry.Retry` object for fine-grained control
- over different types of retries.
- Pass an integer number to retry connection errors that many times,
- but no other types of errors. Pass zero to never retry.
-
- If ``False``, then retries are disabled and any exception is raised
- immediately. Also, instead of raising a MaxRetryError on redirects,
- the redirect response will be returned.
-
- :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
-
- :param redirect:
- If True, automatically handle redirects (status codes 301, 302,
- 303, 307, 308). Each redirect counts as a retry. Disabling retries
- will disable redirect, too.
-
- :param assert_same_host:
- If ``True``, will make sure that the host of the pool requests is
- consistent else will raise HostChangedError. When False, you can
- use the pool on an HTTP proxy and request foreign hosts.
-
- :param timeout:
- If specified, overrides the default timeout for this one
- request. It may be a float (in seconds) or an instance of
- :class:`urllib3.util.Timeout`.
-
- :param pool_timeout:
- If set and the pool is set to block=True, then this method will
- block for ``pool_timeout`` seconds and raise EmptyPoolError if no
- connection is available within the time period.
-
- :param release_conn:
- If False, then the urlopen call will not release the connection
- back into the pool once a response is received (but will release if
- you read the entire contents of the response such as when
- `preload_content=True`). This is useful if you're not preloading
- the response's content immediately. You will need to call
- ``r.release_conn()`` on the response ``r`` to return the connection
- back into the pool. If None, it takes the value of
- ``response_kw.get('preload_content', True)``.
-
- :param chunked:
- If True, urllib3 will send the body using chunked transfer
- encoding. Otherwise, urllib3 will send the body using the standard
- content-length form. Defaults to False.
-
- :param \**response_kw:
- Additional parameters are passed to
- :meth:`urllib3.response.HTTPResponse.from_httplib`
- """
- if headers is None:
- headers = self.headers
-
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
-
- if release_conn is None:
- release_conn = response_kw.get('preload_content', True)
-
- # Check host
- if assert_same_host and not self.is_same_host(url):
- raise HostChangedError(self, url, retries)
-
- conn = None
-
- # Track whether `conn` needs to be released before
- # returning/raising/recursing. Update this variable if necessary, and
- # leave `release_conn` constant throughout the function. That way, if
- # the function recurses, the original value of `release_conn` will be
- # passed down into the recursive call, and its value will be respected.
- #
- # See issue #651 [1] for details.
- #
- # [1]
- release_this_conn = release_conn
-
- # Merge the proxy headers. Only do this in HTTP. We have to copy the
- # headers dict so we can safely change it without those changes being
- # reflected in anyone else's copy.
- if self.scheme == 'http':
- headers = headers.copy()
- headers.update(self.proxy_headers)
-
- # Must keep the exception bound to a separate variable or else Python 3
- # complains about UnboundLocalError.
- err = None
-
- # Keep track of whether we cleanly exited the except block. This
- # ensures we do proper cleanup in finally.
- clean_exit = False
-
- try:
- # Request a connection from the queue.
- timeout_obj = self._get_timeout(timeout)
- conn = self._get_conn(timeout=pool_timeout)
-
- conn.timeout = timeout_obj.connect_timeout
-
- is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
- if is_new_proxy_conn:
- self._prepare_proxy(conn)
-
- # Make the request on the httplib connection object.
- httplib_response = self._make_request(conn, method, url,
- timeout=timeout_obj,
- body=body, headers=headers,
- chunked=chunked)
-
- # If we're going to release the connection in ``finally:``, then
- # the response doesn't need to know about the connection. Otherwise
- # it will also try to release it and we'll have a double-release
- # mess.
- response_conn = conn if not release_conn else None
-
- # Import httplib's response into our own wrapper object
- response = self.ResponseCls.from_httplib(httplib_response,
- pool=self,
- connection=response_conn,
- **response_kw)
-
- # Everything went great!
- clean_exit = True
-
- except Empty:
- # Timed out by queue.
- raise EmptyPoolError(self, "No pool connections are available.")
-
- except (BaseSSLError, CertificateError) as e:
- # Close the connection. If a connection is reused on which there
- # was a Certificate error, the next request will certainly raise
- # another Certificate error.
- clean_exit = False
- raise SSLError(e)
-
- except SSLError:
- # Treat SSLError separately from BaseSSLError to preserve
- # traceback.
- clean_exit = False
- raise
-
- except (TimeoutError, HTTPException, SocketError, ProtocolError) as e:
- # Discard the connection for these exceptions. It will be
- # be replaced during the next _get_conn() call.
- clean_exit = False
-
- if isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
- e = ProxyError('Cannot connect to proxy.', e)
- elif isinstance(e, (SocketError, HTTPException)):
- e = ProtocolError('Connection aborted.', e)
-
- retries = retries.increment(method, url, error=e, _pool=self,
- _stacktrace=sys.exc_info()[2])
- retries.sleep()
-
- # Keep track of the error for the retry warning.
- err = e
-
- finally:
- if not clean_exit:
- # We hit some kind of exception, handled or otherwise. We need
- # to throw the connection away unless explicitly told not to.
- # Close the connection, set the variable to None, and make sure
- # we put the None back in the pool to avoid leaking it.
- conn = conn and conn.close()
- release_this_conn = True
-
- if release_this_conn:
- # Put the connection back to be reused. If the connection is
- # expired then it will be None, which will get replaced with a
- # fresh connection during _get_conn.
- self._put_conn(conn)
-
- if not conn:
- # Try again
- log.warning("Retrying (%r) after connection "
- "broken by '%r': %s", retries, err, url)
- return self.urlopen(method, url, body, headers, retries,
- redirect, assert_same_host,
- timeout=timeout, pool_timeout=pool_timeout,
- release_conn=release_conn, **response_kw)
-
- # Handle redirect?
- redirect_location = redirect and response.get_redirect_location()
- if redirect_location:
- if response.status == 303:
- method = 'GET'
-
- try:
- retries = retries.increment(method, url, response=response, _pool=self)
- except MaxRetryError:
- if retries.raise_on_redirect:
- # Release the connection for this response, since we're not
- # returning it to be released manually.
- response.release_conn()
- raise
- return response
-
- log.info("Redirecting %s -> %s", url, redirect_location)
- return self.urlopen(
- method, redirect_location, body, headers,
- retries=retries, redirect=redirect,
- assert_same_host=assert_same_host,
- timeout=timeout, pool_timeout=pool_timeout,
- release_conn=release_conn, **response_kw)
-
- # Check if we should retry the HTTP response.
- if retries.is_forced_retry(method, status_code=response.status):
- try:
- retries = retries.increment(method, url, response=response, _pool=self)
- except MaxRetryError:
- if retries.raise_on_status:
- # Release the connection for this response, since we're not
- # returning it to be released manually.
- response.release_conn()
- raise
- return response
- retries.sleep()
- log.info("Forced retry: %s", url)
- return self.urlopen(
- method, url, body, headers,
- retries=retries, redirect=redirect,
- assert_same_host=assert_same_host,
- timeout=timeout, pool_timeout=pool_timeout,
- release_conn=release_conn, **response_kw)
-
- return response
-
-
-class HTTPSConnectionPool(HTTPConnectionPool):
- """
- Same as :class:`.HTTPConnectionPool`, but HTTPS.
-
- When Python is compiled with the :mod:`ssl` module, then
- :class:`.VerifiedHTTPSConnection` is used, which *can* verify certificates,
- instead of :class:`.HTTPSConnection`.
-
- :class:`.VerifiedHTTPSConnection` uses one of ``assert_fingerprint``,
- ``assert_hostname`` and ``host`` in this order to verify connections.
- If ``assert_hostname`` is False, no verification is done.
-
- The ``key_file``, ``cert_file``, ``cert_reqs``, ``ca_certs``,
- ``ca_cert_dir``, and ``ssl_version`` are only used if :mod:`ssl` is
- available and are fed into :meth:`urllib3.util.ssl_wrap_socket` to upgrade
- the connection socket into an SSL socket.
- """
-
- scheme = 'https'
- ConnectionCls = HTTPSConnection
-
- def __init__(self, host, port=None,
- strict=False, timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1,
- block=False, headers=None, retries=None,
- _proxy=None, _proxy_headers=None,
- key_file=None, cert_file=None, cert_reqs=None,
- ca_certs=None, ssl_version=None,
- assert_hostname=None, assert_fingerprint=None,
- ca_cert_dir=None, **conn_kw):
-
- HTTPConnectionPool.__init__(self, host, port, strict, timeout, maxsize,
- block, headers, retries, _proxy, _proxy_headers,
- **conn_kw)
-
- if ca_certs and cert_reqs is None:
- cert_reqs = 'CERT_REQUIRED'
-
- self.key_file = key_file
- self.cert_file = cert_file
- self.cert_reqs = cert_reqs
- self.ca_certs = ca_certs
- self.ca_cert_dir = ca_cert_dir
- self.ssl_version = ssl_version
- self.assert_hostname = assert_hostname
- self.assert_fingerprint = assert_fingerprint
-
- def _prepare_conn(self, conn):
- """
- Prepare the ``connection`` for :meth:`urllib3.util.ssl_wrap_socket`
- and establish the tunnel if proxy is used.
- """
-
- if isinstance(conn, VerifiedHTTPSConnection):
- conn.set_cert(key_file=self.key_file,
- cert_file=self.cert_file,
- cert_reqs=self.cert_reqs,
- ca_certs=self.ca_certs,
- ca_cert_dir=self.ca_cert_dir,
- assert_hostname=self.assert_hostname,
- assert_fingerprint=self.assert_fingerprint)
- conn.ssl_version = self.ssl_version
-
- return conn
-
- def _prepare_proxy(self, conn):
- """
- Establish tunnel connection early, because otherwise httplib
- would improperly set Host: header to proxy's IP:port.
- """
- # Python 2.7+
- try:
- set_tunnel = conn.set_tunnel
- except AttributeError: # Platform-specific: Python 2.6
- set_tunnel = conn._set_tunnel
-
- if sys.version_info <= (2, 6, 4) and not self.proxy_headers: # Python 2.6.4 and older
- set_tunnel(self.host, self.port)
- else:
- set_tunnel(self.host, self.port, self.proxy_headers)
-
- conn.connect()
-
- def _new_conn(self):
- """
- Return a fresh :class:`httplib.HTTPSConnection`.
- """
- self.num_connections += 1
- log.info("Starting new HTTPS connection (%d): %s",
- self.num_connections, self.host)
-
- if not self.ConnectionCls or self.ConnectionCls is DummyConnection:
- raise SSLError("Can't connect to HTTPS URL because the SSL "
- "module is not available.")
-
- actual_host = self.host
- actual_port = self.port
- if self.proxy is not None:
- actual_host = self.proxy.host
- actual_port = self.proxy.port
-
- conn = self.ConnectionCls(host=actual_host, port=actual_port,
- timeout=self.timeout.connect_timeout,
- strict=self.strict, **self.conn_kw)
-
- return self._prepare_conn(conn)
-
- def _validate_conn(self, conn):
- """
- Called right before a request is made, after the socket is created.
- """
- super(HTTPSConnectionPool, self)._validate_conn(conn)
-
- # Force connect early to allow us to validate the connection.
- if not getattr(conn, 'sock', None): # AppEngine might not have `.sock`
- conn.connect()
-
- if not conn.is_verified:
- warnings.warn((
- 'Unverified HTTPS request is being made. '
- 'Adding certificate verification is strongly advised. See: '
- 'https://urllib3.readthedocs.io/en/latest/security.html'),
- InsecureRequestWarning)
-
-
-def connection_from_url(url, **kw):
- """
- Given a url, return an :class:`.ConnectionPool` instance of its host.
-
- This is a shortcut for not having to parse out the scheme, host, and port
- of the url before creating an :class:`.ConnectionPool` instance.
-
- :param url:
- Absolute URL string that must include the scheme. Port is optional.
-
- :param \**kw:
- Passes additional parameters to the constructor of the appropriate
- :class:`.ConnectionPool`. Useful for specifying things like
- timeout, maxsize, headers, etc.
-
- Example::
-
- >>> conn = connection_from_url('http://google.com/')
- >>> r = conn.request('GET', '/')
- """
- scheme, host, port = get_host(url)
- port = port or port_by_scheme.get(scheme, 80)
- if scheme == 'https':
- return HTTPSConnectionPool(host, port=port, **kw)
- else:
- return HTTPConnectionPool(host, port=port, **kw)
diff --git a/vendor/requests/packages/urllib3/contrib/__init__.py b/vendor/requests/packages/urllib3/contrib/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/requests/packages/urllib3/contrib/appengine.py b/vendor/requests/packages/urllib3/contrib/appengine.py
deleted file mode 100644
index 1579476c..00000000
--- a/vendor/requests/packages/urllib3/contrib/appengine.py
+++ /dev/null
@@ -1,231 +0,0 @@
-from __future__ import absolute_import
-import logging
-import os
-import warnings
-
-from ..exceptions import (
- HTTPError,
- HTTPWarning,
- MaxRetryError,
- ProtocolError,
- TimeoutError,
- SSLError
-)
-
-from ..packages.six import BytesIO
-from ..request import RequestMethods
-from ..response import HTTPResponse
-from ..util.timeout import Timeout
-from ..util.retry import Retry
-
-try:
- from google.appengine.api import urlfetch
-except ImportError:
- urlfetch = None
-
-
-log = logging.getLogger(__name__)
-
-
-class AppEnginePlatformWarning(HTTPWarning):
- pass
-
-
-class AppEnginePlatformError(HTTPError):
- pass
-
-
-class AppEngineManager(RequestMethods):
- """
- Connection manager for Google App Engine sandbox applications.
-
- This manager uses the URLFetch service directly instead of using the
- emulated httplib, and is subject to URLFetch limitations as described in
- the App Engine documentation here:
-
- https://cloud.google.com/appengine/docs/python/urlfetch
-
- Notably it will raise an AppEnginePlatformError if:
- * URLFetch is not available.
- * If you attempt to use this on GAEv2 (Managed VMs), as full socket
- support is available.
- * If a request size is more than 10 megabytes.
- * If a response size is more than 32 megabtyes.
- * If you use an unsupported request method such as OPTIONS.
-
- Beyond those cases, it will raise normal urllib3 errors.
- """
-
- def __init__(self, headers=None, retries=None, validate_certificate=True):
- if not urlfetch:
- raise AppEnginePlatformError(
- "URLFetch is not available in this environment.")
-
- if is_prod_appengine_mvms():
- raise AppEnginePlatformError(
- "Use normal urllib3.PoolManager instead of AppEngineManager"
- "on Managed VMs, as using URLFetch is not necessary in "
- "this environment.")
-
- warnings.warn(
- "urllib3 is using URLFetch on Google App Engine sandbox instead "
- "of sockets. To use sockets directly instead of URLFetch see "
- "https://urllib3.readthedocs.io/en/latest/contrib.html.",
- AppEnginePlatformWarning)
-
- RequestMethods.__init__(self, headers)
- self.validate_certificate = validate_certificate
-
- self.retries = retries or Retry.DEFAULT
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- # Return False to re-raise any potential exceptions
- return False
-
- def urlopen(self, method, url, body=None, headers=None,
- retries=None, redirect=True, timeout=Timeout.DEFAULT_TIMEOUT,
- **response_kw):
-
- retries = self._get_retries(retries, redirect)
-
- try:
- response = urlfetch.fetch(
- url,
- payload=body,
- method=method,
- headers=headers or {},
- allow_truncated=False,
- follow_redirects=(
- redirect and
- retries.redirect != 0 and
- retries.total),
- deadline=self._get_absolute_timeout(timeout),
- validate_certificate=self.validate_certificate,
- )
- except urlfetch.DeadlineExceededError as e:
- raise TimeoutError(self, e)
-
- except urlfetch.InvalidURLError as e:
- if 'too large' in str(e):
- raise AppEnginePlatformError(
- "URLFetch request too large, URLFetch only "
- "supports requests up to 10mb in size.", e)
- raise ProtocolError(e)
-
- except urlfetch.DownloadError as e:
- if 'Too many redirects' in str(e):
- raise MaxRetryError(self, url, reason=e)
- raise ProtocolError(e)
-
- except urlfetch.ResponseTooLargeError as e:
- raise AppEnginePlatformError(
- "URLFetch response too large, URLFetch only supports"
- "responses up to 32mb in size.", e)
-
- except urlfetch.SSLCertificateError as e:
- raise SSLError(e)
-
- except urlfetch.InvalidMethodError as e:
- raise AppEnginePlatformError(
- "URLFetch does not support method: %s" % method, e)
-
- http_response = self._urlfetch_response_to_http_response(
- response, **response_kw)
-
- # Check for redirect response
- if (http_response.get_redirect_location() and
- retries.raise_on_redirect and redirect):
- raise MaxRetryError(self, url, "too many redirects")
-
- # Check if we should retry the HTTP response.
- if retries.is_forced_retry(method, status_code=http_response.status):
- retries = retries.increment(
- method, url, response=http_response, _pool=self)
- log.info("Forced retry: %s", url)
- retries.sleep()
- return self.urlopen(
- method, url,
- body=body, headers=headers,
- retries=retries, redirect=redirect,
- timeout=timeout, **response_kw)
-
- return http_response
-
- def _urlfetch_response_to_http_response(self, urlfetch_resp, **response_kw):
-
- if is_prod_appengine():
- # Production GAE handles deflate encoding automatically, but does
- # not remove the encoding header.
- content_encoding = urlfetch_resp.headers.get('content-encoding')
-
- if content_encoding == 'deflate':
- del urlfetch_resp.headers['content-encoding']
-
- transfer_encoding = urlfetch_resp.headers.get('transfer-encoding')
- # We have a full response's content,
- # so let's make sure we don't report ourselves as chunked data.
- if transfer_encoding == 'chunked':
- encodings = transfer_encoding.split(",")
- encodings.remove('chunked')
- urlfetch_resp.headers['transfer-encoding'] = ','.join(encodings)
-
- return HTTPResponse(
- # In order for decoding to work, we must present the content as
- # a file-like object.
- body=BytesIO(urlfetch_resp.content),
- headers=urlfetch_resp.headers,
- status=urlfetch_resp.status_code,
- **response_kw
- )
-
- def _get_absolute_timeout(self, timeout):
- if timeout is Timeout.DEFAULT_TIMEOUT:
- return 5 # 5s is the default timeout for URLFetch.
- if isinstance(timeout, Timeout):
- if timeout._read is not timeout._connect:
- warnings.warn(
- "URLFetch does not support granular timeout settings, "
- "reverting to total timeout.", AppEnginePlatformWarning)
- return timeout.total
- return timeout
-
- def _get_retries(self, retries, redirect):
- if not isinstance(retries, Retry):
- retries = Retry.from_int(
- retries, redirect=redirect, default=self.retries)
-
- if retries.connect or retries.read or retries.redirect:
- warnings.warn(
- "URLFetch only supports total retries and does not "
- "recognize connect, read, or redirect retry parameters.",
- AppEnginePlatformWarning)
-
- return retries
-
-
-def is_appengine():
- return (is_local_appengine() or
- is_prod_appengine() or
- is_prod_appengine_mvms())
-
-
-def is_appengine_sandbox():
- return is_appengine() and not is_prod_appengine_mvms()
-
-
-def is_local_appengine():
- return ('APPENGINE_RUNTIME' in os.environ and
- 'Development/' in os.environ['SERVER_SOFTWARE'])
-
-
-def is_prod_appengine():
- return ('APPENGINE_RUNTIME' in os.environ and
- 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and
- not is_prod_appengine_mvms())
-
-
-def is_prod_appengine_mvms():
- return os.environ.get('GAE_VM', False) == 'true'
diff --git a/vendor/requests/packages/urllib3/contrib/ntlmpool.py b/vendor/requests/packages/urllib3/contrib/ntlmpool.py
deleted file mode 100644
index 11d0b5c3..00000000
--- a/vendor/requests/packages/urllib3/contrib/ntlmpool.py
+++ /dev/null
@@ -1,115 +0,0 @@
-"""
-NTLM authenticating pool, contributed by erikcederstran
-
-Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10
-"""
-from __future__ import absolute_import
-
-try:
- from http.client import HTTPSConnection
-except ImportError:
- from httplib import HTTPSConnection
-from logging import getLogger
-from ntlm import ntlm
-
-from urllib3 import HTTPSConnectionPool
-
-
-log = getLogger(__name__)
-
-
-class NTLMConnectionPool(HTTPSConnectionPool):
- """
- Implements an NTLM authentication version of an urllib3 connection pool
- """
-
- scheme = 'https'
-
- def __init__(self, user, pw, authurl, *args, **kwargs):
- """
- authurl is a random URL on the server that is protected by NTLM.
- user is the Windows user, probably in the DOMAIN\\username format.
- pw is the password for the user.
- """
- super(NTLMConnectionPool, self).__init__(*args, **kwargs)
- self.authurl = authurl
- self.rawuser = user
- user_parts = user.split('\\', 1)
- self.domain = user_parts[0].upper()
- self.user = user_parts[1]
- self.pw = pw
-
- def _new_conn(self):
- # Performs the NTLM handshake that secures the connection. The socket
- # must be kept open while requests are performed.
- self.num_connections += 1
- log.debug('Starting NTLM HTTPS connection no. %d: https://%s%s',
- self.num_connections, self.host, self.authurl)
-
- headers = {}
- headers['Connection'] = 'Keep-Alive'
- req_header = 'Authorization'
- resp_header = 'www-authenticate'
-
- conn = HTTPSConnection(host=self.host, port=self.port)
-
- # Send negotiation message
- headers[req_header] = (
- 'NTLM %s' % ntlm.create_NTLM_NEGOTIATE_MESSAGE(self.rawuser))
- log.debug('Request headers: %s', headers)
- conn.request('GET', self.authurl, None, headers)
- res = conn.getresponse()
- reshdr = dict(res.getheaders())
- log.debug('Response status: %s %s', res.status, res.reason)
- log.debug('Response headers: %s', reshdr)
- log.debug('Response data: %s [...]', res.read(100))
-
- # Remove the reference to the socket, so that it can not be closed by
- # the response object (we want to keep the socket open)
- res.fp = None
-
- # Server should respond with a challenge message
- auth_header_values = reshdr[resp_header].split(', ')
- auth_header_value = None
- for s in auth_header_values:
- if s[:5] == 'NTLM ':
- auth_header_value = s[5:]
- if auth_header_value is None:
- raise Exception('Unexpected %s response header: %s' %
- (resp_header, reshdr[resp_header]))
-
- # Send authentication message
- ServerChallenge, NegotiateFlags = \
- ntlm.parse_NTLM_CHALLENGE_MESSAGE(auth_header_value)
- auth_msg = ntlm.create_NTLM_AUTHENTICATE_MESSAGE(ServerChallenge,
- self.user,
- self.domain,
- self.pw,
- NegotiateFlags)
- headers[req_header] = 'NTLM %s' % auth_msg
- log.debug('Request headers: %s', headers)
- conn.request('GET', self.authurl, None, headers)
- res = conn.getresponse()
- log.debug('Response status: %s %s', res.status, res.reason)
- log.debug('Response headers: %s', dict(res.getheaders()))
- log.debug('Response data: %s [...]', res.read()[:100])
- if res.status != 200:
- if res.status == 401:
- raise Exception('Server rejected request: wrong '
- 'username or password')
- raise Exception('Wrong server response: %s %s' %
- (res.status, res.reason))
-
- res.fp = None
- log.debug('Connection established')
- return conn
-
- def urlopen(self, method, url, body=None, headers=None, retries=3,
- redirect=True, assert_same_host=True):
- if headers is None:
- headers = {}
- headers['Connection'] = 'Keep-Alive'
- return super(NTLMConnectionPool, self).urlopen(method, url, body,
- headers, retries,
- redirect,
- assert_same_host)
diff --git a/vendor/requests/packages/urllib3/contrib/pyopenssl.py b/vendor/requests/packages/urllib3/contrib/pyopenssl.py
deleted file mode 100644
index ed3b9cc3..00000000
--- a/vendor/requests/packages/urllib3/contrib/pyopenssl.py
+++ /dev/null
@@ -1,358 +0,0 @@
-'''SSL with SNI_-support for Python 2. Follow these instructions if you would
-like to verify SSL certificates in Python 2. Note, the default libraries do
-*not* do certificate checking; you need to do additional work to validate
-certificates yourself.
-
-This needs the following packages installed:
-
-* pyOpenSSL (tested with 0.13)
-* ndg-httpsclient (tested with 0.3.2)
-* pyasn1 (tested with 0.1.6)
-
-You can install them with the following command:
-
- pip install pyopenssl ndg-httpsclient pyasn1
-
-To activate certificate checking, call
-:func:`~urllib3.contrib.pyopenssl.inject_into_urllib3` from your Python code
-before you begin making HTTP requests. This can be done in a ``sitecustomize``
-module, or at any other time before your application begins using ``urllib3``,
-like this::
-
- try:
- import urllib3.contrib.pyopenssl
- urllib3.contrib.pyopenssl.inject_into_urllib3()
- except ImportError:
- pass
-
-Now you can use :mod:`urllib3` as you normally would, and it will support SNI
-when the required modules are installed.
-
-Activating this module also has the positive side effect of disabling SSL/TLS
-compression in Python 2 (see `CRIME attack`_).
-
-If you want to configure the default list of supported cipher suites, you can
-set the ``urllib3.contrib.pyopenssl.DEFAULT_SSL_CIPHER_LIST`` variable.
-
-Module Variables
-----------------
-
-:var DEFAULT_SSL_CIPHER_LIST: The list of supported SSL/TLS cipher suites.
-
-.. _sni: https://en.wikipedia.org/wiki/Server_Name_Indication
-.. _crime attack: https://en.wikipedia.org/wiki/CRIME_(security_exploit)
-
-'''
-from __future__ import absolute_import
-
-try:
- from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
- from ndg.httpsclient.subj_alt_name import SubjectAltName as BaseSubjectAltName
-except SyntaxError as e:
- raise ImportError(e)
-
-import OpenSSL.SSL
-from pyasn1.codec.der import decoder as der_decoder
-from pyasn1.type import univ, constraint
-from socket import timeout, error as SocketError
-
-try: # Platform-specific: Python 2
- from socket import _fileobject
-except ImportError: # Platform-specific: Python 3
- _fileobject = None
- from urllib3.packages.backports.makefile import backport_makefile
-
-import ssl
-import select
-import six
-
-from .. import connection
-from .. import util
-
-__all__ = ['inject_into_urllib3', 'extract_from_urllib3']
-
-# SNI only *really* works if we can read the subjectAltName of certificates.
-HAS_SNI = SUBJ_ALT_NAME_SUPPORT
-
-# Map from urllib3 to PyOpenSSL compatible parameter-values.
-_openssl_versions = {
- ssl.PROTOCOL_SSLv23: OpenSSL.SSL.SSLv23_METHOD,
- ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD,
-}
-
-if hasattr(ssl, 'PROTOCOL_TLSv1_1') and hasattr(OpenSSL.SSL, 'TLSv1_1_METHOD'):
- _openssl_versions[ssl.PROTOCOL_TLSv1_1] = OpenSSL.SSL.TLSv1_1_METHOD
-
-if hasattr(ssl, 'PROTOCOL_TLSv1_2') and hasattr(OpenSSL.SSL, 'TLSv1_2_METHOD'):
- _openssl_versions[ssl.PROTOCOL_TLSv1_2] = OpenSSL.SSL.TLSv1_2_METHOD
-
-try:
- _openssl_versions.update({ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD})
-except AttributeError:
- pass
-
-_openssl_verify = {
- ssl.CERT_NONE: OpenSSL.SSL.VERIFY_NONE,
- ssl.CERT_OPTIONAL: OpenSSL.SSL.VERIFY_PEER,
- ssl.CERT_REQUIRED:
- OpenSSL.SSL.VERIFY_PEER + OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT,
-}
-
-DEFAULT_SSL_CIPHER_LIST = util.ssl_.DEFAULT_CIPHERS.encode('ascii')
-
-# OpenSSL will only write 16K at a time
-SSL_WRITE_BLOCKSIZE = 16384
-
-orig_util_HAS_SNI = util.HAS_SNI
-orig_connection_ssl_wrap_socket = connection.ssl_wrap_socket
-
-
-def inject_into_urllib3():
- 'Monkey-patch urllib3 with PyOpenSSL-backed SSL-support.'
-
- connection.ssl_wrap_socket = ssl_wrap_socket
- util.HAS_SNI = HAS_SNI
- util.IS_PYOPENSSL = True
-
-
-def extract_from_urllib3():
- 'Undo monkey-patching by :func:`inject_into_urllib3`.'
-
- connection.ssl_wrap_socket = orig_connection_ssl_wrap_socket
- util.HAS_SNI = orig_util_HAS_SNI
- util.IS_PYOPENSSL = False
-
-
-# Note: This is a slightly bug-fixed version of same from ndg-httpsclient.
-class SubjectAltName(BaseSubjectAltName):
- '''ASN.1 implementation for subjectAltNames support'''
-
- # There is no limit to how many SAN certificates a certificate may have,
- # however this needs to have some limit so we'll set an arbitrarily high
- # limit.
- sizeSpec = univ.SequenceOf.sizeSpec + \
- constraint.ValueSizeConstraint(1, 1024)
-
-
-# Note: This is a slightly bug-fixed version of same from ndg-httpsclient.
-def get_subj_alt_name(peer_cert):
- # Search through extensions
- dns_name = []
- if not SUBJ_ALT_NAME_SUPPORT:
- return dns_name
-
- general_names = SubjectAltName()
- for i in range(peer_cert.get_extension_count()):
- ext = peer_cert.get_extension(i)
- ext_name = ext.get_short_name()
- if ext_name != b'subjectAltName':
- continue
-
- # PyOpenSSL returns extension data in ASN.1 encoded form
- ext_dat = ext.get_data()
- decoded_dat = der_decoder.decode(ext_dat,
- asn1Spec=general_names)
-
- for name in decoded_dat:
- if not isinstance(name, SubjectAltName):
- continue
- for entry in range(len(name)):
- component = name.getComponentByPosition(entry)
- if component.getName() != 'dNSName':
- continue
- dns_name.append(str(component.getComponent()))
-
- return dns_name
-
-
-class WrappedSocket(object):
- '''API-compatibility wrapper for Python OpenSSL's Connection-class.
-
- Note: _makefile_refs, _drop() and _reuse() are needed for the garbage
- collector of pypy.
- '''
-
- def __init__(self, connection, socket, suppress_ragged_eofs=True):
- self.connection = connection
- self.socket = socket
- self.suppress_ragged_eofs = suppress_ragged_eofs
- self._makefile_refs = 0
- self._closed = False
-
- def fileno(self):
- return self.socket.fileno()
-
- # Copy-pasted from Python 3.5 source code
- def _decref_socketios(self):
- if self._makefile_refs > 0:
- self._makefile_refs -= 1
- if self._closed:
- self.close()
-
- def recv(self, *args, **kwargs):
- try:
- data = self.connection.recv(*args, **kwargs)
- except OpenSSL.SSL.SysCallError as e:
- if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'):
- return b''
- else:
- raise SocketError(str(e))
- except OpenSSL.SSL.ZeroReturnError as e:
- if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN:
- return b''
- else:
- raise
- except OpenSSL.SSL.WantReadError:
- rd, wd, ed = select.select(
- [self.socket], [], [], self.socket.gettimeout())
- if not rd:
- raise timeout('The read operation timed out')
- else:
- return self.recv(*args, **kwargs)
- else:
- return data
-
- def recv_into(self, *args, **kwargs):
- try:
- return self.connection.recv_into(*args, **kwargs)
- except OpenSSL.SSL.SysCallError as e:
- if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'):
- return 0
- else:
- raise SocketError(str(e))
- except OpenSSL.SSL.ZeroReturnError as e:
- if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN:
- return 0
- else:
- raise
- except OpenSSL.SSL.WantReadError:
- rd, wd, ed = select.select(
- [self.socket], [], [], self.socket.gettimeout())
- if not rd:
- raise timeout('The read operation timed out')
- else:
- return self.recv_into(*args, **kwargs)
-
- def settimeout(self, timeout):
- return self.socket.settimeout(timeout)
-
- def _send_until_done(self, data):
- while True:
- try:
- return self.connection.send(data)
- except OpenSSL.SSL.WantWriteError:
- _, wlist, _ = select.select([], [self.socket], [],
- self.socket.gettimeout())
- if not wlist:
- raise timeout()
- continue
-
- def sendall(self, data):
- total_sent = 0
- while total_sent < len(data):
- sent = self._send_until_done(data[total_sent:total_sent + SSL_WRITE_BLOCKSIZE])
- total_sent += sent
-
- def shutdown(self):
- # FIXME rethrow compatible exceptions should we ever use this
- self.connection.shutdown()
-
- def close(self):
- if self._makefile_refs < 1:
- try:
- self._closed = True
- return self.connection.close()
- except OpenSSL.SSL.Error:
- return
- else:
- self._makefile_refs -= 1
-
- def getpeercert(self, binary_form=False):
- x509 = self.connection.get_peer_certificate()
-
- if not x509:
- return x509
-
- if binary_form:
- return OpenSSL.crypto.dump_certificate(
- OpenSSL.crypto.FILETYPE_ASN1,
- x509)
-
- return {
- 'subject': (
- (('commonName', x509.get_subject().CN),),
- ),
- 'subjectAltName': [
- ('DNS', value)
- for value in get_subj_alt_name(x509)
- ]
- }
-
- def _reuse(self):
- self._makefile_refs += 1
-
- def _drop(self):
- if self._makefile_refs < 1:
- self.close()
- else:
- self._makefile_refs -= 1
-
-
-if _fileobject: # Platform-specific: Python 2
- def makefile(self, mode, bufsize=-1):
- self._makefile_refs += 1
- return _fileobject(self, mode, bufsize, close=True)
-else: # Platform-specific: Python 3
- makefile = backport_makefile
-
-WrappedSocket.makefile = makefile
-
-
-def _verify_callback(cnx, x509, err_no, err_depth, return_code):
- return err_no == 0
-
-
-def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None,
- ca_certs=None, server_hostname=None,
- ssl_version=None, ca_cert_dir=None):
- ctx = OpenSSL.SSL.Context(_openssl_versions[ssl_version])
- if certfile:
- keyfile = keyfile or certfile # Match behaviour of the normal python ssl library
- ctx.use_certificate_file(certfile)
- if keyfile:
- ctx.use_privatekey_file(keyfile)
- if cert_reqs != ssl.CERT_NONE:
- ctx.set_verify(_openssl_verify[cert_reqs], _verify_callback)
- if ca_certs or ca_cert_dir:
- try:
- ctx.load_verify_locations(ca_certs, ca_cert_dir)
- except OpenSSL.SSL.Error as e:
- raise ssl.SSLError('bad ca_certs: %r' % ca_certs, e)
- else:
- ctx.set_default_verify_paths()
-
- # Disable TLS compression to mitigate CRIME attack (issue #309)
- OP_NO_COMPRESSION = 0x20000
- ctx.set_options(OP_NO_COMPRESSION)
-
- # Set list of supported ciphersuites.
- ctx.set_cipher_list(DEFAULT_SSL_CIPHER_LIST)
-
- cnx = OpenSSL.SSL.Connection(ctx, sock)
- if isinstance(server_hostname, six.text_type): # Platform-specific: Python 3
- server_hostname = server_hostname.encode('utf-8')
- cnx.set_tlsext_host_name(server_hostname)
- cnx.set_connect_state()
- while True:
- try:
- cnx.do_handshake()
- except OpenSSL.SSL.WantReadError:
- rd, _, _ = select.select([sock], [], [], sock.gettimeout())
- if not rd:
- raise timeout('select timed out')
- continue
- except OpenSSL.SSL.Error as e:
- raise ssl.SSLError('bad handshake: %r' % e)
- break
-
- return WrappedSocket(cnx, sock)
diff --git a/vendor/requests/packages/urllib3/contrib/socks.py b/vendor/requests/packages/urllib3/contrib/socks.py
deleted file mode 100644
index 81970fa6..00000000
--- a/vendor/requests/packages/urllib3/contrib/socks.py
+++ /dev/null
@@ -1,172 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-SOCKS support for urllib3
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This contrib module contains provisional support for SOCKS proxies from within
-urllib3. This module supports SOCKS4 (specifically the SOCKS4A variant) and
-SOCKS5. To enable its functionality, either install PySocks or install this
-module with the ``socks`` extra.
-
-Known Limitations:
-
-- Currently PySocks does not support contacting remote websites via literal
- IPv6 addresses. Any such connection attempt will fail.
-- Currently PySocks does not support IPv6 connections to the SOCKS proxy. Any
- such connection attempt will fail.
-"""
-from __future__ import absolute_import
-
-try:
- import socks
-except ImportError:
- import warnings
- from ..exceptions import DependencyWarning
-
- warnings.warn((
- 'SOCKS support in urllib3 requires the installation of optional '
- 'dependencies: specifically, PySocks. For more information, see '
- 'https://urllib3.readthedocs.io/en/latest/contrib.html#socks-proxies'
- ),
- DependencyWarning
- )
- raise
-
-from socket import error as SocketError, timeout as SocketTimeout
-
-from ..connection import (
- HTTPConnection, HTTPSConnection
-)
-from ..connectionpool import (
- HTTPConnectionPool, HTTPSConnectionPool
-)
-from ..exceptions import ConnectTimeoutError, NewConnectionError
-from ..poolmanager import PoolManager
-from ..util.url import parse_url
-
-try:
- import ssl
-except ImportError:
- ssl = None
-
-
-class SOCKSConnection(HTTPConnection):
- """
- A plain-text HTTP connection that connects via a SOCKS proxy.
- """
- def __init__(self, *args, **kwargs):
- self._socks_options = kwargs.pop('_socks_options')
- super(SOCKSConnection, self).__init__(*args, **kwargs)
-
- def _new_conn(self):
- """
- Establish a new connection via the SOCKS proxy.
- """
- extra_kw = {}
- if self.source_address:
- extra_kw['source_address'] = self.source_address
-
- if self.socket_options:
- extra_kw['socket_options'] = self.socket_options
-
- try:
- conn = socks.create_connection(
- (self.host, self.port),
- proxy_type=self._socks_options['socks_version'],
- proxy_addr=self._socks_options['proxy_host'],
- proxy_port=self._socks_options['proxy_port'],
- proxy_username=self._socks_options['username'],
- proxy_password=self._socks_options['password'],
- timeout=self.timeout,
- **extra_kw
- )
-
- except SocketTimeout as e:
- raise ConnectTimeoutError(
- self, "Connection to %s timed out. (connect timeout=%s)" %
- (self.host, self.timeout))
-
- except socks.ProxyError as e:
- # This is fragile as hell, but it seems to be the only way to raise
- # useful errors here.
- if e.socket_err:
- error = e.socket_err
- if isinstance(error, SocketTimeout):
- raise ConnectTimeoutError(
- self,
- "Connection to %s timed out. (connect timeout=%s)" %
- (self.host, self.timeout)
- )
- else:
- raise NewConnectionError(
- self,
- "Failed to establish a new connection: %s" % error
- )
- else:
- raise NewConnectionError(
- self,
- "Failed to establish a new connection: %s" % e
- )
-
- except SocketError as e: # Defensive: PySocks should catch all these.
- raise NewConnectionError(
- self, "Failed to establish a new connection: %s" % e)
-
- return conn
-
-
-# We don't need to duplicate the Verified/Unverified distinction from
-# urllib3/connection.py here because the HTTPSConnection will already have been
-# correctly set to either the Verified or Unverified form by that module. This
-# means the SOCKSHTTPSConnection will automatically be the correct type.
-class SOCKSHTTPSConnection(SOCKSConnection, HTTPSConnection):
- pass
-
-
-class SOCKSHTTPConnectionPool(HTTPConnectionPool):
- ConnectionCls = SOCKSConnection
-
-
-class SOCKSHTTPSConnectionPool(HTTPSConnectionPool):
- ConnectionCls = SOCKSHTTPSConnection
-
-
-class SOCKSProxyManager(PoolManager):
- """
- A version of the urllib3 ProxyManager that routes connections via the
- defined SOCKS proxy.
- """
- pool_classes_by_scheme = {
- 'http': SOCKSHTTPConnectionPool,
- 'https': SOCKSHTTPSConnectionPool,
- }
-
- def __init__(self, proxy_url, username=None, password=None,
- num_pools=10, headers=None, **connection_pool_kw):
- parsed = parse_url(proxy_url)
-
- if parsed.scheme == 'socks5':
- socks_version = socks.PROXY_TYPE_SOCKS5
- elif parsed.scheme == 'socks4':
- socks_version = socks.PROXY_TYPE_SOCKS4
- else:
- raise ValueError(
- "Unable to determine SOCKS version from %s" % proxy_url
- )
-
- self.proxy_url = proxy_url
-
- socks_options = {
- 'socks_version': socks_version,
- 'proxy_host': parsed.host,
- 'proxy_port': parsed.port,
- 'username': username,
- 'password': password,
- }
- connection_pool_kw['_socks_options'] = socks_options
-
- super(SOCKSProxyManager, self).__init__(
- num_pools, headers, **connection_pool_kw
- )
-
- self.pool_classes_by_scheme = SOCKSProxyManager.pool_classes_by_scheme
diff --git a/vendor/requests/packages/urllib3/exceptions.py b/vendor/requests/packages/urllib3/exceptions.py
deleted file mode 100644
index f2e65917..00000000
--- a/vendor/requests/packages/urllib3/exceptions.py
+++ /dev/null
@@ -1,209 +0,0 @@
-from __future__ import absolute_import
-# Base Exceptions
-
-
-class HTTPError(Exception):
- "Base exception used by this module."
- pass
-
-
-class HTTPWarning(Warning):
- "Base warning used by this module."
- pass
-
-
-class PoolError(HTTPError):
- "Base exception for errors caused within a pool."
- def __init__(self, pool, message):
- self.pool = pool
- HTTPError.__init__(self, "%s: %s" % (pool, message))
-
- def __reduce__(self):
- # For pickling purposes.
- return self.__class__, (None, None)
-
-
-class RequestError(PoolError):
- "Base exception for PoolErrors that have associated URLs."
- def __init__(self, pool, url, message):
- self.url = url
- PoolError.__init__(self, pool, message)
-
- def __reduce__(self):
- # For pickling purposes.
- return self.__class__, (None, self.url, None)
-
-
-class SSLError(HTTPError):
- "Raised when SSL certificate fails in an HTTPS connection."
- pass
-
-
-class ProxyError(HTTPError):
- "Raised when the connection to a proxy fails."
- pass
-
-
-class DecodeError(HTTPError):
- "Raised when automatic decoding based on Content-Type fails."
- pass
-
-
-class ProtocolError(HTTPError):
- "Raised when something unexpected happens mid-request/response."
- pass
-
-
-#: Renamed to ProtocolError but aliased for backwards compatibility.
-ConnectionError = ProtocolError
-
-
-# Leaf Exceptions
-
-class MaxRetryError(RequestError):
- """Raised when the maximum number of retries is exceeded.
-
- :param pool: The connection pool
- :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool`
- :param string url: The requested Url
- :param exceptions.Exception reason: The underlying error
-
- """
-
- def __init__(self, pool, url, reason=None):
- self.reason = reason
-
- message = "Max retries exceeded with url: %s (Caused by %r)" % (
- url, reason)
-
- RequestError.__init__(self, pool, url, message)
-
-
-class HostChangedError(RequestError):
- "Raised when an existing pool gets a request for a foreign host."
-
- def __init__(self, pool, url, retries=3):
- message = "Tried to open a foreign host with url: %s" % url
- RequestError.__init__(self, pool, url, message)
- self.retries = retries
-
-
-class TimeoutStateError(HTTPError):
- """ Raised when passing an invalid state to a timeout """
- pass
-
-
-class TimeoutError(HTTPError):
- """ Raised when a socket timeout error occurs.
-
- Catching this error will catch both :exc:`ReadTimeoutErrors
- ` and :exc:`ConnectTimeoutErrors `.
- """
- pass
-
-
-class ReadTimeoutError(TimeoutError, RequestError):
- "Raised when a socket timeout occurs while receiving data from a server"
- pass
-
-
-# This timeout error does not have a URL attached and needs to inherit from the
-# base HTTPError
-class ConnectTimeoutError(TimeoutError):
- "Raised when a socket timeout occurs while connecting to a server"
- pass
-
-
-class NewConnectionError(ConnectTimeoutError, PoolError):
- "Raised when we fail to establish a new connection. Usually ECONNREFUSED."
- pass
-
-
-class EmptyPoolError(PoolError):
- "Raised when a pool runs out of connections and no more are allowed."
- pass
-
-
-class ClosedPoolError(PoolError):
- "Raised when a request enters a pool after the pool has been closed."
- pass
-
-
-class LocationValueError(ValueError, HTTPError):
- "Raised when there is something wrong with a given URL input."
- pass
-
-
-class LocationParseError(LocationValueError):
- "Raised when get_host or similar fails to parse the URL input."
-
- def __init__(self, location):
- message = "Failed to parse: %s" % location
- HTTPError.__init__(self, message)
-
- self.location = location
-
-
-class ResponseError(HTTPError):
- "Used as a container for an error reason supplied in a MaxRetryError."
- GENERIC_ERROR = 'too many error responses'
- SPECIFIC_ERROR = 'too many {status_code} error responses'
-
-
-class SecurityWarning(HTTPWarning):
- "Warned when perfoming security reducing actions"
- pass
-
-
-class SubjectAltNameWarning(SecurityWarning):
- "Warned when connecting to a host with a certificate missing a SAN."
- pass
-
-
-class InsecureRequestWarning(SecurityWarning):
- "Warned when making an unverified HTTPS request."
- pass
-
-
-class SystemTimeWarning(SecurityWarning):
- "Warned when system time is suspected to be wrong"
- pass
-
-
-class InsecurePlatformWarning(SecurityWarning):
- "Warned when certain SSL configuration is not available on a platform."
- pass
-
-
-class SNIMissingWarning(HTTPWarning):
- "Warned when making a HTTPS request without SNI available."
- pass
-
-
-class DependencyWarning(HTTPWarning):
- """
- Warned when an attempt is made to import a module with missing optional
- dependencies.
- """
- pass
-
-
-class ResponseNotChunked(ProtocolError, ValueError):
- "Response needs to be chunked in order to read it as chunks."
- pass
-
-
-class ProxySchemeUnknown(AssertionError, ValueError):
- "ProxyManager does not support the supplied scheme"
- # TODO(t-8ch): Stop inheriting from AssertionError in v2.0.
-
- def __init__(self, scheme):
- message = "Not supported proxy scheme %s" % scheme
- super(ProxySchemeUnknown, self).__init__(message)
-
-
-class HeaderParsingError(HTTPError):
- "Raised by assert_header_parsing, but we convert it to a log.warning statement."
- def __init__(self, defects, unparsed_data):
- message = '%s, unparsed data: %r' % (defects or 'Unknown', unparsed_data)
- super(HeaderParsingError, self).__init__(message)
diff --git a/vendor/requests/packages/urllib3/fields.py b/vendor/requests/packages/urllib3/fields.py
deleted file mode 100644
index 8fa2a127..00000000
--- a/vendor/requests/packages/urllib3/fields.py
+++ /dev/null
@@ -1,178 +0,0 @@
-from __future__ import absolute_import
-import email.utils
-import mimetypes
-
-from .packages import six
-
-
-def guess_content_type(filename, default='application/octet-stream'):
- """
- Guess the "Content-Type" of a file.
-
- :param filename:
- The filename to guess the "Content-Type" of using :mod:`mimetypes`.
- :param default:
- If no "Content-Type" can be guessed, default to `default`.
- """
- if filename:
- return mimetypes.guess_type(filename)[0] or default
- return default
-
-
-def format_header_param(name, value):
- """
- Helper function to format and quote a single header parameter.
-
- Particularly useful for header parameters which might contain
- non-ASCII values, like file names. This follows RFC 2231, as
- suggested by RFC 2388 Section 4.4.
-
- :param name:
- The name of the parameter, a string expected to be ASCII only.
- :param value:
- The value of the parameter, provided as a unicode string.
- """
- if not any(ch in value for ch in '"\\\r\n'):
- result = '%s="%s"' % (name, value)
- try:
- result.encode('ascii')
- except (UnicodeEncodeError, UnicodeDecodeError):
- pass
- else:
- return result
- if not six.PY3 and isinstance(value, six.text_type): # Python 2:
- value = value.encode('utf-8')
- value = email.utils.encode_rfc2231(value, 'utf-8')
- value = '%s*=%s' % (name, value)
- return value
-
-
-class RequestField(object):
- """
- A data container for request body parameters.
-
- :param name:
- The name of this request field.
- :param data:
- The data/value body.
- :param filename:
- An optional filename of the request field.
- :param headers:
- An optional dict-like object of headers to initially use for the field.
- """
- def __init__(self, name, data, filename=None, headers=None):
- self._name = name
- self._filename = filename
- self.data = data
- self.headers = {}
- if headers:
- self.headers = dict(headers)
-
- @classmethod
- def from_tuples(cls, fieldname, value):
- """
- A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters.
-
- Supports constructing :class:`~urllib3.fields.RequestField` from
- parameter of key/value strings AND key/filetuple. A filetuple is a
- (filename, data, MIME type) tuple where the MIME type is optional.
- For example::
-
- 'foo': 'bar',
- 'fakefile': ('foofile.txt', 'contents of foofile'),
- 'realfile': ('barfile.txt', open('realfile').read()),
- 'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'),
- 'nonamefile': 'contents of nonamefile field',
-
- Field names and filenames must be unicode.
- """
- if isinstance(value, tuple):
- if len(value) == 3:
- filename, data, content_type = value
- else:
- filename, data = value
- content_type = guess_content_type(filename)
- else:
- filename = None
- content_type = None
- data = value
-
- request_param = cls(fieldname, data, filename=filename)
- request_param.make_multipart(content_type=content_type)
-
- return request_param
-
- def _render_part(self, name, value):
- """
- Overridable helper function to format a single header parameter.
-
- :param name:
- The name of the parameter, a string expected to be ASCII only.
- :param value:
- The value of the parameter, provided as a unicode string.
- """
- return format_header_param(name, value)
-
- def _render_parts(self, header_parts):
- """
- Helper function to format and quote a single header.
-
- Useful for single headers that are composed of multiple items. E.g.,
- 'Content-Disposition' fields.
-
- :param header_parts:
- A sequence of (k, v) typles or a :class:`dict` of (k, v) to format
- as `k1="v1"; k2="v2"; ...`.
- """
- parts = []
- iterable = header_parts
- if isinstance(header_parts, dict):
- iterable = header_parts.items()
-
- for name, value in iterable:
- if value:
- parts.append(self._render_part(name, value))
-
- return '; '.join(parts)
-
- def render_headers(self):
- """
- Renders the headers for this request field.
- """
- lines = []
-
- sort_keys = ['Content-Disposition', 'Content-Type', 'Content-Location']
- for sort_key in sort_keys:
- if self.headers.get(sort_key, False):
- lines.append('%s: %s' % (sort_key, self.headers[sort_key]))
-
- for header_name, header_value in self.headers.items():
- if header_name not in sort_keys:
- if header_value:
- lines.append('%s: %s' % (header_name, header_value))
-
- lines.append('\r\n')
- return '\r\n'.join(lines)
-
- def make_multipart(self, content_disposition=None, content_type=None,
- content_location=None):
- """
- Makes this request field into a multipart request field.
-
- This method overrides "Content-Disposition", "Content-Type" and
- "Content-Location" headers to the request parameter.
-
- :param content_type:
- The 'Content-Type' of the request body.
- :param content_location:
- The 'Content-Location' of the request body.
-
- """
- self.headers['Content-Disposition'] = content_disposition or 'form-data'
- self.headers['Content-Disposition'] += '; '.join([
- '', self._render_parts(
- (('name', self._name), ('filename', self._filename))
- )
- ])
- self.headers['Content-Type'] = content_type
- self.headers['Content-Location'] = content_location
diff --git a/vendor/requests/packages/urllib3/filepost.py b/vendor/requests/packages/urllib3/filepost.py
deleted file mode 100644
index 97a2843c..00000000
--- a/vendor/requests/packages/urllib3/filepost.py
+++ /dev/null
@@ -1,94 +0,0 @@
-from __future__ import absolute_import
-import codecs
-
-from uuid import uuid4
-from io import BytesIO
-
-from .packages import six
-from .packages.six import b
-from .fields import RequestField
-
-writer = codecs.lookup('utf-8')[3]
-
-
-def choose_boundary():
- """
- Our embarassingly-simple replacement for mimetools.choose_boundary.
- """
- return uuid4().hex
-
-
-def iter_field_objects(fields):
- """
- Iterate over fields.
-
- Supports list of (k, v) tuples and dicts, and lists of
- :class:`~urllib3.fields.RequestField`.
-
- """
- if isinstance(fields, dict):
- i = six.iteritems(fields)
- else:
- i = iter(fields)
-
- for field in i:
- if isinstance(field, RequestField):
- yield field
- else:
- yield RequestField.from_tuples(*field)
-
-
-def iter_fields(fields):
- """
- .. deprecated:: 1.6
-
- Iterate over fields.
-
- The addition of :class:`~urllib3.fields.RequestField` makes this function
- obsolete. Instead, use :func:`iter_field_objects`, which returns
- :class:`~urllib3.fields.RequestField` objects.
-
- Supports list of (k, v) tuples and dicts.
- """
- if isinstance(fields, dict):
- return ((k, v) for k, v in six.iteritems(fields))
-
- return ((k, v) for k, v in fields)
-
-
-def encode_multipart_formdata(fields, boundary=None):
- """
- Encode a dictionary of ``fields`` using the multipart/form-data MIME format.
-
- :param fields:
- Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`).
-
- :param boundary:
- If not specified, then a random boundary will be generated using
- :func:`mimetools.choose_boundary`.
- """
- body = BytesIO()
- if boundary is None:
- boundary = choose_boundary()
-
- for field in iter_field_objects(fields):
- body.write(b('--%s\r\n' % (boundary)))
-
- writer(body).write(field.render_headers())
- data = field.data
-
- if isinstance(data, int):
- data = str(data) # Backwards compatibility
-
- if isinstance(data, six.text_type):
- writer(body).write(data)
- else:
- body.write(data)
-
- body.write(b'\r\n')
-
- body.write(b('--%s--\r\n' % (boundary)))
-
- content_type = str('multipart/form-data; boundary=%s' % boundary)
-
- return body.getvalue(), content_type
diff --git a/vendor/requests/packages/urllib3/packages/__init__.py b/vendor/requests/packages/urllib3/packages/__init__.py
deleted file mode 100644
index 170e974c..00000000
--- a/vendor/requests/packages/urllib3/packages/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from __future__ import absolute_import
-
-from . import ssl_match_hostname
-
-__all__ = ('ssl_match_hostname', )
diff --git a/vendor/requests/packages/urllib3/packages/backports/__init__.py b/vendor/requests/packages/urllib3/packages/backports/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/vendor/requests/packages/urllib3/packages/backports/makefile.py b/vendor/requests/packages/urllib3/packages/backports/makefile.py
deleted file mode 100644
index 75b80dcf..00000000
--- a/vendor/requests/packages/urllib3/packages/backports/makefile.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-backports.makefile
-~~~~~~~~~~~~~~~~~~
-
-Backports the Python 3 ``socket.makefile`` method for use with anything that
-wants to create a "fake" socket object.
-"""
-import io
-
-from socket import SocketIO
-
-
-def backport_makefile(self, mode="r", buffering=None, encoding=None,
- errors=None, newline=None):
- """
- Backport of ``socket.makefile`` from Python 3.5.
- """
- if not set(mode) <= set(["r", "w", "b"]):
- raise ValueError(
- "invalid mode %r (only r, w, b allowed)" % (mode,)
- )
- writing = "w" in mode
- reading = "r" in mode or not writing
- assert reading or writing
- binary = "b" in mode
- rawmode = ""
- if reading:
- rawmode += "r"
- if writing:
- rawmode += "w"
- raw = SocketIO(self, rawmode)
- self._makefile_refs += 1
- if buffering is None:
- buffering = -1
- if buffering < 0:
- buffering = io.DEFAULT_BUFFER_SIZE
- if buffering == 0:
- if not binary:
- raise ValueError("unbuffered streams must be binary")
- return raw
- if reading and writing:
- buffer = io.BufferedRWPair(raw, raw, buffering)
- elif reading:
- buffer = io.BufferedReader(raw, buffering)
- else:
- assert writing
- buffer = io.BufferedWriter(raw, buffering)
- if binary:
- return buffer
- text = io.TextIOWrapper(buffer, encoding, errors, newline)
- text.mode = mode
- return text
diff --git a/vendor/requests/packages/urllib3/packages/ordered_dict.py b/vendor/requests/packages/urllib3/packages/ordered_dict.py
deleted file mode 100644
index 4479363c..00000000
--- a/vendor/requests/packages/urllib3/packages/ordered_dict.py
+++ /dev/null
@@ -1,259 +0,0 @@
-# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy.
-# Passes Python2.7's test suite and incorporates all the latest updates.
-# Copyright 2009 Raymond Hettinger, released under the MIT License.
-# http://code.activestate.com/recipes/576693/
-try:
- from thread import get_ident as _get_ident
-except ImportError:
- from dummy_thread import get_ident as _get_ident
-
-try:
- from _abcoll import KeysView, ValuesView, ItemsView
-except ImportError:
- pass
-
-
-class OrderedDict(dict):
- 'Dictionary that remembers insertion order'
- # An inherited dict maps keys to values.
- # The inherited dict provides __getitem__, __len__, __contains__, and get.
- # The remaining methods are order-aware.
- # Big-O running times for all methods are the same as for regular dictionaries.
-
- # The internal self.__map dictionary maps keys to links in a doubly linked list.
- # The circular doubly linked list starts and ends with a sentinel element.
- # The sentinel element never gets deleted (this simplifies the algorithm).
- # Each link is stored as a list of length three: [PREV, NEXT, KEY].
-
- def __init__(self, *args, **kwds):
- '''Initialize an ordered dictionary. Signature is the same as for
- regular dictionaries, but keyword arguments are not recommended
- because their insertion order is arbitrary.
-
- '''
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- try:
- self.__root
- except AttributeError:
- self.__root = root = [] # sentinel node
- root[:] = [root, root, None]
- self.__map = {}
- self.__update(*args, **kwds)
-
- def __setitem__(self, key, value, dict_setitem=dict.__setitem__):
- 'od.__setitem__(i, y) <==> od[i]=y'
- # Setting a new item creates a new link which goes at the end of the linked
- # list, and the inherited dictionary is updated with the new key/value pair.
- if key not in self:
- root = self.__root
- last = root[0]
- last[1] = root[0] = self.__map[key] = [last, root, key]
- dict_setitem(self, key, value)
-
- def __delitem__(self, key, dict_delitem=dict.__delitem__):
- 'od.__delitem__(y) <==> del od[y]'
- # Deleting an existing item uses self.__map to find the link which is
- # then removed by updating the links in the predecessor and successor nodes.
- dict_delitem(self, key)
- link_prev, link_next, key = self.__map.pop(key)
- link_prev[1] = link_next
- link_next[0] = link_prev
-
- def __iter__(self):
- 'od.__iter__() <==> iter(od)'
- root = self.__root
- curr = root[1]
- while curr is not root:
- yield curr[2]
- curr = curr[1]
-
- def __reversed__(self):
- 'od.__reversed__() <==> reversed(od)'
- root = self.__root
- curr = root[0]
- while curr is not root:
- yield curr[2]
- curr = curr[0]
-
- def clear(self):
- 'od.clear() -> None. Remove all items from od.'
- try:
- for node in self.__map.itervalues():
- del node[:]
- root = self.__root
- root[:] = [root, root, None]
- self.__map.clear()
- except AttributeError:
- pass
- dict.clear(self)
-
- def popitem(self, last=True):
- '''od.popitem() -> (k, v), return and remove a (key, value) pair.
- Pairs are returned in LIFO order if last is true or FIFO order if false.
-
- '''
- if not self:
- raise KeyError('dictionary is empty')
- root = self.__root
- if last:
- link = root[0]
- link_prev = link[0]
- link_prev[1] = root
- root[0] = link_prev
- else:
- link = root[1]
- link_next = link[1]
- root[1] = link_next
- link_next[0] = root
- key = link[2]
- del self.__map[key]
- value = dict.pop(self, key)
- return key, value
-
- # -- the following methods do not depend on the internal structure --
-
- def keys(self):
- 'od.keys() -> list of keys in od'
- return list(self)
-
- def values(self):
- 'od.values() -> list of values in od'
- return [self[key] for key in self]
-
- def items(self):
- 'od.items() -> list of (key, value) pairs in od'
- return [(key, self[key]) for key in self]
-
- def iterkeys(self):
- 'od.iterkeys() -> an iterator over the keys in od'
- return iter(self)
-
- def itervalues(self):
- 'od.itervalues -> an iterator over the values in od'
- for k in self:
- yield self[k]
-
- def iteritems(self):
- 'od.iteritems -> an iterator over the (key, value) items in od'
- for k in self:
- yield (k, self[k])
-
- def update(*args, **kwds):
- '''od.update(E, **F) -> None. Update od from dict/iterable E and F.
-
- If E is a dict instance, does: for k in E: od[k] = E[k]
- If E has a .keys() method, does: for k in E.keys(): od[k] = E[k]
- Or if E is an iterable of items, does: for k, v in E: od[k] = v
- In either case, this is followed by: for k, v in F.items(): od[k] = v
-
- '''
- if len(args) > 2:
- raise TypeError('update() takes at most 2 positional '
- 'arguments (%d given)' % (len(args),))
- elif not args:
- raise TypeError('update() takes at least 1 argument (0 given)')
- self = args[0]
- # Make progressively weaker assumptions about "other"
- other = ()
- if len(args) == 2:
- other = args[1]
- if isinstance(other, dict):
- for key in other:
- self[key] = other[key]
- elif hasattr(other, 'keys'):
- for key in other.keys():
- self[key] = other[key]
- else:
- for key, value in other:
- self[key] = value
- for key, value in kwds.items():
- self[key] = value
-
- __update = update # let subclasses override update without breaking __init__
-
- __marker = object()
-
- def pop(self, key, default=__marker):
- '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value.
- If key is not found, d is returned if given, otherwise KeyError is raised.
-
- '''
- if key in self:
- result = self[key]
- del self[key]
- return result
- if default is self.__marker:
- raise KeyError(key)
- return default
-
- def setdefault(self, key, default=None):
- 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od'
- if key in self:
- return self[key]
- self[key] = default
- return default
-
- def __repr__(self, _repr_running={}):
- 'od.__repr__() <==> repr(od)'
- call_key = id(self), _get_ident()
- if call_key in _repr_running:
- return '...'
- _repr_running[call_key] = 1
- try:
- if not self:
- return '%s()' % (self.__class__.__name__,)
- return '%s(%r)' % (self.__class__.__name__, self.items())
- finally:
- del _repr_running[call_key]
-
- def __reduce__(self):
- 'Return state information for pickling'
- items = [[k, self[k]] for k in self]
- inst_dict = vars(self).copy()
- for k in vars(OrderedDict()):
- inst_dict.pop(k, None)
- if inst_dict:
- return (self.__class__, (items,), inst_dict)
- return self.__class__, (items,)
-
- def copy(self):
- 'od.copy() -> a shallow copy of od'
- return self.__class__(self)
-
- @classmethod
- def fromkeys(cls, iterable, value=None):
- '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S
- and values equal to v (which defaults to None).
-
- '''
- d = cls()
- for key in iterable:
- d[key] = value
- return d
-
- def __eq__(self, other):
- '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive
- while comparison to a regular mapping is order-insensitive.
-
- '''
- if isinstance(other, OrderedDict):
- return len(self)==len(other) and self.items() == other.items()
- return dict.__eq__(self, other)
-
- def __ne__(self, other):
- return not self == other
-
- # -- the following methods are only used in Python 2.7 --
-
- def viewkeys(self):
- "od.viewkeys() -> a set-like object providing a view on od's keys"
- return KeysView(self)
-
- def viewvalues(self):
- "od.viewvalues() -> an object providing a view on od's values"
- return ValuesView(self)
-
- def viewitems(self):
- "od.viewitems() -> a set-like object providing a view on od's items"
- return ItemsView(self)
diff --git a/vendor/requests/packages/urllib3/packages/six.py b/vendor/requests/packages/urllib3/packages/six.py
deleted file mode 100644
index 190c0239..00000000
--- a/vendor/requests/packages/urllib3/packages/six.py
+++ /dev/null
@@ -1,868 +0,0 @@
-"""Utilities for writing code that runs on Python 2 and 3"""
-
-# Copyright (c) 2010-2015 Benjamin Peterson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-from __future__ import absolute_import
-
-import functools
-import itertools
-import operator
-import sys
-import types
-
-__author__ = "Benjamin Peterson "
-__version__ = "1.10.0"
-
-
-# Useful for very coarse version differentiation.
-PY2 = sys.version_info[0] == 2
-PY3 = sys.version_info[0] == 3
-PY34 = sys.version_info[0:2] >= (3, 4)
-
-if PY3:
- string_types = str,
- integer_types = int,
- class_types = type,
- text_type = str
- binary_type = bytes
-
- MAXSIZE = sys.maxsize
-else:
- string_types = basestring,
- integer_types = (int, long)
- class_types = (type, types.ClassType)
- text_type = unicode
- binary_type = str
-
- if sys.platform.startswith("java"):
- # Jython always uses 32 bits.
- MAXSIZE = int((1 << 31) - 1)
- else:
- # It's possible to have sizeof(long) != sizeof(Py_ssize_t).
- class X(object):
-
- def __len__(self):
- return 1 << 31
- try:
- len(X())
- except OverflowError:
- # 32-bit
- MAXSIZE = int((1 << 31) - 1)
- else:
- # 64-bit
- MAXSIZE = int((1 << 63) - 1)
- del X
-
-
-def _add_doc(func, doc):
- """Add documentation to a function."""
- func.__doc__ = doc
-
-
-def _import_module(name):
- """Import module, returning the module after the last dot."""
- __import__(name)
- return sys.modules[name]
-
-
-class _LazyDescr(object):
-
- def __init__(self, name):
- self.name = name
-
- def __get__(self, obj, tp):
- result = self._resolve()
- setattr(obj, self.name, result) # Invokes __set__.
- try:
- # This is a bit ugly, but it avoids running this again by
- # removing this descriptor.
- delattr(obj.__class__, self.name)
- except AttributeError:
- pass
- return result
-
-
-class MovedModule(_LazyDescr):
-
- def __init__(self, name, old, new=None):
- super(MovedModule, self).__init__(name)
- if PY3:
- if new is None:
- new = name
- self.mod = new
- else:
- self.mod = old
-
- def _resolve(self):
- return _import_module(self.mod)
-
- def __getattr__(self, attr):
- _module = self._resolve()
- value = getattr(_module, attr)
- setattr(self, attr, value)
- return value
-
-
-class _LazyModule(types.ModuleType):
-
- def __init__(self, name):
- super(_LazyModule, self).__init__(name)
- self.__doc__ = self.__class__.__doc__
-
- def __dir__(self):
- attrs = ["__doc__", "__name__"]
- attrs += [attr.name for attr in self._moved_attributes]
- return attrs
-
- # Subclasses should override this
- _moved_attributes = []
-
-
-class MovedAttribute(_LazyDescr):
-
- def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None):
- super(MovedAttribute, self).__init__(name)
- if PY3:
- if new_mod is None:
- new_mod = name
- self.mod = new_mod
- if new_attr is None:
- if old_attr is None:
- new_attr = name
- else:
- new_attr = old_attr
- self.attr = new_attr
- else:
- self.mod = old_mod
- if old_attr is None:
- old_attr = name
- self.attr = old_attr
-
- def _resolve(self):
- module = _import_module(self.mod)
- return getattr(module, self.attr)
-
-
-class _SixMetaPathImporter(object):
-
- """
- A meta path importer to import six.moves and its submodules.
-
- This class implements a PEP302 finder and loader. It should be compatible
- with Python 2.5 and all existing versions of Python3
- """
-
- def __init__(self, six_module_name):
- self.name = six_module_name
- self.known_modules = {}
-
- def _add_module(self, mod, *fullnames):
- for fullname in fullnames:
- self.known_modules[self.name + "." + fullname] = mod
-
- def _get_module(self, fullname):
- return self.known_modules[self.name + "." + fullname]
-
- def find_module(self, fullname, path=None):
- if fullname in self.known_modules:
- return self
- return None
-
- def __get_module(self, fullname):
- try:
- return self.known_modules[fullname]
- except KeyError:
- raise ImportError("This loader does not know module " + fullname)
-
- def load_module(self, fullname):
- try:
- # in case of a reload
- return sys.modules[fullname]
- except KeyError:
- pass
- mod = self.__get_module(fullname)
- if isinstance(mod, MovedModule):
- mod = mod._resolve()
- else:
- mod.__loader__ = self
- sys.modules[fullname] = mod
- return mod
-
- def is_package(self, fullname):
- """
- Return true, if the named module is a package.
-
- We need this method to get correct spec objects with
- Python 3.4 (see PEP451)
- """
- return hasattr(self.__get_module(fullname), "__path__")
-
- def get_code(self, fullname):
- """Return None
-
- Required, if is_package is implemented"""
- self.__get_module(fullname) # eventually raises ImportError
- return None
- get_source = get_code # same as get_code
-
-_importer = _SixMetaPathImporter(__name__)
-
-
-class _MovedItems(_LazyModule):
-
- """Lazy loading of moved objects"""
- __path__ = [] # mark as package
-
-
-_moved_attributes = [
- MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"),
- MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"),
- MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"),
- MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"),
- MovedAttribute("intern", "__builtin__", "sys"),
- MovedAttribute("map", "itertools", "builtins", "imap", "map"),
- MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"),
- MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"),
- MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"),
- MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"),
- MovedAttribute("reduce", "__builtin__", "functools"),
- MovedAttribute("shlex_quote", "pipes", "shlex", "quote"),
- MovedAttribute("StringIO", "StringIO", "io"),
- MovedAttribute("UserDict", "UserDict", "collections"),
- MovedAttribute("UserList", "UserList", "collections"),
- MovedAttribute("UserString", "UserString", "collections"),
- MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"),
- MovedAttribute("zip", "itertools", "builtins", "izip", "zip"),
- MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"),
- MovedModule("builtins", "__builtin__"),
- MovedModule("configparser", "ConfigParser"),
- MovedModule("copyreg", "copy_reg"),
- MovedModule("dbm_gnu", "gdbm", "dbm.gnu"),
- MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"),
- MovedModule("http_cookiejar", "cookielib", "http.cookiejar"),
- MovedModule("http_cookies", "Cookie", "http.cookies"),
- MovedModule("html_entities", "htmlentitydefs", "html.entities"),
- MovedModule("html_parser", "HTMLParser", "html.parser"),
- MovedModule("http_client", "httplib", "http.client"),
- MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"),
- MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"),
- MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"),
- MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"),
- MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"),
- MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"),
- MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"),
- MovedModule("cPickle", "cPickle", "pickle"),
- MovedModule("queue", "Queue"),
- MovedModule("reprlib", "repr"),
- MovedModule("socketserver", "SocketServer"),
- MovedModule("_thread", "thread", "_thread"),
- MovedModule("tkinter", "Tkinter"),
- MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"),
- MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"),
- MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"),
- MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"),
- MovedModule("tkinter_tix", "Tix", "tkinter.tix"),
- MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"),
- MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"),
- MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"),
- MovedModule("tkinter_colorchooser", "tkColorChooser",
- "tkinter.colorchooser"),
- MovedModule("tkinter_commondialog", "tkCommonDialog",
- "tkinter.commondialog"),
- MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"),
- MovedModule("tkinter_font", "tkFont", "tkinter.font"),
- MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"),
- MovedModule("tkinter_tksimpledialog", "tkSimpleDialog",
- "tkinter.simpledialog"),
- MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"),
- MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"),
- MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"),
- MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"),
- MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"),
- MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"),
-]
-# Add windows specific modules.
-if sys.platform == "win32":
- _moved_attributes += [
- MovedModule("winreg", "_winreg"),
- ]
-
-for attr in _moved_attributes:
- setattr(_MovedItems, attr.name, attr)
- if isinstance(attr, MovedModule):
- _importer._add_module(attr, "moves." + attr.name)
-del attr
-
-_MovedItems._moved_attributes = _moved_attributes
-
-moves = _MovedItems(__name__ + ".moves")
-_importer._add_module(moves, "moves")
-
-
-class Module_six_moves_urllib_parse(_LazyModule):
-
- """Lazy loading of moved objects in six.moves.urllib_parse"""
-
-
-_urllib_parse_moved_attributes = [
- MovedAttribute("ParseResult", "urlparse", "urllib.parse"),
- MovedAttribute("SplitResult", "urlparse", "urllib.parse"),
- MovedAttribute("parse_qs", "urlparse", "urllib.parse"),
- MovedAttribute("parse_qsl", "urlparse", "urllib.parse"),
- MovedAttribute("urldefrag", "urlparse", "urllib.parse"),
- MovedAttribute("urljoin", "urlparse", "urllib.parse"),
- MovedAttribute("urlparse", "urlparse", "urllib.parse"),
- MovedAttribute("urlsplit", "urlparse", "urllib.parse"),
- MovedAttribute("urlunparse", "urlparse", "urllib.parse"),
- MovedAttribute("urlunsplit", "urlparse", "urllib.parse"),
- MovedAttribute("quote", "urllib", "urllib.parse"),
- MovedAttribute("quote_plus", "urllib", "urllib.parse"),
- MovedAttribute("unquote", "urllib", "urllib.parse"),
- MovedAttribute("unquote_plus", "urllib", "urllib.parse"),
- MovedAttribute("urlencode", "urllib", "urllib.parse"),
- MovedAttribute("splitquery", "urllib", "urllib.parse"),
- MovedAttribute("splittag", "urllib", "urllib.parse"),
- MovedAttribute("splituser", "urllib", "urllib.parse"),
- MovedAttribute("uses_fragment", "urlparse", "urllib.parse"),
- MovedAttribute("uses_netloc", "urlparse", "urllib.parse"),
- MovedAttribute("uses_params", "urlparse", "urllib.parse"),
- MovedAttribute("uses_query", "urlparse", "urllib.parse"),
- MovedAttribute("uses_relative", "urlparse", "urllib.parse"),
-]
-for attr in _urllib_parse_moved_attributes:
- setattr(Module_six_moves_urllib_parse, attr.name, attr)
-del attr
-
-Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes
-
-_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"),
- "moves.urllib_parse", "moves.urllib.parse")
-
-
-class Module_six_moves_urllib_error(_LazyModule):
-
- """Lazy loading of moved objects in six.moves.urllib_error"""
-
-
-_urllib_error_moved_attributes = [
- MovedAttribute("URLError", "urllib2", "urllib.error"),
- MovedAttribute("HTTPError", "urllib2", "urllib.error"),
- MovedAttribute("ContentTooShortError", "urllib", "urllib.error"),
-]
-for attr in _urllib_error_moved_attributes:
- setattr(Module_six_moves_urllib_error, attr.name, attr)
-del attr
-
-Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes
-
-_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"),
- "moves.urllib_error", "moves.urllib.error")
-
-
-class Module_six_moves_urllib_request(_LazyModule):
-
- """Lazy loading of moved objects in six.moves.urllib_request"""
-
-
-_urllib_request_moved_attributes = [
- MovedAttribute("urlopen", "urllib2", "urllib.request"),
- MovedAttribute("install_opener", "urllib2", "urllib.request"),
- MovedAttribute("build_opener", "urllib2", "urllib.request"),
- MovedAttribute("pathname2url", "urllib", "urllib.request"),
- MovedAttribute("url2pathname", "urllib", "urllib.request"),
- MovedAttribute("getproxies", "urllib", "urllib.request"),
- MovedAttribute("Request", "urllib2", "urllib.request"),
- MovedAttribute("OpenerDirector", "urllib2", "urllib.request"),
- MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"),
- MovedAttribute("ProxyHandler", "urllib2", "urllib.request"),
- MovedAttribute("BaseHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"),
- MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"),
- MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"),
- MovedAttribute("FileHandler", "urllib2", "urllib.request"),
- MovedAttribute("FTPHandler", "urllib2", "urllib.request"),
- MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"),
- MovedAttribute("UnknownHandler", "urllib2", "urllib.request"),
- MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"),
- MovedAttribute("urlretrieve", "urllib", "urllib.request"),
- MovedAttribute("urlcleanup", "urllib", "urllib.request"),
- MovedAttribute("URLopener", "urllib", "urllib.request"),
- MovedAttribute("FancyURLopener", "urllib", "urllib.request"),
- MovedAttribute("proxy_bypass", "urllib", "urllib.request"),
-]
-for attr in _urllib_request_moved_attributes:
- setattr(Module_six_moves_urllib_request, attr.name, attr)
-del attr
-
-Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes
-
-_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"),
- "moves.urllib_request", "moves.urllib.request")
-
-
-class Module_six_moves_urllib_response(_LazyModule):
-
- """Lazy loading of moved objects in six.moves.urllib_response"""
-
-
-_urllib_response_moved_attributes = [
- MovedAttribute("addbase", "urllib", "urllib.response"),
- MovedAttribute("addclosehook", "urllib", "urllib.response"),
- MovedAttribute("addinfo", "urllib", "urllib.response"),
- MovedAttribute("addinfourl", "urllib", "urllib.response"),
-]
-for attr in _urllib_response_moved_attributes:
- setattr(Module_six_moves_urllib_response, attr.name, attr)
-del attr
-
-Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes
-
-_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"),
- "moves.urllib_response", "moves.urllib.response")
-
-
-class Module_six_moves_urllib_robotparser(_LazyModule):
-
- """Lazy loading of moved objects in six.moves.urllib_robotparser"""
-
-
-_urllib_robotparser_moved_attributes = [
- MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"),
-]
-for attr in _urllib_robotparser_moved_attributes:
- setattr(Module_six_moves_urllib_robotparser, attr.name, attr)
-del attr
-
-Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes
-
-_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"),
- "moves.urllib_robotparser", "moves.urllib.robotparser")
-
-
-class Module_six_moves_urllib(types.ModuleType):
-
- """Create a six.moves.urllib namespace that resembles the Python 3 namespace"""
- __path__ = [] # mark as package
- parse = _importer._get_module("moves.urllib_parse")
- error = _importer._get_module("moves.urllib_error")
- request = _importer._get_module("moves.urllib_request")
- response = _importer._get_module("moves.urllib_response")
- robotparser = _importer._get_module("moves.urllib_robotparser")
-
- def __dir__(self):
- return ['parse', 'error', 'request', 'response', 'robotparser']
-
-_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"),
- "moves.urllib")
-
-
-def add_move(move):
- """Add an item to six.moves."""
- setattr(_MovedItems, move.name, move)
-
-
-def remove_move(name):
- """Remove item from six.moves."""
- try:
- delattr(_MovedItems, name)
- except AttributeError:
- try:
- del moves.__dict__[name]
- except KeyError:
- raise AttributeError("no such move, %r" % (name,))
-
-
-if PY3:
- _meth_func = "__func__"
- _meth_self = "__self__"
-
- _func_closure = "__closure__"
- _func_code = "__code__"
- _func_defaults = "__defaults__"
- _func_globals = "__globals__"
-else:
- _meth_func = "im_func"
- _meth_self = "im_self"
-
- _func_closure = "func_closure"
- _func_code = "func_code"
- _func_defaults = "func_defaults"
- _func_globals = "func_globals"
-
-
-try:
- advance_iterator = next
-except NameError:
- def advance_iterator(it):
- return it.next()
-next = advance_iterator
-
-
-try:
- callable = callable
-except NameError:
- def callable(obj):
- return any("__call__" in klass.__dict__ for klass in type(obj).__mro__)
-
-
-if PY3:
- def get_unbound_function(unbound):
- return unbound
-
- create_bound_method = types.MethodType
-
- def create_unbound_method(func, cls):
- return func
-
- Iterator = object
-else:
- def get_unbound_function(unbound):
- return unbound.im_func
-
- def create_bound_method(func, obj):
- return types.MethodType(func, obj, obj.__class__)
-
- def create_unbound_method(func, cls):
- return types.MethodType(func, None, cls)
-
- class Iterator(object):
-
- def next(self):
- return type(self).__next__(self)
-
- callable = callable
-_add_doc(get_unbound_function,
- """Get the function out of a possibly unbound function""")
-
-
-get_method_function = operator.attrgetter(_meth_func)
-get_method_self = operator.attrgetter(_meth_self)
-get_function_closure = operator.attrgetter(_func_closure)
-get_function_code = operator.attrgetter(_func_code)
-get_function_defaults = operator.attrgetter(_func_defaults)
-get_function_globals = operator.attrgetter(_func_globals)
-
-
-if PY3:
- def iterkeys(d, **kw):
- return iter(d.keys(**kw))
-
- def itervalues(d, **kw):
- return iter(d.values(**kw))
-
- def iteritems(d, **kw):
- return iter(d.items(**kw))
-
- def iterlists(d, **kw):
- return iter(d.lists(**kw))
-
- viewkeys = operator.methodcaller("keys")
-
- viewvalues = operator.methodcaller("values")
-
- viewitems = operator.methodcaller("items")
-else:
- def iterkeys(d, **kw):
- return d.iterkeys(**kw)
-
- def itervalues(d, **kw):
- return d.itervalues(**kw)
-
- def iteritems(d, **kw):
- return d.iteritems(**kw)
-
- def iterlists(d, **kw):
- return d.iterlists(**kw)
-
- viewkeys = operator.methodcaller("viewkeys")
-
- viewvalues = operator.methodcaller("viewvalues")
-
- viewitems = operator.methodcaller("viewitems")
-
-_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.")
-_add_doc(itervalues, "Return an iterator over the values of a dictionary.")
-_add_doc(iteritems,
- "Return an iterator over the (key, value) pairs of a dictionary.")
-_add_doc(iterlists,
- "Return an iterator over the (key, [values]) pairs of a dictionary.")
-
-
-if PY3:
- def b(s):
- return s.encode("latin-1")
-
- def u(s):
- return s
- unichr = chr
- import struct
- int2byte = struct.Struct(">B").pack
- del struct
- byte2int = operator.itemgetter(0)
- indexbytes = operator.getitem
- iterbytes = iter
- import io
- StringIO = io.StringIO
- BytesIO = io.BytesIO
- _assertCountEqual = "assertCountEqual"
- if sys.version_info[1] <= 1:
- _assertRaisesRegex = "assertRaisesRegexp"
- _assertRegex = "assertRegexpMatches"
- else:
- _assertRaisesRegex = "assertRaisesRegex"
- _assertRegex = "assertRegex"
-else:
- def b(s):
- return s
- # Workaround for standalone backslash
-
- def u(s):
- return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
- unichr = unichr
- int2byte = chr
-
- def byte2int(bs):
- return ord(bs[0])
-
- def indexbytes(buf, i):
- return ord(buf[i])
- iterbytes = functools.partial(itertools.imap, ord)
- import StringIO
- StringIO = BytesIO = StringIO.StringIO
- _assertCountEqual = "assertItemsEqual"
- _assertRaisesRegex = "assertRaisesRegexp"
- _assertRegex = "assertRegexpMatches"
-_add_doc(b, """Byte literal""")
-_add_doc(u, """Text literal""")
-
-
-def assertCountEqual(self, *args, **kwargs):
- return getattr(self, _assertCountEqual)(*args, **kwargs)
-
-
-def assertRaisesRegex(self, *args, **kwargs):
- return getattr(self, _assertRaisesRegex)(*args, **kwargs)
-
-
-def assertRegex(self, *args, **kwargs):
- return getattr(self, _assertRegex)(*args, **kwargs)
-
-
-if PY3:
- exec_ = getattr(moves.builtins, "exec")
-
- def reraise(tp, value, tb=None):
- if value is None:
- value = tp()
- if value.__traceback__ is not tb:
- raise value.with_traceback(tb)
- raise value
-
-else:
- def exec_(_code_, _globs_=None, _locs_=None):
- """Execute code in a namespace."""
- if _globs_ is None:
- frame = sys._getframe(1)
- _globs_ = frame.f_globals
- if _locs_ is None:
- _locs_ = frame.f_locals
- del frame
- elif _locs_ is None:
- _locs_ = _globs_
- exec("""exec _code_ in _globs_, _locs_""")
-
- exec_("""def reraise(tp, value, tb=None):
- raise tp, value, tb
-""")
-
-
-if sys.version_info[:2] == (3, 2):
- exec_("""def raise_from(value, from_value):
- if from_value is None:
- raise value
- raise value from from_value
-""")
-elif sys.version_info[:2] > (3, 2):
- exec_("""def raise_from(value, from_value):
- raise value from from_value
-""")
-else:
- def raise_from(value, from_value):
- raise value
-
-
-print_ = getattr(moves.builtins, "print", None)
-if print_ is None:
- def print_(*args, **kwargs):
- """The new-style print function for Python 2.4 and 2.5."""
- fp = kwargs.pop("file", sys.stdout)
- if fp is None:
- return
-
- def write(data):
- if not isinstance(data, basestring):
- data = str(data)
- # If the file has an encoding, encode unicode with it.
- if (isinstance(fp, file) and
- isinstance(data, unicode) and
- fp.encoding is not None):
- errors = getattr(fp, "errors", None)
- if errors is None:
- errors = "strict"
- data = data.encode(fp.encoding, errors)
- fp.write(data)
- want_unicode = False
- sep = kwargs.pop("sep", None)
- if sep is not None:
- if isinstance(sep, unicode):
- want_unicode = True
- elif not isinstance(sep, str):
- raise TypeError("sep must be None or a string")
- end = kwargs.pop("end", None)
- if end is not None:
- if isinstance(end, unicode):
- want_unicode = True
- elif not isinstance(end, str):
- raise TypeError("end must be None or a string")
- if kwargs:
- raise TypeError("invalid keyword arguments to print()")
- if not want_unicode:
- for arg in args:
- if isinstance(arg, unicode):
- want_unicode = True
- break
- if want_unicode:
- newline = unicode("\n")
- space = unicode(" ")
- else:
- newline = "\n"
- space = " "
- if sep is None:
- sep = space
- if end is None:
- end = newline
- for i, arg in enumerate(args):
- if i:
- write(sep)
- write(arg)
- write(end)
-if sys.version_info[:2] < (3, 3):
- _print = print_
-
- def print_(*args, **kwargs):
- fp = kwargs.get("file", sys.stdout)
- flush = kwargs.pop("flush", False)
- _print(*args, **kwargs)
- if flush and fp is not None:
- fp.flush()
-
-_add_doc(reraise, """Reraise an exception.""")
-
-if sys.version_info[0:2] < (3, 4):
- def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS,
- updated=functools.WRAPPER_UPDATES):
- def wrapper(f):
- f = functools.wraps(wrapped, assigned, updated)(f)
- f.__wrapped__ = wrapped
- return f
- return wrapper
-else:
- wraps = functools.wraps
-
-
-def with_metaclass(meta, *bases):
- """Create a base class with a metaclass."""
- # This requires a bit of explanation: the basic idea is to make a dummy
- # metaclass for one level of class instantiation that replaces itself with
- # the actual metaclass.
- class metaclass(meta):
-
- def __new__(cls, name, this_bases, d):
- return meta(name, bases, d)
- return type.__new__(metaclass, 'temporary_class', (), {})
-
-
-def add_metaclass(metaclass):
- """Class decorator for creating a class with a metaclass."""
- def wrapper(cls):
- orig_vars = cls.__dict__.copy()
- slots = orig_vars.get('__slots__')
- if slots is not None:
- if isinstance(slots, str):
- slots = [slots]
- for slots_var in slots:
- orig_vars.pop(slots_var)
- orig_vars.pop('__dict__', None)
- orig_vars.pop('__weakref__', None)
- return metaclass(cls.__name__, cls.__bases__, orig_vars)
- return wrapper
-
-
-def python_2_unicode_compatible(klass):
- """
- A decorator that defines __unicode__ and __str__ methods under Python 2.
- Under Python 3 it does nothing.
-
- To support Python 2 and 3 with a single code base, define a __str__ method
- returning text and apply this decorator to the class.
- """
- if PY2:
- if '__str__' not in klass.__dict__:
- raise ValueError("@python_2_unicode_compatible cannot be applied "
- "to %s because it doesn't define __str__()." %
- klass.__name__)
- klass.__unicode__ = klass.__str__
- klass.__str__ = lambda self: self.__unicode__().encode('utf-8')
- return klass
-
-
-# Complete the moves implementation.
-# This code is at the end of this module to speed up module loading.
-# Turn this module into a package.
-__path__ = [] # required for PEP 302 and PEP 451
-__package__ = __name__ # see PEP 366 @ReservedAssignment
-if globals().get("__spec__") is not None:
- __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable
-# Remove other six meta path importers, since they cause problems. This can
-# happen if six is removed from sys.modules and then reloaded. (Setuptools does
-# this for some reason.)
-if sys.meta_path:
- for i, importer in enumerate(sys.meta_path):
- # Here's some real nastiness: Another "instance" of the six module might
- # be floating around. Therefore, we can't use isinstance() to check for
- # the six meta path importer, since the other six instance will have
- # inserted an importer with different class.
- if (type(importer).__name__ == "_SixMetaPathImporter" and
- importer.name == __name__):
- del sys.meta_path[i]
- break
- del i, importer
-# Finally, add the importer to the meta path import hook.
-sys.meta_path.append(_importer)
diff --git a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/.gitignore b/vendor/requests/packages/urllib3/packages/ssl_match_hostname/.gitignore
deleted file mode 100644
index 0a764a4d..00000000
--- a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-env
diff --git a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py b/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py
deleted file mode 100644
index dd59a75f..00000000
--- a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-try:
- # Python 3.2+
- from ssl import CertificateError, match_hostname
-except ImportError:
- try:
- # Backport of the function from a pypi module
- from backports.ssl_match_hostname import CertificateError, match_hostname
- except ImportError:
- # Our vendored copy
- from ._implementation import CertificateError, match_hostname
-
-# Not needed, but documenting what we provide.
-__all__ = ('CertificateError', 'match_hostname')
diff --git a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py b/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py
deleted file mode 100644
index 52f42873..00000000
--- a/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py
+++ /dev/null
@@ -1,105 +0,0 @@
-"""The match_hostname() function from Python 3.3.3, essential when using SSL."""
-
-# Note: This file is under the PSF license as the code comes from the python
-# stdlib. http://docs.python.org/3/license.html
-
-import re
-
-__version__ = '3.4.0.2'
-
-class CertificateError(ValueError):
- pass
-
-
-def _dnsname_match(dn, hostname, max_wildcards=1):
- """Matching according to RFC 6125, section 6.4.3
-
- http://tools.ietf.org/html/rfc6125#section-6.4.3
- """
- pats = []
- if not dn:
- return False
-
- # Ported from python3-syntax:
- # leftmost, *remainder = dn.split(r'.')
- parts = dn.split(r'.')
- leftmost = parts[0]
- remainder = parts[1:]
-
- wildcards = leftmost.count('*')
- if wildcards > max_wildcards:
- # Issue #17980: avoid denials of service by refusing more
- # than one wildcard per fragment. A survey of established
- # policy among SSL implementations showed it to be a
- # reasonable choice.
- raise CertificateError(
- "too many wildcards in certificate DNS name: " + repr(dn))
-
- # speed up common case w/o wildcards
- if not wildcards:
- return dn.lower() == hostname.lower()
-
- # RFC 6125, section 6.4.3, subitem 1.
- # The client SHOULD NOT attempt to match a presented identifier in which
- # the wildcard character comprises a label other than the left-most label.
- if leftmost == '*':
- # When '*' is a fragment by itself, it matches a non-empty dotless
- # fragment.
- pats.append('[^.]+')
- elif leftmost.startswith('xn--') or hostname.startswith('xn--'):
- # RFC 6125, section 6.4.3, subitem 3.
- # The client SHOULD NOT attempt to match a presented identifier
- # where the wildcard character is embedded within an A-label or
- # U-label of an internationalized domain name.
- pats.append(re.escape(leftmost))
- else:
- # Otherwise, '*' matches any dotless string, e.g. www*
- pats.append(re.escape(leftmost).replace(r'\*', '[^.]*'))
-
- # add the remaining fragments, ignore any wildcards
- for frag in remainder:
- pats.append(re.escape(frag))
-
- pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE)
- return pat.match(hostname)
-
-
-def match_hostname(cert, hostname):
- """Verify that *cert* (in decoded format as returned by
- SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125
- rules are followed, but IP addresses are not accepted for *hostname*.
-
- CertificateError is raised on failure. On success, the function
- returns nothing.
- """
- if not cert:
- raise ValueError("empty or no certificate")
- dnsnames = []
- san = cert.get('subjectAltName', ())
- for key, value in san:
- if key == 'DNS':
- if _dnsname_match(value, hostname):
- return
- dnsnames.append(value)
- if not dnsnames:
- # The subject is only checked when there is no dNSName entry
- # in subjectAltName
- for sub in cert.get('subject', ()):
- for key, value in sub:
- # XXX according to RFC 2818, the most specific Common Name
- # must be used.
- if key == 'commonName':
- if _dnsname_match(value, hostname):
- return
- dnsnames.append(value)
- if len(dnsnames) > 1:
- raise CertificateError("hostname %r "
- "doesn't match either of %s"
- % (hostname, ', '.join(map(repr, dnsnames))))
- elif len(dnsnames) == 1:
- raise CertificateError("hostname %r "
- "doesn't match %r"
- % (hostname, dnsnames[0]))
- else:
- raise CertificateError("no appropriate commonName or "
- "subjectAltName fields were found")
diff --git a/vendor/requests/packages/urllib3/poolmanager.py b/vendor/requests/packages/urllib3/poolmanager.py
deleted file mode 100644
index 7ed00b1c..00000000
--- a/vendor/requests/packages/urllib3/poolmanager.py
+++ /dev/null
@@ -1,367 +0,0 @@
-from __future__ import absolute_import
-import collections
-import functools
-import logging
-
-try: # Python 3
- from urllib.parse import urljoin
-except ImportError:
- from urlparse import urljoin
-
-from ._collections import RecentlyUsedContainer
-from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool
-from .connectionpool import port_by_scheme
-from .exceptions import LocationValueError, MaxRetryError, ProxySchemeUnknown
-from .request import RequestMethods
-from .util.url import parse_url
-from .util.retry import Retry
-
-
-__all__ = ['PoolManager', 'ProxyManager', 'proxy_from_url']
-
-
-log = logging.getLogger(__name__)
-
-SSL_KEYWORDS = ('key_file', 'cert_file', 'cert_reqs', 'ca_certs',
- 'ssl_version', 'ca_cert_dir')
-
-# The base fields to use when determining what pool to get a connection from;
-# these do not rely on the ``connection_pool_kw`` and can be determined by the
-# URL and potentially the ``urllib3.connection.port_by_scheme`` dictionary.
-#
-# All custom key schemes should include the fields in this key at a minimum.
-BasePoolKey = collections.namedtuple('BasePoolKey', ('scheme', 'host', 'port'))
-
-# The fields to use when determining what pool to get a HTTP and HTTPS
-# connection from. All additional fields must be present in the PoolManager's
-# ``connection_pool_kw`` instance variable.
-HTTPPoolKey = collections.namedtuple(
- 'HTTPPoolKey', BasePoolKey._fields + ('timeout', 'retries', 'strict',
- 'block', 'source_address')
-)
-HTTPSPoolKey = collections.namedtuple(
- 'HTTPSPoolKey', HTTPPoolKey._fields + SSL_KEYWORDS
-)
-
-
-def _default_key_normalizer(key_class, request_context):
- """
- Create a pool key of type ``key_class`` for a request.
-
- According to RFC 3986, both the scheme and host are case-insensitive.
- Therefore, this function normalizes both before constructing the pool
- key for an HTTPS request. If you wish to change this behaviour, provide
- alternate callables to ``key_fn_by_scheme``.
-
- :param key_class:
- The class to use when constructing the key. This should be a namedtuple
- with the ``scheme`` and ``host`` keys at a minimum.
-
- :param request_context:
- A dictionary-like object that contain the context for a request.
- It should contain a key for each field in the :class:`HTTPPoolKey`
- """
- context = {}
- for key in key_class._fields:
- context[key] = request_context.get(key)
- context['scheme'] = context['scheme'].lower()
- context['host'] = context['host'].lower()
- return key_class(**context)
-
-
-# A dictionary that maps a scheme to a callable that creates a pool key.
-# This can be used to alter the way pool keys are constructed, if desired.
-# Each PoolManager makes a copy of this dictionary so they can be configured
-# globally here, or individually on the instance.
-key_fn_by_scheme = {
- 'http': functools.partial(_default_key_normalizer, HTTPPoolKey),
- 'https': functools.partial(_default_key_normalizer, HTTPSPoolKey),
-}
-
-pool_classes_by_scheme = {
- 'http': HTTPConnectionPool,
- 'https': HTTPSConnectionPool,
-}
-
-
-class PoolManager(RequestMethods):
- """
- Allows for arbitrary requests while transparently keeping track of
- necessary connection pools for you.
-
- :param num_pools:
- Number of connection pools to cache before discarding the least
- recently used pool.
-
- :param headers:
- Headers to include with all requests, unless other headers are given
- explicitly.
-
- :param \**connection_pool_kw:
- Additional parameters are used to create fresh
- :class:`urllib3.connectionpool.ConnectionPool` instances.
-
- Example::
-
- >>> manager = PoolManager(num_pools=2)
- >>> r = manager.request('GET', 'http://google.com/')
- >>> r = manager.request('GET', 'http://google.com/mail')
- >>> r = manager.request('GET', 'http://yahoo.com/')
- >>> len(manager.pools)
- 2
-
- """
-
- proxy = None
-
- def __init__(self, num_pools=10, headers=None, **connection_pool_kw):
- RequestMethods.__init__(self, headers)
- self.connection_pool_kw = connection_pool_kw
- self.pools = RecentlyUsedContainer(num_pools,
- dispose_func=lambda p: p.close())
-
- # Locally set the pool classes and keys so other PoolManagers can
- # override them.
- self.pool_classes_by_scheme = pool_classes_by_scheme
- self.key_fn_by_scheme = key_fn_by_scheme.copy()
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.clear()
- # Return False to re-raise any potential exceptions
- return False
-
- def _new_pool(self, scheme, host, port):
- """
- Create a new :class:`ConnectionPool` based on host, port and scheme.
-
- This method is used to actually create the connection pools handed out
- by :meth:`connection_from_url` and companion methods. It is intended
- to be overridden for customization.
- """
- pool_cls = self.pool_classes_by_scheme[scheme]
- kwargs = self.connection_pool_kw
- if scheme == 'http':
- kwargs = self.connection_pool_kw.copy()
- for kw in SSL_KEYWORDS:
- kwargs.pop(kw, None)
-
- return pool_cls(host, port, **kwargs)
-
- def clear(self):
- """
- Empty our store of pools and direct them all to close.
-
- This will not affect in-flight connections, but they will not be
- re-used after completion.
- """
- self.pools.clear()
-
- def connection_from_host(self, host, port=None, scheme='http'):
- """
- Get a :class:`ConnectionPool` based on the host, port, and scheme.
-
- If ``port`` isn't given, it will be derived from the ``scheme`` using
- ``urllib3.connectionpool.port_by_scheme``.
- """
-
- if not host:
- raise LocationValueError("No host specified.")
-
- request_context = self.connection_pool_kw.copy()
- request_context['scheme'] = scheme or 'http'
- if not port:
- port = port_by_scheme.get(request_context['scheme'].lower(), 80)
- request_context['port'] = port
- request_context['host'] = host
-
- return self.connection_from_context(request_context)
-
- def connection_from_context(self, request_context):
- """
- Get a :class:`ConnectionPool` based on the request context.
-
- ``request_context`` must at least contain the ``scheme`` key and its
- value must be a key in ``key_fn_by_scheme`` instance variable.
- """
- scheme = request_context['scheme'].lower()
- pool_key_constructor = self.key_fn_by_scheme[scheme]
- pool_key = pool_key_constructor(request_context)
-
- return self.connection_from_pool_key(pool_key)
-
- def connection_from_pool_key(self, pool_key):
- """
- Get a :class:`ConnectionPool` based on the provided pool key.
-
- ``pool_key`` should be a namedtuple that only contains immutable
- objects. At a minimum it must have the ``scheme``, ``host``, and
- ``port`` fields.
- """
- with self.pools.lock:
- # If the scheme, host, or port doesn't match existing open
- # connections, open a new ConnectionPool.
- pool = self.pools.get(pool_key)
- if pool:
- return pool
-
- # Make a fresh ConnectionPool of the desired type
- pool = self._new_pool(pool_key.scheme, pool_key.host, pool_key.port)
- self.pools[pool_key] = pool
-
- return pool
-
- def connection_from_url(self, url):
- """
- Similar to :func:`urllib3.connectionpool.connection_from_url` but
- doesn't pass any additional parameters to the
- :class:`urllib3.connectionpool.ConnectionPool` constructor.
-
- Additional parameters are taken from the :class:`.PoolManager`
- constructor.
- """
- u = parse_url(url)
- return self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
-
- def urlopen(self, method, url, redirect=True, **kw):
- """
- Same as :meth:`urllib3.connectionpool.HTTPConnectionPool.urlopen`
- with custom cross-host redirect logic and only sends the request-uri
- portion of the ``url``.
-
- The given ``url`` parameter must be absolute, such that an appropriate
- :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it.
- """
- u = parse_url(url)
- conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
-
- kw['assert_same_host'] = False
- kw['redirect'] = False
- if 'headers' not in kw:
- kw['headers'] = self.headers
-
- if self.proxy is not None and u.scheme == "http":
- response = conn.urlopen(method, url, **kw)
- else:
- response = conn.urlopen(method, u.request_uri, **kw)
-
- redirect_location = redirect and response.get_redirect_location()
- if not redirect_location:
- return response
-
- # Support relative URLs for redirecting.
- redirect_location = urljoin(url, redirect_location)
-
- # RFC 7231, Section 6.4.4
- if response.status == 303:
- method = 'GET'
-
- retries = kw.get('retries')
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect)
-
- try:
- retries = retries.increment(method, url, response=response, _pool=conn)
- except MaxRetryError:
- if retries.raise_on_redirect:
- raise
- return response
-
- kw['retries'] = retries
- kw['redirect'] = redirect
-
- log.info("Redirecting %s -> %s", url, redirect_location)
- return self.urlopen(method, redirect_location, **kw)
-
-
-class ProxyManager(PoolManager):
- """
- Behaves just like :class:`PoolManager`, but sends all requests through
- the defined proxy, using the CONNECT method for HTTPS URLs.
-
- :param proxy_url:
- The URL of the proxy to be used.
-
- :param proxy_headers:
- A dictionary contaning headers that will be sent to the proxy. In case
- of HTTP they are being sent with each request, while in the
- HTTPS/CONNECT case they are sent only once. Could be used for proxy
- authentication.
-
- Example:
- >>> proxy = urllib3.ProxyManager('http://localhost:3128/')
- >>> r1 = proxy.request('GET', 'http://google.com/')
- >>> r2 = proxy.request('GET', 'http://httpbin.org/')
- >>> len(proxy.pools)
- 1
- >>> r3 = proxy.request('GET', 'https://httpbin.org/')
- >>> r4 = proxy.request('GET', 'https://twitter.com/')
- >>> len(proxy.pools)
- 3
-
- """
-
- def __init__(self, proxy_url, num_pools=10, headers=None,
- proxy_headers=None, **connection_pool_kw):
-
- if isinstance(proxy_url, HTTPConnectionPool):
- proxy_url = '%s://%s:%i' % (proxy_url.scheme, proxy_url.host,
- proxy_url.port)
- proxy = parse_url(proxy_url)
- if not proxy.port:
- port = port_by_scheme.get(proxy.scheme, 80)
- proxy = proxy._replace(port=port)
-
- if proxy.scheme not in ("http", "https"):
- raise ProxySchemeUnknown(proxy.scheme)
-
- self.proxy = proxy
- self.proxy_headers = proxy_headers or {}
-
- connection_pool_kw['_proxy'] = self.proxy
- connection_pool_kw['_proxy_headers'] = self.proxy_headers
-
- super(ProxyManager, self).__init__(
- num_pools, headers, **connection_pool_kw)
-
- def connection_from_host(self, host, port=None, scheme='http'):
- if scheme == "https":
- return super(ProxyManager, self).connection_from_host(
- host, port, scheme)
-
- return super(ProxyManager, self).connection_from_host(
- self.proxy.host, self.proxy.port, self.proxy.scheme)
-
- def _set_proxy_headers(self, url, headers=None):
- """
- Sets headers needed by proxies: specifically, the Accept and Host
- headers. Only sets headers not provided by the user.
- """
- headers_ = {'Accept': '*/*'}
-
- netloc = parse_url(url).netloc
- if netloc:
- headers_['Host'] = netloc
-
- if headers:
- headers_.update(headers)
- return headers_
-
- def urlopen(self, method, url, redirect=True, **kw):
- "Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute."
- u = parse_url(url)
-
- if u.scheme == "http":
- # For proxied HTTPS requests, httplib sets the necessary headers
- # on the CONNECT to the proxy. For HTTP, we'll definitely
- # need to set 'Host' at the very least.
- headers = kw.get('headers', self.headers)
- kw['headers'] = self._set_proxy_headers(url, headers)
-
- return super(ProxyManager, self).urlopen(method, url, redirect=redirect, **kw)
-
-
-def proxy_from_url(url, **kw):
- return ProxyManager(proxy_url=url, **kw)
diff --git a/vendor/requests/packages/urllib3/request.py b/vendor/requests/packages/urllib3/request.py
deleted file mode 100644
index d5aa62d8..00000000
--- a/vendor/requests/packages/urllib3/request.py
+++ /dev/null
@@ -1,151 +0,0 @@
-from __future__ import absolute_import
-try:
- from urllib.parse import urlencode
-except ImportError:
- from urllib import urlencode
-
-from .filepost import encode_multipart_formdata
-
-
-__all__ = ['RequestMethods']
-
-
-class RequestMethods(object):
- """
- Convenience mixin for classes who implement a :meth:`urlopen` method, such
- as :class:`~urllib3.connectionpool.HTTPConnectionPool` and
- :class:`~urllib3.poolmanager.PoolManager`.
-
- Provides behavior for making common types of HTTP request methods and
- decides which type of request field encoding to use.
-
- Specifically,
-
- :meth:`.request_encode_url` is for sending requests whose fields are
- encoded in the URL (such as GET, HEAD, DELETE).
-
- :meth:`.request_encode_body` is for sending requests whose fields are
- encoded in the *body* of the request using multipart or www-form-urlencoded
- (such as for POST, PUT, PATCH).
-
- :meth:`.request` is for making any kind of request, it will look up the
- appropriate encoding format and use one of the above two methods to make
- the request.
-
- Initializer parameters:
-
- :param headers:
- Headers to include with all requests, unless other headers are given
- explicitly.
- """
-
- _encode_url_methods = set(['DELETE', 'GET', 'HEAD', 'OPTIONS'])
-
- def __init__(self, headers=None):
- self.headers = headers or {}
-
- def urlopen(self, method, url, body=None, headers=None,
- encode_multipart=True, multipart_boundary=None,
- **kw): # Abstract
- raise NotImplemented("Classes extending RequestMethods must implement "
- "their own ``urlopen`` method.")
-
- def request(self, method, url, fields=None, headers=None, **urlopen_kw):
- """
- Make a request using :meth:`urlopen` with the appropriate encoding of
- ``fields`` based on the ``method`` used.
-
- This is a convenience method that requires the least amount of manual
- effort. It can be used in most situations, while still having the
- option to drop down to more specific methods when necessary, such as
- :meth:`request_encode_url`, :meth:`request_encode_body`,
- or even the lowest level :meth:`urlopen`.
- """
- method = method.upper()
-
- if method in self._encode_url_methods:
- return self.request_encode_url(method, url, fields=fields,
- headers=headers,
- **urlopen_kw)
- else:
- return self.request_encode_body(method, url, fields=fields,
- headers=headers,
- **urlopen_kw)
-
- def request_encode_url(self, method, url, fields=None, headers=None,
- **urlopen_kw):
- """
- Make a request using :meth:`urlopen` with the ``fields`` encoded in
- the url. This is useful for request methods like GET, HEAD, DELETE, etc.
- """
- if headers is None:
- headers = self.headers
-
- extra_kw = {'headers': headers}
- extra_kw.update(urlopen_kw)
-
- if fields:
- url += '?' + urlencode(fields)
-
- return self.urlopen(method, url, **extra_kw)
-
- def request_encode_body(self, method, url, fields=None, headers=None,
- encode_multipart=True, multipart_boundary=None,
- **urlopen_kw):
- """
- Make a request using :meth:`urlopen` with the ``fields`` encoded in
- the body. This is useful for request methods like POST, PUT, PATCH, etc.
-
- When ``encode_multipart=True`` (default), then
- :meth:`urllib3.filepost.encode_multipart_formdata` is used to encode
- the payload with the appropriate content type. Otherwise
- :meth:`urllib.urlencode` is used with the
- 'application/x-www-form-urlencoded' content type.
-
- Multipart encoding must be used when posting files, and it's reasonably
- safe to use it in other times too. However, it may break request
- signing, such as with OAuth.
-
- Supports an optional ``fields`` parameter of key/value strings AND
- key/filetuple. A filetuple is a (filename, data, MIME type) tuple where
- the MIME type is optional. For example::
-
- fields = {
- 'foo': 'bar',
- 'fakefile': ('foofile.txt', 'contents of foofile'),
- 'realfile': ('barfile.txt', open('realfile').read()),
- 'typedfile': ('bazfile.bin', open('bazfile').read(),
- 'image/jpeg'),
- 'nonamefile': 'contents of nonamefile field',
- }
-
- When uploading a file, providing a filename (the first parameter of the
- tuple) is optional but recommended to best mimick behavior of browsers.
-
- Note that if ``headers`` are supplied, the 'Content-Type' header will
- be overwritten because it depends on the dynamic random boundary string
- which is used to compose the body of the request. The random boundary
- string can be explicitly set with the ``multipart_boundary`` parameter.
- """
- if headers is None:
- headers = self.headers
-
- extra_kw = {'headers': {}}
-
- if fields:
- if 'body' in urlopen_kw:
- raise TypeError(
- "request got values for both 'fields' and 'body', can only specify one.")
-
- if encode_multipart:
- body, content_type = encode_multipart_formdata(fields, boundary=multipart_boundary)
- else:
- body, content_type = urlencode(fields), 'application/x-www-form-urlencoded'
-
- extra_kw['body'] = body
- extra_kw['headers'] = {'Content-Type': content_type}
-
- extra_kw['headers'].update(headers)
- extra_kw.update(urlopen_kw)
-
- return self.urlopen(method, url, **extra_kw)
diff --git a/vendor/requests/packages/urllib3/response.py b/vendor/requests/packages/urllib3/response.py
deleted file mode 100644
index 55679032..00000000
--- a/vendor/requests/packages/urllib3/response.py
+++ /dev/null
@@ -1,530 +0,0 @@
-from __future__ import absolute_import
-from contextlib import contextmanager
-import zlib
-import io
-from socket import timeout as SocketTimeout
-from socket import error as SocketError
-
-from ._collections import HTTPHeaderDict
-from .exceptions import (
- ProtocolError, DecodeError, ReadTimeoutError, ResponseNotChunked
-)
-from .packages.six import string_types as basestring, binary_type, PY3
-from .packages.six.moves import http_client as httplib
-from .connection import HTTPException, BaseSSLError
-from .util.response import is_fp_closed, is_response_to_head
-
-
-class DeflateDecoder(object):
-
- def __init__(self):
- self._first_try = True
- self._data = binary_type()
- self._obj = zlib.decompressobj()
-
- def __getattr__(self, name):
- return getattr(self._obj, name)
-
- def decompress(self, data):
- if not data:
- return data
-
- if not self._first_try:
- return self._obj.decompress(data)
-
- self._data += data
- try:
- return self._obj.decompress(data)
- except zlib.error:
- self._first_try = False
- self._obj = zlib.decompressobj(-zlib.MAX_WBITS)
- try:
- return self.decompress(self._data)
- finally:
- self._data = None
-
-
-class GzipDecoder(object):
-
- def __init__(self):
- self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS)
-
- def __getattr__(self, name):
- return getattr(self._obj, name)
-
- def decompress(self, data):
- if not data:
- return data
- return self._obj.decompress(data)
-
-
-def _get_decoder(mode):
- if mode == 'gzip':
- return GzipDecoder()
-
- return DeflateDecoder()
-
-
-class HTTPResponse(io.IOBase):
- """
- HTTP Response container.
-
- Backwards-compatible to httplib's HTTPResponse but the response ``body`` is
- loaded and decoded on-demand when the ``data`` property is accessed. This
- class is also compatible with the Python standard library's :mod:`io`
- module, and can hence be treated as a readable object in the context of that
- framework.
-
- Extra parameters for behaviour not present in httplib.HTTPResponse:
-
- :param preload_content:
- If True, the response's body will be preloaded during construction.
-
- :param decode_content:
- If True, attempts to decode specific content-encoding's based on headers
- (like 'gzip' and 'deflate') will be skipped and raw data will be used
- instead.
-
- :param original_response:
- When this HTTPResponse wrapper is generated from an httplib.HTTPResponse
- object, it's convenient to include the original for debug purposes. It's
- otherwise unused.
- """
-
- CONTENT_DECODERS = ['gzip', 'deflate']
- REDIRECT_STATUSES = [301, 302, 303, 307, 308]
-
- def __init__(self, body='', headers=None, status=0, version=0, reason=None,
- strict=0, preload_content=True, decode_content=True,
- original_response=None, pool=None, connection=None):
-
- if isinstance(headers, HTTPHeaderDict):
- self.headers = headers
- else:
- self.headers = HTTPHeaderDict(headers)
- self.status = status
- self.version = version
- self.reason = reason
- self.strict = strict
- self.decode_content = decode_content
-
- self._decoder = None
- self._body = None
- self._fp = None
- self._original_response = original_response
- self._fp_bytes_read = 0
-
- if body and isinstance(body, (basestring, binary_type)):
- self._body = body
-
- self._pool = pool
- self._connection = connection
-
- if hasattr(body, 'read'):
- self._fp = body
-
- # Are we using the chunked-style of transfer encoding?
- self.chunked = False
- self.chunk_left = None
- tr_enc = self.headers.get('transfer-encoding', '').lower()
- # Don't incur the penalty of creating a list and then discarding it
- encodings = (enc.strip() for enc in tr_enc.split(","))
- if "chunked" in encodings:
- self.chunked = True
-
- # If requested, preload the body.
- if preload_content and not self._body:
- self._body = self.read(decode_content=decode_content)
-
- def get_redirect_location(self):
- """
- Should we redirect and where to?
-
- :returns: Truthy redirect location string if we got a redirect status
- code and valid location. ``None`` if redirect status and no
- location. ``False`` if not a redirect status code.
- """
- if self.status in self.REDIRECT_STATUSES:
- return self.headers.get('location')
-
- return False
-
- def release_conn(self):
- if not self._pool or not self._connection:
- return
-
- self._pool._put_conn(self._connection)
- self._connection = None
-
- @property
- def data(self):
- # For backwords-compat with earlier urllib3 0.4 and earlier.
- if self._body:
- return self._body
-
- if self._fp:
- return self.read(cache_content=True)
-
- @property
- def connection(self):
- return self._connection
-
- def tell(self):
- """
- Obtain the number of bytes pulled over the wire so far. May differ from
- the amount of content returned by :meth:``HTTPResponse.read`` if bytes
- are encoded on the wire (e.g, compressed).
- """
- return self._fp_bytes_read
-
- def _init_decoder(self):
- """
- Set-up the _decoder attribute if necessar.
- """
- # Note: content-encoding value should be case-insensitive, per RFC 7230
- # Section 3.2
- content_encoding = self.headers.get('content-encoding', '').lower()
- if self._decoder is None and content_encoding in self.CONTENT_DECODERS:
- self._decoder = _get_decoder(content_encoding)
-
- def _decode(self, data, decode_content, flush_decoder):
- """
- Decode the data passed in and potentially flush the decoder.
- """
- try:
- if decode_content and self._decoder:
- data = self._decoder.decompress(data)
- except (IOError, zlib.error) as e:
- content_encoding = self.headers.get('content-encoding', '').lower()
- raise DecodeError(
- "Received response with content-encoding: %s, but "
- "failed to decode it." % content_encoding, e)
-
- if flush_decoder and decode_content:
- data += self._flush_decoder()
-
- return data
-
- def _flush_decoder(self):
- """
- Flushes the decoder. Should only be called if the decoder is actually
- being used.
- """
- if self._decoder:
- buf = self._decoder.decompress(b'')
- return buf + self._decoder.flush()
-
- return b''
-
- @contextmanager
- def _error_catcher(self):
- """
- Catch low-level python exceptions, instead re-raising urllib3
- variants, so that low-level exceptions are not leaked in the
- high-level api.
-
- On exit, release the connection back to the pool.
- """
- clean_exit = False
-
- try:
- try:
- yield
-
- except SocketTimeout:
- # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but
- # there is yet no clean way to get at it from this context.
- raise ReadTimeoutError(self._pool, None, 'Read timed out.')
-
- except BaseSSLError as e:
- # FIXME: Is there a better way to differentiate between SSLErrors?
- if 'read operation timed out' not in str(e): # Defensive:
- # This shouldn't happen but just in case we're missing an edge
- # case, let's avoid swallowing SSL errors.
- raise
-
- raise ReadTimeoutError(self._pool, None, 'Read timed out.')
-
- except (HTTPException, SocketError) as e:
- # This includes IncompleteRead.
- raise ProtocolError('Connection broken: %r' % e, e)
-
- # If no exception is thrown, we should avoid cleaning up
- # unnecessarily.
- clean_exit = True
- finally:
- # If we didn't terminate cleanly, we need to throw away our
- # connection.
- if not clean_exit:
- # The response may not be closed but we're not going to use it
- # anymore so close it now to ensure that the connection is
- # released back to the pool.
- if self._original_response:
- self._original_response.close()
-
- # Closing the response may not actually be sufficient to close
- # everything, so if we have a hold of the connection close that
- # too.
- if self._connection:
- self._connection.close()
-
- # If we hold the original response but it's closed now, we should
- # return the connection back to the pool.
- if self._original_response and self._original_response.isclosed():
- self.release_conn()
-
- def read(self, amt=None, decode_content=None, cache_content=False):
- """
- Similar to :meth:`httplib.HTTPResponse.read`, but with two additional
- parameters: ``decode_content`` and ``cache_content``.
-
- :param amt:
- How much of the content to read. If specified, caching is skipped
- because it doesn't make sense to cache partial content as the full
- response.
-
- :param decode_content:
- If True, will attempt to decode the body based on the
- 'content-encoding' header.
-
- :param cache_content:
- If True, will save the returned data such that the same result is
- returned despite of the state of the underlying file object. This
- is useful if you want the ``.data`` property to continue working
- after having ``.read()`` the file object. (Overridden if ``amt`` is
- set.)
- """
- self._init_decoder()
- if decode_content is None:
- decode_content = self.decode_content
-
- if self._fp is None:
- return
-
- flush_decoder = False
- data = None
-
- with self._error_catcher():
- if amt is None:
- # cStringIO doesn't like amt=None
- data = self._fp.read()
- flush_decoder = True
- else:
- cache_content = False
- data = self._fp.read(amt)
- if amt != 0 and not data: # Platform-specific: Buggy versions of Python.
- # Close the connection when no data is returned
- #
- # This is redundant to what httplib/http.client _should_
- # already do. However, versions of python released before
- # December 15, 2012 (http://bugs.python.org/issue16298) do
- # not properly close the connection in all cases. There is
- # no harm in redundantly calling close.
- self._fp.close()
- flush_decoder = True
-
- if data:
- self._fp_bytes_read += len(data)
-
- data = self._decode(data, decode_content, flush_decoder)
-
- if cache_content:
- self._body = data
-
- return data
-
- def stream(self, amt=2**16, decode_content=None):
- """
- A generator wrapper for the read() method. A call will block until
- ``amt`` bytes have been read from the connection or until the
- connection is closed.
-
- :param amt:
- How much of the content to read. The generator will return up to
- much data per iteration, but may return less. This is particularly
- likely when using compressed data. However, the empty string will
- never be returned.
-
- :param decode_content:
- If True, will attempt to decode the body based on the
- 'content-encoding' header.
- """
- if self.chunked:
- for line in self.read_chunked(amt, decode_content=decode_content):
- yield line
- else:
- while not is_fp_closed(self._fp):
- data = self.read(amt=amt, decode_content=decode_content)
-
- if data:
- yield data
-
- @classmethod
- def from_httplib(ResponseCls, r, **response_kw):
- """
- Given an :class:`httplib.HTTPResponse` instance ``r``, return a
- corresponding :class:`urllib3.response.HTTPResponse` object.
-
- Remaining parameters are passed to the HTTPResponse constructor, along
- with ``original_response=r``.
- """
- headers = r.msg
-
- if not isinstance(headers, HTTPHeaderDict):
- if PY3: # Python 3
- headers = HTTPHeaderDict(headers.items())
- else: # Python 2
- headers = HTTPHeaderDict.from_httplib(headers)
-
- # HTTPResponse objects in Python 3 don't have a .strict attribute
- strict = getattr(r, 'strict', 0)
- resp = ResponseCls(body=r,
- headers=headers,
- status=r.status,
- version=r.version,
- reason=r.reason,
- strict=strict,
- original_response=r,
- **response_kw)
- return resp
-
- # Backwards-compatibility methods for httplib.HTTPResponse
- def getheaders(self):
- return self.headers
-
- def getheader(self, name, default=None):
- return self.headers.get(name, default)
-
- # Overrides from io.IOBase
- def close(self):
- if not self.closed:
- self._fp.close()
-
- if self._connection:
- self._connection.close()
-
- @property
- def closed(self):
- if self._fp is None:
- return True
- elif hasattr(self._fp, 'closed'):
- return self._fp.closed
- elif hasattr(self._fp, 'isclosed'): # Python 2
- return self._fp.isclosed()
- else:
- return True
-
- def fileno(self):
- if self._fp is None:
- raise IOError("HTTPResponse has no file to get a fileno from")
- elif hasattr(self._fp, "fileno"):
- return self._fp.fileno()
- else:
- raise IOError("The file-like object this HTTPResponse is wrapped "
- "around has no file descriptor")
-
- def flush(self):
- if self._fp is not None and hasattr(self._fp, 'flush'):
- return self._fp.flush()
-
- def readable(self):
- # This method is required for `io` module compatibility.
- return True
-
- def readinto(self, b):
- # This method is required for `io` module compatibility.
- temp = self.read(len(b))
- if len(temp) == 0:
- return 0
- else:
- b[:len(temp)] = temp
- return len(temp)
-
- def _update_chunk_length(self):
- # First, we'll figure out length of a chunk and then
- # we'll try to read it from socket.
- if self.chunk_left is not None:
- return
- line = self._fp.fp.readline()
- line = line.split(b';', 1)[0]
- try:
- self.chunk_left = int(line, 16)
- except ValueError:
- # Invalid chunked protocol response, abort.
- self.close()
- raise httplib.IncompleteRead(line)
-
- def _handle_chunk(self, amt):
- returned_chunk = None
- if amt is None:
- chunk = self._fp._safe_read(self.chunk_left)
- returned_chunk = chunk
- self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
- self.chunk_left = None
- elif amt < self.chunk_left:
- value = self._fp._safe_read(amt)
- self.chunk_left = self.chunk_left - amt
- returned_chunk = value
- elif amt == self.chunk_left:
- value = self._fp._safe_read(amt)
- self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
- self.chunk_left = None
- returned_chunk = value
- else: # amt > self.chunk_left
- returned_chunk = self._fp._safe_read(self.chunk_left)
- self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
- self.chunk_left = None
- return returned_chunk
-
- def read_chunked(self, amt=None, decode_content=None):
- """
- Similar to :meth:`HTTPResponse.read`, but with an additional
- parameter: ``decode_content``.
-
- :param decode_content:
- If True, will attempt to decode the body based on the
- 'content-encoding' header.
- """
- self._init_decoder()
- # FIXME: Rewrite this method and make it a class with a better structured logic.
- if not self.chunked:
- raise ResponseNotChunked(
- "Response is not chunked. "
- "Header 'transfer-encoding: chunked' is missing.")
-
- # Don't bother reading the body of a HEAD request.
- if self._original_response and is_response_to_head(self._original_response):
- self._original_response.close()
- return
-
- with self._error_catcher():
- while True:
- self._update_chunk_length()
- if self.chunk_left == 0:
- break
- chunk = self._handle_chunk(amt)
- decoded = self._decode(chunk, decode_content=decode_content,
- flush_decoder=False)
- if decoded:
- yield decoded
-
- if decode_content:
- # On CPython and PyPy, we should never need to flush the
- # decoder. However, on Jython we *might* need to, so
- # lets defensively do it anyway.
- decoded = self._flush_decoder()
- if decoded: # Platform-specific: Jython.
- yield decoded
-
- # Chunk content ends with \r\n: discard it.
- while True:
- line = self._fp.fp.readline()
- if not line:
- # Some sites may not end with '\r\n'.
- break
- if line == b'\r\n':
- break
-
- # We read everything; close the "file".
- if self._original_response:
- self._original_response.close()
diff --git a/vendor/requests/packages/urllib3/util/__init__.py b/vendor/requests/packages/urllib3/util/__init__.py
deleted file mode 100644
index 4778cf99..00000000
--- a/vendor/requests/packages/urllib3/util/__init__.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from __future__ import absolute_import
-# For backwards compatibility, provide imports that used to be here.
-from .connection import is_connection_dropped
-from .request import make_headers
-from .response import is_fp_closed
-from .ssl_ import (
- SSLContext,
- HAS_SNI,
- IS_PYOPENSSL,
- assert_fingerprint,
- resolve_cert_reqs,
- resolve_ssl_version,
- ssl_wrap_socket,
-)
-from .timeout import (
- current_time,
- Timeout,
-)
-
-from .retry import Retry
-from .url import (
- get_host,
- parse_url,
- split_first,
- Url,
-)
-
-__all__ = (
- 'HAS_SNI',
- 'IS_PYOPENSSL',
- 'SSLContext',
- 'Retry',
- 'Timeout',
- 'Url',
- 'assert_fingerprint',
- 'current_time',
- 'is_connection_dropped',
- 'is_fp_closed',
- 'get_host',
- 'parse_url',
- 'make_headers',
- 'resolve_cert_reqs',
- 'resolve_ssl_version',
- 'split_first',
- 'ssl_wrap_socket',
-)
diff --git a/vendor/requests/packages/urllib3/util/connection.py b/vendor/requests/packages/urllib3/util/connection.py
deleted file mode 100644
index 5e761352..00000000
--- a/vendor/requests/packages/urllib3/util/connection.py
+++ /dev/null
@@ -1,144 +0,0 @@
-from __future__ import absolute_import
-import socket
-try:
- from select import poll, POLLIN
-except ImportError: # `poll` doesn't exist on OSX and other platforms
- poll = False
- try:
- from select import select
- except ImportError: # `select` doesn't exist on AppEngine.
- select = False
-
-
-def is_connection_dropped(conn): # Platform-specific
- """
- Returns True if the connection is dropped and should be closed.
-
- :param conn:
- :class:`httplib.HTTPConnection` object.
-
- Note: For platforms like AppEngine, this will always return ``False`` to
- let the platform handle connection recycling transparently for us.
- """
- sock = getattr(conn, 'sock', False)
- if sock is False: # Platform-specific: AppEngine
- return False
- if sock is None: # Connection already closed (such as by httplib).
- return True
-
- if not poll:
- if not select: # Platform-specific: AppEngine
- return False
-
- try:
- return select([sock], [], [], 0.0)[0]
- except socket.error:
- return True
-
- # This version is better on platforms that support it.
- p = poll()
- p.register(sock, POLLIN)
- for (fno, ev) in p.poll(0.0):
- if fno == sock.fileno():
- # Either data is buffered (bad), or the connection is dropped.
- return True
-
-
-# This function is copied from socket.py in the Python 2.7 standard
-# library test suite. Added to its signature is only `socket_options`.
-# One additional modification is that we avoid binding to IPv6 servers
-# discovered in DNS if the system doesn't have IPv6 functionality.
-def create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
- source_address=None, socket_options=None):
- """Connect to *address* and return the socket object.
-
- Convenience function. Connect to *address* (a 2-tuple ``(host,
- port)``) and return the socket object. Passing the optional
- *timeout* parameter will set the timeout on the socket instance
- before attempting to connect. If no *timeout* is supplied, the
- global default timeout setting returned by :func:`getdefaulttimeout`
- is used. If *source_address* is set it must be a tuple of (host, port)
- for the socket to bind as a source address before making the connection.
- An host of '' or port 0 tells the OS to use the default.
- """
-
- host, port = address
- if host.startswith('['):
- host = host.strip('[]')
- err = None
-
- # Using the value from allowed_gai_family() in the context of getaddrinfo lets
- # us select whether to work with IPv4 DNS records, IPv6 records, or both.
- # The original create_connection function always returns all records.
- family = allowed_gai_family()
-
- for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
- af, socktype, proto, canonname, sa = res
- sock = None
- try:
- sock = socket.socket(af, socktype, proto)
-
- # If provided, set socket level options before connecting.
- _set_socket_options(sock, socket_options)
-
- if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
- sock.settimeout(timeout)
- if source_address:
- sock.bind(source_address)
- sock.connect(sa)
- return sock
-
- except socket.error as e:
- err = e
- if sock is not None:
- sock.close()
- sock = None
-
- if err is not None:
- raise err
-
- raise socket.error("getaddrinfo returns an empty list")
-
-
-def _set_socket_options(sock, options):
- if options is None:
- return
-
- for opt in options:
- sock.setsockopt(*opt)
-
-
-def allowed_gai_family():
- """This function is designed to work in the context of
- getaddrinfo, where family=socket.AF_UNSPEC is the default and
- will perform a DNS search for both IPv6 and IPv4 records."""
-
- family = socket.AF_INET
- if HAS_IPV6:
- family = socket.AF_UNSPEC
- return family
-
-
-def _has_ipv6(host):
- """ Returns True if the system can bind an IPv6 address. """
- sock = None
- has_ipv6 = False
-
- if socket.has_ipv6:
- # has_ipv6 returns true if cPython was compiled with IPv6 support.
- # It does not tell us if the system has IPv6 support enabled. To
- # determine that we must bind to an IPv6 address.
- # https://github.com/shazow/urllib3/pull/611
- # https://bugs.python.org/issue658327
- try:
- sock = socket.socket(socket.AF_INET6)
- sock.bind((host, 0))
- has_ipv6 = True
- except Exception:
- pass
-
- if sock:
- sock.close()
- return has_ipv6
-
-HAS_IPV6 = _has_ipv6('::1')
diff --git a/vendor/requests/packages/urllib3/util/request.py b/vendor/requests/packages/urllib3/util/request.py
deleted file mode 100644
index 73779315..00000000
--- a/vendor/requests/packages/urllib3/util/request.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from __future__ import absolute_import
-from base64 import b64encode
-
-from ..packages.six import b
-
-ACCEPT_ENCODING = 'gzip,deflate'
-
-
-def make_headers(keep_alive=None, accept_encoding=None, user_agent=None,
- basic_auth=None, proxy_basic_auth=None, disable_cache=None):
- """
- Shortcuts for generating request headers.
-
- :param keep_alive:
- If ``True``, adds 'connection: keep-alive' header.
-
- :param accept_encoding:
- Can be a boolean, list, or string.
- ``True`` translates to 'gzip,deflate'.
- List will get joined by comma.
- String will be used as provided.
-
- :param user_agent:
- String representing the user-agent you want, such as
- "python-urllib3/0.6"
-
- :param basic_auth:
- Colon-separated username:password string for 'authorization: basic ...'
- auth header.
-
- :param proxy_basic_auth:
- Colon-separated username:password string for 'proxy-authorization: basic ...'
- auth header.
-
- :param disable_cache:
- If ``True``, adds 'cache-control: no-cache' header.
-
- Example::
-
- >>> make_headers(keep_alive=True, user_agent="Batman/1.0")
- {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'}
- >>> make_headers(accept_encoding=True)
- {'accept-encoding': 'gzip,deflate'}
- """
- headers = {}
- if accept_encoding:
- if isinstance(accept_encoding, str):
- pass
- elif isinstance(accept_encoding, list):
- accept_encoding = ','.join(accept_encoding)
- else:
- accept_encoding = ACCEPT_ENCODING
- headers['accept-encoding'] = accept_encoding
-
- if user_agent:
- headers['user-agent'] = user_agent
-
- if keep_alive:
- headers['connection'] = 'keep-alive'
-
- if basic_auth:
- headers['authorization'] = 'Basic ' + \
- b64encode(b(basic_auth)).decode('utf-8')
-
- if proxy_basic_auth:
- headers['proxy-authorization'] = 'Basic ' + \
- b64encode(b(proxy_basic_auth)).decode('utf-8')
-
- if disable_cache:
- headers['cache-control'] = 'no-cache'
-
- return headers
diff --git a/vendor/requests/packages/urllib3/util/response.py b/vendor/requests/packages/urllib3/util/response.py
deleted file mode 100644
index 0b5c75c1..00000000
--- a/vendor/requests/packages/urllib3/util/response.py
+++ /dev/null
@@ -1,74 +0,0 @@
-from __future__ import absolute_import
-from ..packages.six.moves import http_client as httplib
-
-from ..exceptions import HeaderParsingError
-
-
-def is_fp_closed(obj):
- """
- Checks whether a given file-like object is closed.
-
- :param obj:
- The file-like object to check.
- """
-
- try:
- # Check via the official file-like-object way.
- return obj.closed
- except AttributeError:
- pass
-
- try:
- # Check if the object is a container for another file-like object that
- # gets released on exhaustion (e.g. HTTPResponse).
- return obj.fp is None
- except AttributeError:
- pass
-
- raise ValueError("Unable to determine whether fp is closed.")
-
-
-def assert_header_parsing(headers):
- """
- Asserts whether all headers have been successfully parsed.
- Extracts encountered errors from the result of parsing headers.
-
- Only works on Python 3.
-
- :param headers: Headers to verify.
- :type headers: `httplib.HTTPMessage`.
-
- :raises urllib3.exceptions.HeaderParsingError:
- If parsing errors are found.
- """
-
- # This will fail silently if we pass in the wrong kind of parameter.
- # To make debugging easier add an explicit check.
- if not isinstance(headers, httplib.HTTPMessage):
- raise TypeError('expected httplib.Message, got {0}.'.format(
- type(headers)))
-
- defects = getattr(headers, 'defects', None)
- get_payload = getattr(headers, 'get_payload', None)
-
- unparsed_data = None
- if get_payload: # Platform-specific: Python 3.
- unparsed_data = get_payload()
-
- if defects or unparsed_data:
- raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data)
-
-
-def is_response_to_head(response):
- """
- Checks whether the request of a response has been a HEAD-request.
- Handles the quirks of AppEngine.
-
- :param conn:
- :type conn: :class:`httplib.HTTPResponse`
- """
- # FIXME: Can we do this somehow without accessing private httplib _method?
- method = response._method
- if isinstance(method, int): # Platform-specific: Appengine
- return method == 3
- return method.upper() == 'HEAD'
diff --git a/vendor/requests/packages/urllib3/util/retry.py b/vendor/requests/packages/urllib3/util/retry.py
deleted file mode 100644
index d379833c..00000000
--- a/vendor/requests/packages/urllib3/util/retry.py
+++ /dev/null
@@ -1,300 +0,0 @@
-from __future__ import absolute_import
-import time
-import logging
-
-from ..exceptions import (
- ConnectTimeoutError,
- MaxRetryError,
- ProtocolError,
- ReadTimeoutError,
- ResponseError,
-)
-from ..packages import six
-
-
-log = logging.getLogger(__name__)
-
-
-class Retry(object):
- """ Retry configuration.
-
- Each retry attempt will create a new Retry object with updated values, so
- they can be safely reused.
-
- Retries can be defined as a default for a pool::
-
- retries = Retry(connect=5, read=2, redirect=5)
- http = PoolManager(retries=retries)
- response = http.request('GET', 'http://example.com/')
-
- Or per-request (which overrides the default for the pool)::
-
- response = http.request('GET', 'http://example.com/', retries=Retry(10))
-
- Retries can be disabled by passing ``False``::
-
- response = http.request('GET', 'http://example.com/', retries=False)
-
- Errors will be wrapped in :class:`~urllib3.exceptions.MaxRetryError` unless
- retries are disabled, in which case the causing exception will be raised.
-
- :param int total:
- Total number of retries to allow. Takes precedence over other counts.
-
- Set to ``None`` to remove this constraint and fall back on other
- counts. It's a good idea to set this to some sensibly-high value to
- account for unexpected edge cases and avoid infinite retry loops.
-
- Set to ``0`` to fail on the first retry.
-
- Set to ``False`` to disable and imply ``raise_on_redirect=False``.
-
- :param int connect:
- How many connection-related errors to retry on.
-
- These are errors raised before the request is sent to the remote server,
- which we assume has not triggered the server to process the request.
-
- Set to ``0`` to fail on the first retry of this type.
-
- :param int read:
- How many times to retry on read errors.
-
- These errors are raised after the request was sent to the server, so the
- request may have side-effects.
-
- Set to ``0`` to fail on the first retry of this type.
-
- :param int redirect:
- How many redirects to perform. Limit this to avoid infinite redirect
- loops.
-
- A redirect is a HTTP response with a status code 301, 302, 303, 307 or
- 308.
-
- Set to ``0`` to fail on the first retry of this type.
-
- Set to ``False`` to disable and imply ``raise_on_redirect=False``.
-
- :param iterable method_whitelist:
- Set of uppercased HTTP method verbs that we should retry on.
-
- By default, we only retry on methods which are considered to be
- idempotent (multiple requests with the same parameters end with the
- same state). See :attr:`Retry.DEFAULT_METHOD_WHITELIST`.
-
- Set to a ``False`` value to retry on any verb.
-
- :param iterable status_forcelist:
- A set of integer HTTP status codes that we should force a retry on.
- A retry is initiated if the request method is in ``method_whitelist``
- and the response status code is in ``status_forcelist``.
-
- By default, this is disabled with ``None``.
-
- :param float backoff_factor:
- A backoff factor to apply between attempts after the second try
- (most errors are resolved immediately by a second try without a
- delay). urllib3 will sleep for::
-
- {backoff factor} * (2 ^ ({number of total retries} - 1))
-
- seconds. If the backoff_factor is 0.1, then :func:`.sleep` will sleep
- for [0.0s, 0.2s, 0.4s, ...] between retries. It will never be longer
- than :attr:`Retry.BACKOFF_MAX`.
-
- By default, backoff is disabled (set to 0).
-
- :param bool raise_on_redirect: Whether, if the number of redirects is
- exhausted, to raise a MaxRetryError, or to return a response with a
- response code in the 3xx range.
-
- :param bool raise_on_status: Similar meaning to ``raise_on_redirect``:
- whether we should raise an exception, or return a response,
- if status falls in ``status_forcelist`` range and retries have
- been exhausted.
- """
-
- DEFAULT_METHOD_WHITELIST = frozenset([
- 'HEAD', 'GET', 'PUT', 'DELETE', 'OPTIONS', 'TRACE'])
-
- #: Maximum backoff time.
- BACKOFF_MAX = 120
-
- def __init__(self, total=10, connect=None, read=None, redirect=None,
- method_whitelist=DEFAULT_METHOD_WHITELIST, status_forcelist=None,
- backoff_factor=0, raise_on_redirect=True, raise_on_status=True,
- _observed_errors=0):
-
- self.total = total
- self.connect = connect
- self.read = read
-
- if redirect is False or total is False:
- redirect = 0
- raise_on_redirect = False
-
- self.redirect = redirect
- self.status_forcelist = status_forcelist or set()
- self.method_whitelist = method_whitelist
- self.backoff_factor = backoff_factor
- self.raise_on_redirect = raise_on_redirect
- self.raise_on_status = raise_on_status
- self._observed_errors = _observed_errors # TODO: use .history instead?
-
- def new(self, **kw):
- params = dict(
- total=self.total,
- connect=self.connect, read=self.read, redirect=self.redirect,
- method_whitelist=self.method_whitelist,
- status_forcelist=self.status_forcelist,
- backoff_factor=self.backoff_factor,
- raise_on_redirect=self.raise_on_redirect,
- raise_on_status=self.raise_on_status,
- _observed_errors=self._observed_errors,
- )
- params.update(kw)
- return type(self)(**params)
-
- @classmethod
- def from_int(cls, retries, redirect=True, default=None):
- """ Backwards-compatibility for the old retries format."""
- if retries is None:
- retries = default if default is not None else cls.DEFAULT
-
- if isinstance(retries, Retry):
- return retries
-
- redirect = bool(redirect) and None
- new_retries = cls(retries, redirect=redirect)
- log.debug("Converted retries value: %r -> %r", retries, new_retries)
- return new_retries
-
- def get_backoff_time(self):
- """ Formula for computing the current backoff
-
- :rtype: float
- """
- if self._observed_errors <= 1:
- return 0
-
- backoff_value = self.backoff_factor * (2 ** (self._observed_errors - 1))
- return min(self.BACKOFF_MAX, backoff_value)
-
- def sleep(self):
- """ Sleep between retry attempts using an exponential backoff.
-
- By default, the backoff factor is 0 and this method will return
- immediately.
- """
- backoff = self.get_backoff_time()
- if backoff <= 0:
- return
- time.sleep(backoff)
-
- def _is_connection_error(self, err):
- """ Errors when we're fairly sure that the server did not receive the
- request, so it should be safe to retry.
- """
- return isinstance(err, ConnectTimeoutError)
-
- def _is_read_error(self, err):
- """ Errors that occur after the request has been started, so we should
- assume that the server began processing it.
- """
- return isinstance(err, (ReadTimeoutError, ProtocolError))
-
- def is_forced_retry(self, method, status_code):
- """ Is this method/status code retryable? (Based on method/codes whitelists)
- """
- if self.method_whitelist and method.upper() not in self.method_whitelist:
- return False
-
- return self.status_forcelist and status_code in self.status_forcelist
-
- def is_exhausted(self):
- """ Are we out of retries? """
- retry_counts = (self.total, self.connect, self.read, self.redirect)
- retry_counts = list(filter(None, retry_counts))
- if not retry_counts:
- return False
-
- return min(retry_counts) < 0
-
- def increment(self, method=None, url=None, response=None, error=None,
- _pool=None, _stacktrace=None):
- """ Return a new Retry object with incremented retry counters.
-
- :param response: A response object, or None, if the server did not
- return a response.
- :type response: :class:`~urllib3.response.HTTPResponse`
- :param Exception error: An error encountered during the request, or
- None if the response was received successfully.
-
- :return: A new ``Retry`` object.
- """
- if self.total is False and error:
- # Disabled, indicate to re-raise the error.
- raise six.reraise(type(error), error, _stacktrace)
-
- total = self.total
- if total is not None:
- total -= 1
-
- _observed_errors = self._observed_errors
- connect = self.connect
- read = self.read
- redirect = self.redirect
- cause = 'unknown'
-
- if error and self._is_connection_error(error):
- # Connect retry?
- if connect is False:
- raise six.reraise(type(error), error, _stacktrace)
- elif connect is not None:
- connect -= 1
- _observed_errors += 1
-
- elif error and self._is_read_error(error):
- # Read retry?
- if read is False:
- raise six.reraise(type(error), error, _stacktrace)
- elif read is not None:
- read -= 1
- _observed_errors += 1
-
- elif response and response.get_redirect_location():
- # Redirect retry?
- if redirect is not None:
- redirect -= 1
- cause = 'too many redirects'
-
- else:
- # Incrementing because of a server error like a 500 in
- # status_forcelist and a the given method is in the whitelist
- _observed_errors += 1
- cause = ResponseError.GENERIC_ERROR
- if response and response.status:
- cause = ResponseError.SPECIFIC_ERROR.format(
- status_code=response.status)
-
- new_retry = self.new(
- total=total,
- connect=connect, read=read, redirect=redirect,
- _observed_errors=_observed_errors)
-
- if new_retry.is_exhausted():
- raise MaxRetryError(_pool, url, error or ResponseError(cause))
-
- log.debug("Incremented Retry for (url='%s'): %r", url, new_retry)
-
- return new_retry
-
- def __repr__(self):
- return ('{cls.__name__}(total={self.total}, connect={self.connect}, '
- 'read={self.read}, redirect={self.redirect})').format(
- cls=type(self), self=self)
-
-
-# For backwards compatibility (equivalent to pre-v1.9):
-Retry.DEFAULT = Retry(3)
diff --git a/vendor/requests/packages/urllib3/util/ssl_.py b/vendor/requests/packages/urllib3/util/ssl_.py
deleted file mode 100644
index 4a64d7ef..00000000
--- a/vendor/requests/packages/urllib3/util/ssl_.py
+++ /dev/null
@@ -1,320 +0,0 @@
-from __future__ import absolute_import
-import errno
-import warnings
-import hmac
-
-from binascii import hexlify, unhexlify
-from hashlib import md5, sha1, sha256
-
-from ..exceptions import SSLError, InsecurePlatformWarning, SNIMissingWarning
-
-
-SSLContext = None
-HAS_SNI = False
-create_default_context = None
-IS_PYOPENSSL = False
-
-# Maps the length of a digest to a possible hash function producing this digest
-HASHFUNC_MAP = {
- 32: md5,
- 40: sha1,
- 64: sha256,
-}
-
-
-def _const_compare_digest_backport(a, b):
- """
- Compare two digests of equal length in constant time.
-
- The digests must be of type str/bytes.
- Returns True if the digests match, and False otherwise.
- """
- result = abs(len(a) - len(b))
- for l, r in zip(bytearray(a), bytearray(b)):
- result |= l ^ r
- return result == 0
-
-
-_const_compare_digest = getattr(hmac, 'compare_digest',
- _const_compare_digest_backport)
-
-
-try: # Test for SSL features
- import ssl
- from ssl import wrap_socket, CERT_NONE, PROTOCOL_SSLv23
- from ssl import HAS_SNI # Has SNI?
-except ImportError:
- pass
-
-
-try:
- from ssl import OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_COMPRESSION
-except ImportError:
- OP_NO_SSLv2, OP_NO_SSLv3 = 0x1000000, 0x2000000
- OP_NO_COMPRESSION = 0x20000
-
-# A secure default.
-# Sources for more information on TLS ciphers:
-#
-# - https://wiki.mozilla.org/Security/Server_Side_TLS
-# - https://www.ssllabs.com/projects/best-practices/index.html
-# - https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
-#
-# The general intent is:
-# - Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE),
-# - prefer ECDHE over DHE for better performance,
-# - prefer any AES-GCM over any AES-CBC for better performance and security,
-# - use 3DES as fallback which is secure but slow,
-# - disable NULL authentication, MD5 MACs and DSS for security reasons.
-DEFAULT_CIPHERS = (
- 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
- 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
- '!eNULL:!MD5'
-)
-
-try:
- from ssl import SSLContext # Modern SSL?
-except ImportError:
- import sys
-
- class SSLContext(object): # Platform-specific: Python 2 & 3.1
- supports_set_ciphers = ((2, 7) <= sys.version_info < (3,) or
- (3, 2) <= sys.version_info)
-
- def __init__(self, protocol_version):
- self.protocol = protocol_version
- # Use default values from a real SSLContext
- self.check_hostname = False
- self.verify_mode = ssl.CERT_NONE
- self.ca_certs = None
- self.options = 0
- self.certfile = None
- self.keyfile = None
- self.ciphers = None
-
- def load_cert_chain(self, certfile, keyfile):
- self.certfile = certfile
- self.keyfile = keyfile
-
- def load_verify_locations(self, cafile=None, capath=None):
- self.ca_certs = cafile
-
- if capath is not None:
- raise SSLError("CA directories not supported in older Pythons")
-
- def set_ciphers(self, cipher_suite):
- if not self.supports_set_ciphers:
- raise TypeError(
- 'Your version of Python does not support setting '
- 'a custom cipher suite. Please upgrade to Python '
- '2.7, 3.2, or later if you need this functionality.'
- )
- self.ciphers = cipher_suite
-
- def wrap_socket(self, socket, server_hostname=None, server_side=False):
- warnings.warn(
- 'A true SSLContext object is not available. This prevents '
- 'urllib3 from configuring SSL appropriately and may cause '
- 'certain SSL connections to fail. You can upgrade to a newer '
- 'version of Python to solve this. For more information, see '
- 'https://urllib3.readthedocs.io/en/latest/security.html'
- '#insecureplatformwarning.',
- InsecurePlatformWarning
- )
- kwargs = {
- 'keyfile': self.keyfile,
- 'certfile': self.certfile,
- 'ca_certs': self.ca_certs,
- 'cert_reqs': self.verify_mode,
- 'ssl_version': self.protocol,
- 'server_side': server_side,
- }
- if self.supports_set_ciphers: # Platform-specific: Python 2.7+
- return wrap_socket(socket, ciphers=self.ciphers, **kwargs)
- else: # Platform-specific: Python 2.6
- return wrap_socket(socket, **kwargs)
-
-
-def assert_fingerprint(cert, fingerprint):
- """
- Checks if given fingerprint matches the supplied certificate.
-
- :param cert:
- Certificate as bytes object.
- :param fingerprint:
- Fingerprint as string of hexdigits, can be interspersed by colons.
- """
-
- fingerprint = fingerprint.replace(':', '').lower()
- digest_length = len(fingerprint)
- hashfunc = HASHFUNC_MAP.get(digest_length)
- if not hashfunc:
- raise SSLError(
- 'Fingerprint of invalid length: {0}'.format(fingerprint))
-
- # We need encode() here for py32; works on py2 and p33.
- fingerprint_bytes = unhexlify(fingerprint.encode())
-
- cert_digest = hashfunc(cert).digest()
-
- if not _const_compare_digest(cert_digest, fingerprint_bytes):
- raise SSLError('Fingerprints did not match. Expected "{0}", got "{1}".'
- .format(fingerprint, hexlify(cert_digest)))
-
-
-def resolve_cert_reqs(candidate):
- """
- Resolves the argument to a numeric constant, which can be passed to
- the wrap_socket function/method from the ssl module.
- Defaults to :data:`ssl.CERT_NONE`.
- If given a string it is assumed to be the name of the constant in the
- :mod:`ssl` module or its abbrevation.
- (So you can specify `REQUIRED` instead of `CERT_REQUIRED`.
- If it's neither `None` nor a string we assume it is already the numeric
- constant which can directly be passed to wrap_socket.
- """
- if candidate is None:
- return CERT_NONE
-
- if isinstance(candidate, str):
- res = getattr(ssl, candidate, None)
- if res is None:
- res = getattr(ssl, 'CERT_' + candidate)
- return res
-
- return candidate
-
-
-def resolve_ssl_version(candidate):
- """
- like resolve_cert_reqs
- """
- if candidate is None:
- return PROTOCOL_SSLv23
-
- if isinstance(candidate, str):
- res = getattr(ssl, candidate, None)
- if res is None:
- res = getattr(ssl, 'PROTOCOL_' + candidate)
- return res
-
- return candidate
-
-
-def create_urllib3_context(ssl_version=None, cert_reqs=None,
- options=None, ciphers=None):
- """All arguments have the same meaning as ``ssl_wrap_socket``.
-
- By default, this function does a lot of the same work that
- ``ssl.create_default_context`` does on Python 3.4+. It:
-
- - Disables SSLv2, SSLv3, and compression
- - Sets a restricted set of server ciphers
-
- If you wish to enable SSLv3, you can do::
-
- from urllib3.util import ssl_
- context = ssl_.create_urllib3_context()
- context.options &= ~ssl_.OP_NO_SSLv3
-
- You can do the same to enable compression (substituting ``COMPRESSION``
- for ``SSLv3`` in the last line above).
-
- :param ssl_version:
- The desired protocol version to use. This will default to
- PROTOCOL_SSLv23 which will negotiate the highest protocol that both
- the server and your installation of OpenSSL support.
- :param cert_reqs:
- Whether to require the certificate verification. This defaults to
- ``ssl.CERT_REQUIRED``.
- :param options:
- Specific OpenSSL options. These default to ``ssl.OP_NO_SSLv2``,
- ``ssl.OP_NO_SSLv3``, ``ssl.OP_NO_COMPRESSION``.
- :param ciphers:
- Which cipher suites to allow the server to select.
- :returns:
- Constructed SSLContext object with specified options
- :rtype: SSLContext
- """
- context = SSLContext(ssl_version or ssl.PROTOCOL_SSLv23)
-
- # Setting the default here, as we may have no ssl module on import
- cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs
-
- if options is None:
- options = 0
- # SSLv2 is easily broken and is considered harmful and dangerous
- options |= OP_NO_SSLv2
- # SSLv3 has several problems and is now dangerous
- options |= OP_NO_SSLv3
- # Disable compression to prevent CRIME attacks for OpenSSL 1.0+
- # (issue #309)
- options |= OP_NO_COMPRESSION
-
- context.options |= options
-
- if getattr(context, 'supports_set_ciphers', True): # Platform-specific: Python 2.6
- context.set_ciphers(ciphers or DEFAULT_CIPHERS)
-
- context.verify_mode = cert_reqs
- if getattr(context, 'check_hostname', None) is not None: # Platform-specific: Python 3.2
- # We do our own verification, including fingerprints and alternative
- # hostnames. So disable it here
- context.check_hostname = False
- return context
-
-
-def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None,
- ca_certs=None, server_hostname=None,
- ssl_version=None, ciphers=None, ssl_context=None,
- ca_cert_dir=None):
- """
- All arguments except for server_hostname, ssl_context, and ca_cert_dir have
- the same meaning as they do when using :func:`ssl.wrap_socket`.
-
- :param server_hostname:
- When SNI is supported, the expected hostname of the certificate
- :param ssl_context:
- A pre-made :class:`SSLContext` object. If none is provided, one will
- be created using :func:`create_urllib3_context`.
- :param ciphers:
- A string of ciphers we wish the client to support. This is not
- supported on Python 2.6 as the ssl module does not support it.
- :param ca_cert_dir:
- A directory containing CA certificates in multiple separate files, as
- supported by OpenSSL's -CApath flag or the capath argument to
- SSLContext.load_verify_locations().
- """
- context = ssl_context
- if context is None:
- context = create_urllib3_context(ssl_version, cert_reqs,
- ciphers=ciphers)
-
- if ca_certs or ca_cert_dir:
- try:
- context.load_verify_locations(ca_certs, ca_cert_dir)
- except IOError as e: # Platform-specific: Python 2.6, 2.7, 3.2
- raise SSLError(e)
- # Py33 raises FileNotFoundError which subclasses OSError
- # These are not equivalent unless we check the errno attribute
- except OSError as e: # Platform-specific: Python 3.3 and beyond
- if e.errno == errno.ENOENT:
- raise SSLError(e)
- raise
-
- if certfile:
- context.load_cert_chain(certfile, keyfile)
- if HAS_SNI: # Platform-specific: OpenSSL with enabled SNI
- return context.wrap_socket(sock, server_hostname=server_hostname)
-
- warnings.warn(
- 'An HTTPS request has been made, but the SNI (Subject Name '
- 'Indication) extension to TLS is not available on this platform. '
- 'This may cause the server to present an incorrect TLS '
- 'certificate, which can cause validation failures. You can upgrade to '
- 'a newer version of Python to solve this. For more information, see '
- 'https://urllib3.readthedocs.io/en/latest/security.html'
- '#snimissingwarning.',
- SNIMissingWarning
- )
- return context.wrap_socket(sock)
diff --git a/vendor/requests/packages/urllib3/util/timeout.py b/vendor/requests/packages/urllib3/util/timeout.py
deleted file mode 100644
index ff62f476..00000000
--- a/vendor/requests/packages/urllib3/util/timeout.py
+++ /dev/null
@@ -1,242 +0,0 @@
-from __future__ import absolute_import
-# The default socket timeout, used by httplib to indicate that no timeout was
-# specified by the user
-from socket import _GLOBAL_DEFAULT_TIMEOUT
-import time
-
-from ..exceptions import TimeoutStateError
-
-# A sentinel value to indicate that no timeout was specified by the user in
-# urllib3
-_Default = object()
-
-
-def current_time():
- """
- Retrieve the current time. This function is mocked out in unit testing.
- """
- return time.time()
-
-
-class Timeout(object):
- """ Timeout configuration.
-
- Timeouts can be defined as a default for a pool::
-
- timeout = Timeout(connect=2.0, read=7.0)
- http = PoolManager(timeout=timeout)
- response = http.request('GET', 'http://example.com/')
-
- Or per-request (which overrides the default for the pool)::
-
- response = http.request('GET', 'http://example.com/', timeout=Timeout(10))
-
- Timeouts can be disabled by setting all the parameters to ``None``::
-
- no_timeout = Timeout(connect=None, read=None)
- response = http.request('GET', 'http://example.com/, timeout=no_timeout)
-
-
- :param total:
- This combines the connect and read timeouts into one; the read timeout
- will be set to the time leftover from the connect attempt. In the
- event that both a connect timeout and a total are specified, or a read
- timeout and a total are specified, the shorter timeout will be applied.
-
- Defaults to None.
-
- :type total: integer, float, or None
-
- :param connect:
- The maximum amount of time to wait for a connection attempt to a server
- to succeed. Omitting the parameter will default the connect timeout to
- the system default, probably `the global default timeout in socket.py
- `_.
- None will set an infinite timeout for connection attempts.
-
- :type connect: integer, float, or None
-
- :param read:
- The maximum amount of time to wait between consecutive
- read operations for a response from the server. Omitting
- the parameter will default the read timeout to the system
- default, probably `the global default timeout in socket.py
- `_.
- None will set an infinite timeout.
-
- :type read: integer, float, or None
-
- .. note::
-
- Many factors can affect the total amount of time for urllib3 to return
- an HTTP response.
-
- For example, Python's DNS resolver does not obey the timeout specified
- on the socket. Other factors that can affect total request time include
- high CPU load, high swap, the program running at a low priority level,
- or other behaviors.
-
- In addition, the read and total timeouts only measure the time between
- read operations on the socket connecting the client and the server,
- not the total amount of time for the request to return a complete
- response. For most requests, the timeout is raised because the server
- has not sent the first byte in the specified time. This is not always
- the case; if a server streams one byte every fifteen seconds, a timeout
- of 20 seconds will not trigger, even though the request will take
- several minutes to complete.
-
- If your goal is to cut off any request after a set amount of wall clock
- time, consider having a second "watcher" thread to cut off a slow
- request.
- """
-
- #: A sentinel object representing the default timeout value
- DEFAULT_TIMEOUT = _GLOBAL_DEFAULT_TIMEOUT
-
- def __init__(self, total=None, connect=_Default, read=_Default):
- self._connect = self._validate_timeout(connect, 'connect')
- self._read = self._validate_timeout(read, 'read')
- self.total = self._validate_timeout(total, 'total')
- self._start_connect = None
-
- def __str__(self):
- return '%s(connect=%r, read=%r, total=%r)' % (
- type(self).__name__, self._connect, self._read, self.total)
-
- @classmethod
- def _validate_timeout(cls, value, name):
- """ Check that a timeout attribute is valid.
-
- :param value: The timeout value to validate
- :param name: The name of the timeout attribute to validate. This is
- used to specify in error messages.
- :return: The validated and casted version of the given value.
- :raises ValueError: If the type is not an integer or a float, or if it
- is a numeric value less than zero.
- """
- if value is _Default:
- return cls.DEFAULT_TIMEOUT
-
- if value is None or value is cls.DEFAULT_TIMEOUT:
- return value
-
- try:
- float(value)
- except (TypeError, ValueError):
- raise ValueError("Timeout value %s was %s, but it must be an "
- "int or float." % (name, value))
-
- try:
- if value < 0:
- raise ValueError("Attempted to set %s timeout to %s, but the "
- "timeout cannot be set to a value less "
- "than 0." % (name, value))
- except TypeError: # Python 3
- raise ValueError("Timeout value %s was %s, but it must be an "
- "int or float." % (name, value))
-
- return value
-
- @classmethod
- def from_float(cls, timeout):
- """ Create a new Timeout from a legacy timeout value.
-
- The timeout value used by httplib.py sets the same timeout on the
- connect(), and recv() socket requests. This creates a :class:`Timeout`
- object that sets the individual timeouts to the ``timeout`` value
- passed to this function.
-
- :param timeout: The legacy timeout value.
- :type timeout: integer, float, sentinel default object, or None
- :return: Timeout object
- :rtype: :class:`Timeout`
- """
- return Timeout(read=timeout, connect=timeout)
-
- def clone(self):
- """ Create a copy of the timeout object
-
- Timeout properties are stored per-pool but each request needs a fresh
- Timeout object to ensure each one has its own start/stop configured.
-
- :return: a copy of the timeout object
- :rtype: :class:`Timeout`
- """
- # We can't use copy.deepcopy because that will also create a new object
- # for _GLOBAL_DEFAULT_TIMEOUT, which socket.py uses as a sentinel to
- # detect the user default.
- return Timeout(connect=self._connect, read=self._read,
- total=self.total)
-
- def start_connect(self):
- """ Start the timeout clock, used during a connect() attempt
-
- :raises urllib3.exceptions.TimeoutStateError: if you attempt
- to start a timer that has been started already.
- """
- if self._start_connect is not None:
- raise TimeoutStateError("Timeout timer has already been started.")
- self._start_connect = current_time()
- return self._start_connect
-
- def get_connect_duration(self):
- """ Gets the time elapsed since the call to :meth:`start_connect`.
-
- :return: Elapsed time.
- :rtype: float
- :raises urllib3.exceptions.TimeoutStateError: if you attempt
- to get duration for a timer that hasn't been started.
- """
- if self._start_connect is None:
- raise TimeoutStateError("Can't get connect duration for timer "
- "that has not started.")
- return current_time() - self._start_connect
-
- @property
- def connect_timeout(self):
- """ Get the value to use when setting a connection timeout.
-
- This will be a positive float or integer, the value None
- (never timeout), or the default system timeout.
-
- :return: Connect timeout.
- :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None
- """
- if self.total is None:
- return self._connect
-
- if self._connect is None or self._connect is self.DEFAULT_TIMEOUT:
- return self.total
-
- return min(self._connect, self.total)
-
- @property
- def read_timeout(self):
- """ Get the value for the read timeout.
-
- This assumes some time has elapsed in the connection timeout and
- computes the read timeout appropriately.
-
- If self.total is set, the read timeout is dependent on the amount of
- time taken by the connect timeout. If the connection time has not been
- established, a :exc:`~urllib3.exceptions.TimeoutStateError` will be
- raised.
-
- :return: Value to use for the read timeout.
- :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None
- :raises urllib3.exceptions.TimeoutStateError: If :meth:`start_connect`
- has not yet been called on this object.
- """
- if (self.total is not None and
- self.total is not self.DEFAULT_TIMEOUT and
- self._read is not None and
- self._read is not self.DEFAULT_TIMEOUT):
- # In case the connect timeout has not yet been established.
- if self._start_connect is None:
- return self._read
- return max(0, min(self.total - self.get_connect_duration(),
- self._read))
- elif self.total is not None and self.total is not self.DEFAULT_TIMEOUT:
- return max(0, self.total - self.get_connect_duration())
- else:
- return self._read
diff --git a/vendor/requests/packages/urllib3/util/url.py b/vendor/requests/packages/urllib3/util/url.py
deleted file mode 100644
index e996204a..00000000
--- a/vendor/requests/packages/urllib3/util/url.py
+++ /dev/null
@@ -1,217 +0,0 @@
-from __future__ import absolute_import
-from collections import namedtuple
-
-from ..exceptions import LocationParseError
-
-
-url_attrs = ['scheme', 'auth', 'host', 'port', 'path', 'query', 'fragment']
-
-
-class Url(namedtuple('Url', url_attrs)):
- """
- Datastructure for representing an HTTP URL. Used as a return value for
- :func:`parse_url`.
- """
- slots = ()
-
- def __new__(cls, scheme=None, auth=None, host=None, port=None, path=None,
- query=None, fragment=None):
- if path and not path.startswith('/'):
- path = '/' + path
- return super(Url, cls).__new__(cls, scheme, auth, host, port, path,
- query, fragment)
-
- @property
- def hostname(self):
- """For backwards-compatibility with urlparse. We're nice like that."""
- return self.host
-
- @property
- def request_uri(self):
- """Absolute path including the query string."""
- uri = self.path or '/'
-
- if self.query is not None:
- uri += '?' + self.query
-
- return uri
-
- @property
- def netloc(self):
- """Network location including host and port"""
- if self.port:
- return '%s:%d' % (self.host, self.port)
- return self.host
-
- @property
- def url(self):
- """
- Convert self into a url
-
- This function should more or less round-trip with :func:`.parse_url`. The
- returned url may not be exactly the same as the url inputted to
- :func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls
- with a blank port will have : removed).
-
- Example: ::
-
- >>> U = parse_url('http://google.com/mail/')
- >>> U.url
- 'http://google.com/mail/'
- >>> Url('http', 'username:password', 'host.com', 80,
- ... '/path', 'query', 'fragment').url
- 'http://username:password@host.com:80/path?query#fragment'
- """
- scheme, auth, host, port, path, query, fragment = self
- url = ''
-
- # We use "is not None" we want things to happen with empty strings (or 0 port)
- if scheme is not None:
- url += scheme + '://'
- if auth is not None:
- url += auth + '@'
- if host is not None:
- url += host
- if port is not None:
- url += ':' + str(port)
- if path is not None:
- url += path
- if query is not None:
- url += '?' + query
- if fragment is not None:
- url += '#' + fragment
-
- return url
-
- def __str__(self):
- return self.url
-
-
-def split_first(s, delims):
- """
- Given a string and an iterable of delimiters, split on the first found
- delimiter. Return two split parts and the matched delimiter.
-
- If not found, then the first part is the full input string.
-
- Example::
-
- >>> split_first('foo/bar?baz', '?/=')
- ('foo', 'bar?baz', '/')
- >>> split_first('foo/bar?baz', '123')
- ('foo/bar?baz', '', None)
-
- Scales linearly with number of delims. Not ideal for large number of delims.
- """
- min_idx = None
- min_delim = None
- for d in delims:
- idx = s.find(d)
- if idx < 0:
- continue
-
- if min_idx is None or idx < min_idx:
- min_idx = idx
- min_delim = d
-
- if min_idx is None or min_idx < 0:
- return s, '', None
-
- return s[:min_idx], s[min_idx + 1:], min_delim
-
-
-def parse_url(url):
- """
- Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is
- performed to parse incomplete urls. Fields not provided will be None.
-
- Partly backwards-compatible with :mod:`urlparse`.
-
- Example::
-
- >>> parse_url('http://google.com/mail/')
- Url(scheme='http', host='google.com', port=None, path='/mail/', ...)
- >>> parse_url('google.com:80')
- Url(scheme=None, host='google.com', port=80, path=None, ...)
- >>> parse_url('/foo?bar')
- Url(scheme=None, host=None, port=None, path='/foo', query='bar', ...)
- """
-
- # While this code has overlap with stdlib's urlparse, it is much
- # simplified for our needs and less annoying.
- # Additionally, this implementations does silly things to be optimal
- # on CPython.
-
- if not url:
- # Empty
- return Url()
-
- scheme = None
- auth = None
- host = None
- port = None
- path = None
- fragment = None
- query = None
-
- # Scheme
- if '://' in url:
- scheme, url = url.split('://', 1)
-
- # Find the earliest Authority Terminator
- # (http://tools.ietf.org/html/rfc3986#section-3.2)
- url, path_, delim = split_first(url, ['/', '?', '#'])
-
- if delim:
- # Reassemble the path
- path = delim + path_
-
- # Auth
- if '@' in url:
- # Last '@' denotes end of auth part
- auth, url = url.rsplit('@', 1)
-
- # IPv6
- if url and url[0] == '[':
- host, url = url.split(']', 1)
- host += ']'
-
- # Port
- if ':' in url:
- _host, port = url.split(':', 1)
-
- if not host:
- host = _host
-
- if port:
- # If given, ports must be integers.
- if not port.isdigit():
- raise LocationParseError(url)
- port = int(port)
- else:
- # Blank ports are cool, too. (rfc3986#section-3.2.3)
- port = None
-
- elif not host and url:
- host = url
-
- if not path:
- return Url(scheme, auth, host, port, path, query, fragment)
-
- # Fragment
- if '#' in path:
- path, fragment = path.split('#', 1)
-
- # Query
- if '?' in path:
- path, query = path.split('?', 1)
-
- return Url(scheme, auth, host, port, path, query, fragment)
-
-
-def get_host(url):
- """
- Deprecated. Use :func:`.parse_url` instead.
- """
- p = parse_url(url)
- return p.scheme or 'http', p.hostname, p.port
diff --git a/vendor/requests/sessions.py b/vendor/requests/sessions.py
deleted file mode 100644
index bcbcc880..00000000
--- a/vendor/requests/sessions.py
+++ /dev/null
@@ -1,712 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-requests.session
-~~~~~~~~~~~~~~~~
-
-This module provides a Session object to manage and persist settings across
-requests (cookies, auth, proxies).
-"""
-import os
-from collections import Mapping
-from datetime import datetime
-
-from .auth import _basic_auth_str
-from .compat import cookielib, OrderedDict, urljoin, urlparse
-from .cookies import (
- cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_cookies)
-from .models import Request, PreparedRequest, DEFAULT_REDIRECT_LIMIT
-from .hooks import default_hooks, dispatch_hook
-from .utils import to_key_val_list, default_headers, to_native_string
-from .exceptions import (
- TooManyRedirects, InvalidSchema, ChunkedEncodingError, ContentDecodingError)
-from .packages.urllib3._collections import RecentlyUsedContainer
-from .structures import CaseInsensitiveDict
-
-from .adapters import HTTPAdapter
-
-from .utils import (
- requote_uri, get_environ_proxies, get_netrc_auth, should_bypass_proxies,
- get_auth_from_url
-)
-
-from .status_codes import codes
-
-# formerly defined here, reexposed here for backward compatibility
-from .models import REDIRECT_STATI
-
-REDIRECT_CACHE_SIZE = 1000
-
-
-def merge_setting(request_setting, session_setting, dict_class=OrderedDict):
- """Determines appropriate setting for a given request, taking into account
- the explicit setting on that request, and the setting in the session. If a
- setting is a dictionary, they will be merged together using `dict_class`
- """
-
- if session_setting is None:
- return request_setting
-
- if request_setting is None:
- return session_setting
-
- # Bypass if not a dictionary (e.g. verify)
- if not (
- isinstance(session_setting, Mapping) and
- isinstance(request_setting, Mapping)
- ):
- return request_setting
-
- merged_setting = dict_class(to_key_val_list(session_setting))
- merged_setting.update(to_key_val_list(request_setting))
-
- # Remove keys that are set to None. Extract keys first to avoid altering
- # the dictionary during iteration.
- none_keys = [k for (k, v) in merged_setting.items() if v is None]
- for key in none_keys:
- del merged_setting[key]
-
- return merged_setting
-
-
-def merge_hooks(request_hooks, session_hooks, dict_class=OrderedDict):
- """Properly merges both requests and session hooks.
-
- This is necessary because when request_hooks == {'response': []}, the
- merge breaks Session hooks entirely.
- """
- if session_hooks is None or session_hooks.get('response') == []:
- return request_hooks
-
- if request_hooks is None or request_hooks.get('response') == []:
- return session_hooks
-
- return merge_setting(request_hooks, session_hooks, dict_class)
-
-
-class SessionRedirectMixin(object):
- def resolve_redirects(self, resp, req, stream=False, timeout=None,
- verify=True, cert=None, proxies=None, **adapter_kwargs):
- """Receives a Response. Returns a generator of Responses."""
-
- i = 0
- hist = [] # keep track of history
-
- while resp.is_redirect:
- prepared_request = req.copy()
-
- if i > 0:
- # Update history and keep track of redirects.
- hist.append(resp)
- new_hist = list(hist)
- resp.history = new_hist
-
- try:
- resp.content # Consume socket so it can be released
- except (ChunkedEncodingError, ContentDecodingError, RuntimeError):
- resp.raw.read(decode_content=False)
-
- if i >= self.max_redirects:
- raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
-
- # Release the connection back into the pool.
- resp.close()
-
- url = resp.headers['location']
-
- # Handle redirection without scheme (see: RFC 1808 Section 4)
- if url.startswith('//'):
- parsed_rurl = urlparse(resp.url)
- url = '%s:%s' % (parsed_rurl.scheme, url)
-
- # The scheme should be lower case...
- parsed = urlparse(url)
- url = parsed.geturl()
-
- # Facilitate relative 'location' headers, as allowed by RFC 7231.
- # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource')
- # Compliant with RFC3986, we percent encode the url.
- if not parsed.netloc:
- url = urljoin(resp.url, requote_uri(url))
- else:
- url = requote_uri(url)
-
- prepared_request.url = to_native_string(url)
- # Cache the url, unless it redirects to itself.
- if resp.is_permanent_redirect and req.url != prepared_request.url:
- self.redirect_cache[req.url] = prepared_request.url
-
- self.rebuild_method(prepared_request, resp)
-
- # https://github.com/kennethreitz/requests/issues/1084
- if resp.status_code not in (codes.temporary_redirect, codes.permanent_redirect):
- # https://github.com/kennethreitz/requests/issues/3490
- purged_headers = ('Content-Length', 'Content-Type', 'Transfer-Encoding')
- for header in purged_headers:
- prepared_request.headers.pop(header, None)
- prepared_request.body = None
-
- headers = prepared_request.headers
- try:
- del headers['Cookie']
- except KeyError:
- pass
-
- # Extract any cookies sent on the response to the cookiejar
- # in the new request. Because we've mutated our copied prepared
- # request, use the old one that we haven't yet touched.
- extract_cookies_to_jar(prepared_request._cookies, req, resp.raw)
- prepared_request._cookies.update(self.cookies)
- prepared_request.prepare_cookies(prepared_request._cookies)
-
- # Rebuild auth and proxy information.
- proxies = self.rebuild_proxies(prepared_request, proxies)
- self.rebuild_auth(prepared_request, resp)
-
- # Override the original request.
- req = prepared_request
-
- resp = self.send(
- req,
- stream=stream,
- timeout=timeout,
- verify=verify,
- cert=cert,
- proxies=proxies,
- allow_redirects=False,
- **adapter_kwargs
- )
-
- extract_cookies_to_jar(self.cookies, prepared_request, resp.raw)
-
- i += 1
- yield resp
-
- def rebuild_auth(self, prepared_request, response):
- """When being redirected we may want to strip authentication from the
- request to avoid leaking credentials. This method intelligently removes
- and reapplies authentication where possible to avoid credential loss.
- """
- headers = prepared_request.headers
- url = prepared_request.url
-
- if 'Authorization' in headers:
- # If we get redirected to a new host, we should strip out any
- # authentication headers.
- original_parsed = urlparse(response.request.url)
- redirect_parsed = urlparse(url)
-
- if (original_parsed.hostname != redirect_parsed.hostname):
- del headers['Authorization']
-
- # .netrc might have more auth for us on our new host.
- new_auth = get_netrc_auth(url) if self.trust_env else None
- if new_auth is not None:
- prepared_request.prepare_auth(new_auth)
-
- return
-
- def rebuild_proxies(self, prepared_request, proxies):
- """This method re-evaluates the proxy configuration by considering the
- environment variables. If we are redirected to a URL covered by
- NO_PROXY, we strip the proxy configuration. Otherwise, we set missing
- proxy keys for this URL (in case they were stripped by a previous
- redirect).
-
- This method also replaces the Proxy-Authorization header where
- necessary.
-
- :rtype: dict
- """
- headers = prepared_request.headers
- url = prepared_request.url
- scheme = urlparse(url).scheme
- new_proxies = proxies.copy() if proxies is not None else {}
-
- if self.trust_env and not should_bypass_proxies(url):
- environ_proxies = get_environ_proxies(url)
-
- proxy = environ_proxies.get('all', environ_proxies.get(scheme))
-
- if proxy:
- new_proxies.setdefault(scheme, proxy)
-
- if 'Proxy-Authorization' in headers:
- del headers['Proxy-Authorization']
-
- try:
- username, password = get_auth_from_url(new_proxies[scheme])
- except KeyError:
- username, password = None, None
-
- if username and password:
- headers['Proxy-Authorization'] = _basic_auth_str(username, password)
-
- return new_proxies
-
- def rebuild_method(self, prepared_request, response):
- """When being redirected we may want to change the method of the request
- based on certain specs or browser behavior.
- """
- method = prepared_request.method
-
- # http://tools.ietf.org/html/rfc7231#section-6.4.4
- if response.status_code == codes.see_other and method != 'HEAD':
- method = 'GET'
-
- # Do what the browsers do, despite standards...
- # First, turn 302s into GETs.
- if response.status_code == codes.found and method != 'HEAD':
- method = 'GET'
-
- # Second, if a POST is responded to with a 301, turn it into a GET.
- # This bizarre behaviour is explained in Issue 1704.
- if response.status_code == codes.moved and method == 'POST':
- method = 'GET'
-
- prepared_request.method = method
-
-
-class Session(SessionRedirectMixin):
- """A Requests session.
-
- Provides cookie persistence, connection-pooling, and configuration.
-
- Basic Usage::
-
- >>> import requests
- >>> s = requests.Session()
- >>> s.get('http://httpbin.org/get')
-
-
- Or as a context manager::
-
- >>> with requests.Session() as s:
- >>> s.get('http://httpbin.org/get')
-
- """
-
- __attrs__ = [
- 'headers', 'cookies', 'auth', 'proxies', 'hooks', 'params', 'verify',
- 'cert', 'prefetch', 'adapters', 'stream', 'trust_env',
- 'max_redirects',
- ]
-
- def __init__(self):
-
- #: A case-insensitive dictionary of headers to be sent on each
- #: :class:`Request ` sent from this
- #: :class:`Session `.
- self.headers = default_headers()
-
- #: Default Authentication tuple or object to attach to
- #: :class:`Request `.
- self.auth = None
-
- #: Dictionary mapping protocol or protocol and host to the URL of the proxy
- #: (e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'}) to
- #: be used on each :class:`Request `.
- self.proxies = {}
-
- #: Event-handling hooks.
- self.hooks = default_hooks()
-
- #: Dictionary of querystring data to attach to each
- #: :class:`Request `. The dictionary values may be lists for
- #: representing multivalued query parameters.
- self.params = {}
-
- #: Stream response content default.
- self.stream = False
-
- #: SSL Verification default.
- self.verify = True
-
- #: SSL certificate default.
- self.cert = None
-
- #: Maximum number of redirects allowed. If the request exceeds this
- #: limit, a :class:`TooManyRedirects` exception is raised.
- #: This defaults to requests.models.DEFAULT_REDIRECT_LIMIT, which is
- #: 30.
- self.max_redirects = DEFAULT_REDIRECT_LIMIT
-
- #: Trust environment settings for proxy configuration, default
- #: authentication and similar.
- self.trust_env = True
-
- #: A CookieJar containing all currently outstanding cookies set on this
- #: session. By default it is a
- #: :class:`RequestsCookieJar `, but
- #: may be any other ``cookielib.CookieJar`` compatible object.
- self.cookies = cookiejar_from_dict({})
-
- # Default connection adapters.
- self.adapters = OrderedDict()
- self.mount('https://', HTTPAdapter())
- self.mount('http://', HTTPAdapter())
-
- # Only store 1000 redirects to prevent using infinite memory
- self.redirect_cache = RecentlyUsedContainer(REDIRECT_CACHE_SIZE)
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def prepare_request(self, request):
- """Constructs a :class:`PreparedRequest ` for
- transmission and returns it. The :class:`PreparedRequest` has settings
- merged from the :class:`Request ` instance and those of the
- :class:`Session`.
-
- :param request: :class:`Request` instance to prepare with this
- session's settings.
- :rtype: requests.PreparedRequest
- """
- cookies = request.cookies or {}
-
- # Bootstrap CookieJar.
- if not isinstance(cookies, cookielib.CookieJar):
- cookies = cookiejar_from_dict(cookies)
-
- # Merge with session cookies
- merged_cookies = merge_cookies(
- merge_cookies(RequestsCookieJar(), self.cookies), cookies)
-
- # Set environment's basic authentication if not explicitly set.
- auth = request.auth
- if self.trust_env and not auth and not self.auth:
- auth = get_netrc_auth(request.url)
-
- p = PreparedRequest()
- p.prepare(
- method=request.method.upper(),
- url=request.url,
- files=request.files,
- data=request.data,
- json=request.json,
- headers=merge_setting(request.headers, self.headers, dict_class=CaseInsensitiveDict),
- params=merge_setting(request.params, self.params),
- auth=merge_setting(auth, self.auth),
- cookies=merged_cookies,
- hooks=merge_hooks(request.hooks, self.hooks),
- )
- return p
-
- def request(self, method, url,
- params=None,
- data=None,
- headers=None,
- cookies=None,
- files=None,
- auth=None,
- timeout=None,
- allow_redirects=True,
- proxies=None,
- hooks=None,
- stream=None,
- verify=None,
- cert=None,
- json=None):
- """Constructs a :class:`Request `, prepares it and sends it.
- Returns :class:`Response